Friday, September 25, 2009

Apple Keyboard, prawy alt i linux

Ten wpis jest przeznaczony dla użytkowników linuxa, którzy chcieliby wygodnie korzystać z klawiatury apple. Mam tu na myśli aluminiową, przewodową z blokiem numerycznym. Na innych prawdopodobnie sytuacja będzie przedstawiała się bardzo podobnie...

No ale w czym jest problem? W układzie klawiszy. Pecetowcy przywykli do mania alta zaraz obok spacji. Ale ludzie Jobsa nie - obok spacji umieścili swój klawisz "cmd". Aby układ klawiszy był bardziej swojski, należy zamienić funkcjonalnie klawisze "cmd" oraz "alt". Po tym zabiegu klawiatura będzie zachowywała się jak większość innych. Klawisz "cmd" można traktować jak "łindows", czyli "super".

No ale jak naprawić klawiaturę? Potrzebne będą: xmodmap, edytor (np. vim), echo. W katalogu domowym tworzymy sobie plik, nazwijmy go .xmodmaprc o treści (konfiguracja jest zapożyczona z jakiejś strony odnalezionej przez google i lekko zmodyfikowana przeze mnie):

!Apple aluminum keyboard layout fixes

!zamiana alt z cmd z uwzglednieniem prawego alta
clear mod1
clear mod4
clear mod5
keycode 115 = Alt_L
keycode 64 = Meta_L
keycode 116 = Alt_R
keycode 113 = Meta_R
add mod1 = Alt_L
add mod4 = Meta_L Meta_R
add mod5 = Alt_R

!w przypadku ukladu hAmerykanskiego (pionowy enter)
!tylde nalezy umiescic na je miejscu
keycode 94 = grave asciitilde


Guglając łatwo znaleźć bardzo podobne opisy. Podobne, acz nie identyczne. Dla Polaków i piszących po polsku bardzo istotne są komendy związane z mod5 - to one odpowiadają za obsługę prawego alta, służącego nam do wpisywania "ogonków".

Komenda
xmodmap ~/.xmodmaprc
zaaplikuje nową mapę klawiszy. Należy ją powtarzać po każdym zalogowaniu.

I jeszcze jedna sprawa: F1, F2 i reszta rodzinki. Dziwnym trafem wymagają naciśnięcia razem z "fn", co wymaga dużej sprawności manualnej... Jest na to prosty sposób:
echo 2 > /sys/module/hid_apple/parameters/fnmode

lub
echo 2 > /sys/modules/hid_apple/parameters/fnmode

W opisach spotkałem się z wersją z modules, u mnie (archlinux) ścieżka zawiera module.

Przepraszam za wszelkie literówki, oswajam się właśnie z układem klawiszy jabłkowej klawiatury...

Thursday, June 4, 2009

Hexański

Pod wpływem impulsu sparafrazowałem dziś tekst piosenki "Teksański" zespołu Hey.

Wersja może wymagać poprawek, ale ogólny zarys jest taki:

HEXański

herbata stygnie, zapada mrok
na ekranie ciągle nic
obowiązek obowiązkiem jest
program musi posiadać kod

gdyby chociaż linia zjawiła się
mógłbym ją skopiować
a później sobie wkleić

// a tu pierwotna wersja zwrotki
//gdyby chociaż instancja zjawiła się
//mógłbym ją zserializować
//a późniejsobie wczytać

w moim kodzie bugi czają się
nie robi nic, łooooooo
jesli szukasz sensu, komentarzy w nim
zawiedziesz się

a może zmienić zasady gry
chcesz zobaczyć program
to sam go sobie napisz

kubek kawy, kawał pizzy weź
pomogą ci, łooooo
wnet twe myśli w program zmienią się
zakodzisz go sam

Tuesday, July 22, 2008

WindowsMobile: Pocket (lub telefon) Pocketowi modemem

Używanie modemu bluetooth pod WM6 może okazać się przydatne. Czasami mamy taryfę data w telefonie tudzież innym pockecie i fajnie byłoby sobie z niej skorzystać. A więc w chodzimy w kreatora, tworzymy połączenie. Nie ma żadnych problemów. Więc zadowoleni z siebie łączymy się... Pozdrawiami ludzi Billa kilkoma nie do końca grzecznymi słowami. Dlaczego mi to [tutaj nie do końca grzeczne słowo] nie działa?

Wynika do ze specyfiki połączeń pakietowych (gprs/edge/umts/hsdpa). Kluczowym elementem jest u nazwa APN (Acces Point Name) naszego operatora. Konfigurując połączenie przez wbudowany modem podajemy ten parametr, jednak jak przekazać go modemowi bluetooth?

Służą do tego stringi inicjalizacyjne. Każdy kto konfigurował połączenie pc-modem bluetooth zapewne się z nimi spotkał. Jednak mobilny Windows nie oferuje nam intuicyjnej i wygodnej możliwości podania tychże, co nieco psuje zabawę.

Dobra wiadomość: da się to ustawić. I to w kilku prostych krokach:

1. Odpalamy swój ulubiony edytor rejestru.

2. Przechodzimy do  HKEY_LOCL_MACHINE\Drivers\Unimodem\Init\

3. Jest tam wartość string "1" o wartości AT

4. Zmeniamy ją na AT+CGDCONT=1,"IP","APNNAME"<cr>, gdzie APNNAME to nazwa APN naszego operatora (cudzysłowie mają tam być!)

5. Zapisujemy.

6. Łączymy się.

7. Cieszymi się i wysyłamy podziękowanie autorowi opisu ;)

Disclaimer:

Zmian w rejestrze dokonujesz oczywiście na własną odpowiedzialność i nie masz do mnie pretensji, jeżeli coś zepsujesz sobie.

Saturday, July 19, 2008

Visual Studio 2005, Visual C++ i... problem

Początek przygody z pisaniem natywnych programów na Windows Mobile:

1. Włącz Visual Studio 2005.

2. File -> New -> Project...

3. Other languages -> Visual C++ -> Smart Device

4. Win32 Smart Device Project

5. Wpisz nazwę, kliknij OK...

6. Poczekaj chwilkę...

7. Krzycz! Wal pięściami w biurko! To całkiem zdrowa reakcja...

8. NIE reinstaluj VS, NIE reinstaluj WM6 SDK. Nic to nie da...

Jeżeli masz Windows XP SP2, instalujesz grzecznie aktualizację i korzystasz z VS2005 Std, to zapewne nie uda Ci się utworzyć nowego projektu. Usłyszysz dziwne blim-blim i pojawi się poprzedni dialog (wybór projektu).

Google Twoim przyjacielem. Poszukałem, znalazłem... nie pomogło (metoda z tworzeniem klucza w rejestrze). Sugestia reinstalowania Internet Explorera była równie skuteczna. Jednak jest rozwiązanie! Trochę kłopotliwe i uciążliwie (w perspektywie czasu), ale skuteczne i pozwala tworzyć nowe projekty w VC++ dla Smart Device.

A więc mój sposób wygląda następująco:

ODINSTALUJ INTERNET EXPLORER 7!

Krok może drastyczny, acz chyba konieczny. Po dezinstalacji do głosu dojdzie wbudowany w system (?) IE6, który jest w stanie sobie poradzić z wizardem tworzenia projektu, co przerasta IE7.

Nie możesz znaleźć IE na liście programów do odinstalowania? Nie nazywa się "Internet Explorer 7"? Nie. Nie nazywa się "Microsoft Internet Explorer 7"? Nie. Za łatwo by było znaleźć i odinstalować. Przewiń listę dalej, pod koniec znajdziesz... Windows Internet Explorer 7. Odinstaluj program, nie przejmując się zanadto ostrzeżeniami, że to co robisz jest złe (chyba, że na prawdę któryś z Twoich programów potrzbuje IE7, wtedy mogę tylko współczuć...). Potem restart sytemu. Teraz projekt powinien się utworzyć.

Wadą rozwiązania jest fakt, że automatyczne aktulizacje będą starały się nam za wszelką cenę wcisnąć IE7. Musimy być asertywni (o ile istnieje taka techniczna możliwość), albo... odinstalowywać to co jakiś czas. No cóż... Lepsze to niż szukanie VS2008.

Disclaimer:

Opisane przeze mnie postępowanie jest poważnym zagrożeniem dla systemu i może się skończyć źle. Robisz to na swoją odpowiedzialność. Nie odpowiadam za szkody, straty i krzywdy, które sobie wyrządzisz.

TODO: Przywitać się

Nie wiem jakim cudem trafiłaś/trafiłeś na mojego bloga, ale witam. Ten blog jest polskojęzyczny, w odróżnieniu od mojego drugiego bloga (miloszz.blogspot.com). Część wpisów będzie zapewne podwójna.

Zapraszam do lektury, może znajdziesz tutaj coś dla siebie.