Jak ugryźć klawiaturę Windows 95?


Copyright © 2001,2002 by Marcin Woliński
2002/12/12

Tak zwana klawiatura Windows 95 jest bez wątpienia najgenialniejszym wynalazkiem Microsoftu. Niestety jej wynalazca nie ma pojęcia, do czego naprawdę się ona nadaje.

Rzeczony wynalazek ma w stosunku do ,,zwykłej klawiatury'' peceta o trzy klawisze więcej. Są to ,,lewe okienko'', ,,prawe okienko'' i ,,menu''. Owe ,,okienka'' stanowią dodatkową parę klawiszy modyfikujących, która wprost idealnie nadaje się do wprowadzania polskich znaków. Przynajmniej pod Linuksem, gdzie da się dowolnie obłożyć klawiaturę (tutaj genialność MałegoMiękkiego się kończy).

Klawiaturę konsoli Linuksa można przedefiniować za pomocą jednego z następujących plików definicyjnych (poleceniem loadkeys). Plik pl95.map zawiera definicję, wedle której okienka służą wprowadzaniu polskich znaków, natomiast oba Alt-y zachowują swoją funkcję. (Np. w emacsie oba klawisze Alt działają jako Meta). W drugiej wersji pl95alt.map do wprowadzania polskich znaków służą oba Alt-y, zaś klawisze okienkowe przejmują funkcję prawdziwych Alt-ów (Meta). Ten układ może być łatwiejszy, jeśli ktoś liczy się z koniecznością używania czasem komputera z ,,normalną'' polską klawiaturą - polskie znaki będą dostępne (mniej więcej) tak samo.

Konfigurowanie X Window (czyli w przypadku Linuksa XFree86) należy rozpocząć od uzyskania polskich znaków za pomocą rozszerzenia XKB, np. wg. mojego opisu. Nie należy podejmować następnych kroków przed uzyskaniem poprawnie skonfigurowanego X-serwera, aby nie mnożyć trudności.

Pierwszym krokiem jest odnalezienie katalogu z danymi XKB. Katalog ten nazywa się mnemotechnicznie xkb/ i zawiera w szczególności podkatalogi rules/symbols/. Zwykle katalogiem tym jest /usr/X11R6/lib/X11/xkb/.

Dalsze postępowanie zależy od wersji systemu X Window. W przypadku XFree86 wersja 4.2.x i nowsze potrzebne pliki definicyjne są już w systemie. W tym wypadku wystarczy w sekcji opisującej klawiaturę w pliku XF86Config-4 doprowadzić opcje związane z XKB do następującej postaci:

Section "InputDevice"
	Identifier	"Moja ukochana klawiatura"
	Driver		"keyboard"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xfree86"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"pl"
	Option		"XkbOptions"	"altwin:meta_alt,grp:win_switch"
EndSection
	      

W przypadku starszych wersji XFree86 (4.1, 4.0, 3.x) konieczne jest umieszczenie w podkatalogach katalogu xkb/ plików pochodzących z niniejszej paczki. Można ją po prostu rozpakować w katalogu /usr/X11R6/lib/X11/, ale radzę upewnić się, czy nie zostaną nadpisane istniejące pliki.

Następnym krokiem jest modyfikacja sekcji Keyboard pliku XF86Config-4 dla wersji 4.x XFree86:

Section "InputDevice"
	Identifier	"Moja ukochana klawiatura"
	Driver		"keyboard"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xfree86mw"
	Option		"XkbModel"	"pc104"
	Option		"XkbLayout"	"pl"
	Option		"XkbOptions"	"win:switch"
EndSection
	      

bądź XF86Config dla wersji 3.x:

Section "Keyboard"
    Protocol	"Standard"
    AutoRepeat	500 5
    RightAlt    ModeShift
    XkbRules    "xfree86mw"
    XkbModel    "pc104"
    XkbLayout   "pl"
    XkbOptions  "win:switch"
EndSection
	      

Ustawienia te różnią się od typowych wartością XkbRules oraz XkbOptions. Wartość win:switch oznacza, że klawisze z okienkami mają służyć do uzyskiwania polskich znaków, zaś oba Alt-y działają normalnie. Można ją zastąpić wartością win:alt, która powoduje, że okienka przejmują funkcję Alt-ów, zaś oba Alt-y będą służyć do wprowadzania polskich znaków.

Jeżeli danego komputera używają również osoby bardziej konserwatywne, które mój wynalazek uznają za fanaberię, można ustawić XkbOptions "grp:switch", a więc układ z prawym Alt-em. Wówczas moje ulubione ustawienia można będzie uzyskać poleceniem (wstawionym gdzieś do skryptu startowego):

setxkbmap -option win:switch pl
		lub
setxkbmap -option win:alt pl
	      

Jeżeli ktoś posługuje się X-serwerem, który nie jest wyposażony w rozszerzenie XKB (ciekawe jaki miałby to być system, skoro miałby mieć pecetową klawiaturę???), może posłużyć się następującymi plikami definicyjnymi dla programu xmodmap. Można ich użyć globalnie dla systemu, wstawiając jako (lub dołączając do) /etc/X11/Xmodmap lub tylko dla siebie w pliku ~/.Xmodmap. Uwaga: pliki te nie zawierają opisu polskich znaków, a tylko odpowiednie obłożenie klawiszy Alt i okienek. Podobnie zatem jak poprzednio trzeba zacząć od stanu, w którym daje się uzyskiwać polskie znaki z prawym Alt-em i odpowiednio go zmodyfikować.

Do wyboru są dwie wersje definicji. Plik win95.xmodmap wiąże z klawiszami okienkowymi modyfikator Mode_switch służący do uzyskiwania znaków narodowych. Klawisze Alt nie zmieniają znaczenia. Wersja win95alt.xmodmap działa odwrotnie: Alt to Mode_switch, a okienka to Alt. W plikach tych nie ma nic specyficznego dla polszczyzny. Jeżeli ktoś uzyskuje znaki jakiegoś innego języka za pomocą modyfikatora Mode_switch, to dzięki tym definicjom może też przenieść ,,narodowy shift'' na klawisze okienkowe (lub Alt-y).

Warto może jeszcze dodać, że podobnych plików dla programu xmodmap używałem z powodzeniem na klawiaturach typu Sun Type4 i Type5, które również mają dodatkowe klawisze modyfikujące (oznaczone rombem). Pliki dostępne na żądanie.

Send mail to Marcin Woliński Strona wiodąca Linuksowe drobiazgi Color Free Zone certified page