Thread View: pl.comp.sys.x11
5 messages
5 total messages
Started by Jarosław Rafa
Wed, 21 Dec 2005 19:33
Pomocy z xmodmap + VNC (polskie literki)
Author: Jarosław Rafa
Date: Wed, 21 Dec 2005 19:33
Date: Wed, 21 Dec 2005 19:33
66 lines
4270 bytes
4270 bytes
Witajcie!
Chciałem prosić o pomoc w przemapowaniu klawiatury w X-ach.
Łączę się z maszyną unixową przez VNC z komputera Windowsowego.
Oczywiście jak się nietrudno domyślić, mam problem z uzyskaniem z
klawiatury polskich literek: ą, ś, ź tudzież ich dużych odpowiedników.
Z "ą" poradziłem sobie dość prosto, ponieważ wciśnięcie (prawy Alt-a)
generuje znak "š" (0xB9) więc wystarczyło w wywołaniu serwera VNC
dopisać parametr "RemapKeys=0xb9->0xb1,0xa5->0xa1" (to drugie mapowanie
dla dużego "Ą"). Niestety z ś i ź nie jest tak prosto, gdyż wciśnięcie
(prawy Alt-s) i (prawy Alt-x) nie wysyła do maszyny unixowej w ogóle
żadnych sensownych znaków. (prawy Alt-s) działa jak Ctrl-S (???),
wstrzymując wyświetlanie znaków na terminalu, a (prawy Alt-x) nie robi w
ogóle nic.
Poniżej zamieszczam listing tego, co wypisuje program xev, kiedy wciskam
np. prawy Alt i s:
KeyPress event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321513152, (44,46), root:(100,102),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321513152, (44,46), root:(100,102),
state 0x4, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321513847, (44,46), root:(100,102),
state 0xc, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: ""
KeyRelease event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321513922, (44,46), root:(100,102),
state 0xc, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: ""
KeyRelease event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321514891, (44,46), root:(100,102),
state 0xc, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 22, synthetic NO, window 0x2400001,
root 0x26, subw 0x2400002, time 1321514891, (44,46), root:(100,102),
state 0x8, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 characters: ""
O ile coś z tego rozumiem ;-), to wygląda to tak, jakby po wciśnięciu
prawego Alta wysyłany był zarówno kod klawisza odpowiadający prawemu
Altowi, jak i lewemu Controlowi (więc nic dziwnego, że prAlt-s jest
traktowane jak Ctrl-S). Nawet jednak jeśli brutalnie *w ogóle*
zlikwiduję działanie klawiszy Control (xmodmap -e 'clear control') - co
oczywiście docelowo mnie nie urządza, ale do testów można to zrobić - to
wtedy wciśnięcie prAlt-s nadal generuje mi "s", a nie "ś".
Nie pojmuję, co mam poczarować z xmodmap-em, żeby uzyskać to "ś". Sposób
opisany na http://www.ogonki.agh.edu.pl/ (xmodmap -e 'keysym s = s S
sacute Sacute') niestety coś nie chce mi działać...
Pomóżcie! Jak mam to zrobić?
--
Pozdrowienia,
Jaroslaw Rafa
raj@ap.krakow.pl
--
Spam, wirusy, spyware... masz dość? Jest alternatywa!
http://www.firefox.pl/ --- http://www.thunderbird.pl/
Szybciej. Łatwiej. Bezpieczniej. Internet tak jak lubisz.
Re: Pomocy z xmodmap + VNC (polskie literki)
Author: jimmij
Date: Thu, 22 Dec 2005 13:51
Date: Thu, 22 Dec 2005 13:51
29 lines
2981 bytes
2981 bytes
Jarosław Rafa <raj@ap.krakow.pl> writes: > O ile coś z tego rozumiem ;-), to wygląda to tak, jakby po wciśnięciu > prawego Alta wysyłany był zarówno kod klawisza odpowiadający prawemu > Altowi, jak i lewemu Controlowi (więc nic dziwnego, że prAlt-s jest > traktowane jak Ctrl-S). Nawet jednak jeśli brutalnie *w ogóle* > zlikwiduję działanie klawiszy Control (xmodmap -e 'clear control') - > co oczywiście docelowo mnie nie urządza, ale do testów można to zrobić > - to wtedy wciśnięcie prAlt-s nadal generuje mi "s", a nie "ś". > Nie pojmuję, co mam poczarować z xmodmap-em, żeby uzyskać to > "ś". Sposób opisany na http://www.ogonki.agh.edu.pl/ (xmodmap -e > 'keysym s = s S sacute Sacute') niestety coś nie chce mi działać... Spróbuj tak: !-------------------------- keycode 113 = Mode_switch keycode 39 = s S sacute Sacute clear Control clear Mod1 clear Mod2 clear Mod3 clear Mod4 clear Mod5 add Mod2 = Mode_switch !-------------------------- jimmij -- I come from the Land Of Imagination
Re: Pomocy z xmodmap + VNC (polskie literki)
Author: Jarosław Rafa
Date: Tue, 27 Dec 2005 13:44
Date: Tue, 27 Dec 2005 13:44
29 lines
1797 bytes
1797 bytes
jimmij napisał(a):
>>- to wtedy wciśnięcie prAlt-s nadal generuje mi "s", a nie "ś".
>>Nie pojmuję, co mam poczarować z xmodmap-em, żeby uzyskać to
>>"ś". Sposób opisany na http://www.ogonki.agh.edu.pl/ (xmodmap -e
>>'keysym s = s S sacute Sacute') niestety coś nie chce mi działać...
>
>
> Spróbuj tak:
> !--------------------------
> keycode 113 = Mode_switch
> keycode 39 = s S sacute Sacute
> clear Control
> clear Mod1
> clear Mod2
> clear Mod3
> clear Mod4
> clear Mod5
> add Mod2 = Mode_switch
> !--------------------------
Niestety, to też nie skutkuje... :(
--
Pozdrowienia,
Jaroslaw Rafa
raj@ap.krakow.pl
--
Spam, wirusy, spyware... masz dość? Jest alternatywa!
http://www.firefox.pl/ --- http://www.thunderbird.pl/
Szybciej. Łatwiej. Bezpieczniej. Internet tak jak lubisz.
Re: Pomocy z xmodmap + VNC (polskie literki)
Author: jimmij
Date: Tue, 27 Dec 2005 20:02
Date: Tue, 27 Dec 2005 20:02
17 lines
2464 bytes
2464 bytes
Jarosław Rafa <raj@ap.krakow.pl> writes: >> keycode 113 = Mode_switch >> keycode 39 = s S sacute Sacute > Niestety, to też nie skutkuje... :( Co to znaczy "nie skutkuje"? Prawy 'Alt' i 's' nie generują żadnego znaku? A co pokazuje polecenie xmodmap? Popatrz jeszcze do pliku /usr/include/X11/keysymdef.h i poszukaj tam frazy "Mode_switch". Powinno być tam coś takiego: #define XK_Mode_switch 0xFF7E jimmij -- I come from the Land Of Imagination
Re: Pomocy z xmodmap + VNC (polskie literki)
Author: Jarosław Rafa
Date: Wed, 28 Dec 2005 15:27
Date: Wed, 28 Dec 2005 15:27
127 lines
5965 bytes
5965 bytes
jimmij napisał(a):
> Jarosław Rafa <raj@ap.krakow.pl> writes:
>
>>>keycode 113 = Mode_switch
>>>keycode 39 = s S sacute Sacute
>>
>>Niestety, to też nie skutkuje... :(
>
>
> Co to znaczy "nie skutkuje"? Prawy 'Alt' i 's' nie generują żadnego znaku?
Generują "s" zamiast "ś".
> A co pokazuje polecenie xmodmap?
(2) raj@vfire:~$ xmodmap
xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control
mod1
mod2 Mode_switch (0x71)
mod3
mod4
mod5
Natomiast "xmodmap -pk" wyswietla, z interesujacych nas rzeczy, m.in.:
(2) raj@vfire:~$ xmodmap -pk
There are 4 KeySyms per KeyCode; KeyCodes range from 8 to 255.
[...]
39 0x0073 (s) 0x0053 (S) 0x01b6 (sacute) 0x01a6
(Sacute)
[...]
113 0xff7e (Mode_switch)
czyli niby wszystko to, co mi podales, wykonalo sie prawidlowo, tylko
ze... nie dziala
> Popatrz jeszcze do pliku /usr/include/X11/keysymdef.h i poszukaj tam
> frazy "Mode_switch". Powinno być tam coś takiego:
> #define XK_Mode_switch 0xFF7E
Jest dokladnie tak.
Natomiast xev wyswietla teraz cos takiego, jak wcisne (prAlt-s):
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911504940, (363,283), root:(391,311),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911504940, (363,283), root:(391,311),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911509399, (363,283), root:(391,311),
state 0x0, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: "s"
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911509462, (363,283), root:(391,311),
state 0x0, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: "s"
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911510326, (363,283), root:(391,311),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911510326, (363,283), root:(391,311),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 characters: ""
Czyli w jakis dziwny sposob, kiedy kod klawisza 113 zostal przemapowany
na Mode_switch, wciskanie prawego Alta zaczelo generowac kod Alt_L (64).
Wobec tego dopisalem jeszcze 'keycode 64 = Mode_switch' i wtedy przy
wciskaniu prawego Alta i s zaczela sie pojawiac nastepujaca sekwencja:
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911828623, (335,300), root:(363,328),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911828623, (335,300), root:(363,328),
state 0x0, keycode 254 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 1 characters: ""
KeyPress event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911829464, (335,300), root:(363,328),
state 0x0, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: "s"
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911829519, (335,300), root:(363,328),
state 0x0, keycode 39 (keysym 0x73, s), same_screen YES,
XLookupString gives 1 characters: "s"
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911830155, (335,300), root:(363,328),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 22, synthetic NO, window 0x2200001,
root 0x26, subw 0x0, time 1911830155, (335,300), root:(363,328),
state 0x0, keycode 254 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 1 characters: ""
Czyli - o ile dobrze rozumiem - prawy Alt jest teraz traktowany jako
klawisz pusty, nie majacy zadnego skutku (NoSymbol) - a stan klawiatury,
jezeli chodzi o modyfikatory, dalej sie nie zmienia, bo to chyba oznacza
"state 0x0".
Jestem w kropce...
--
Pozdrowienia,
Jaroslaw Rafa
raj@ap.krakow.pl
--
Spam, wirusy, spyware... masz dość? Jest alternatywa!
http://www.firefox.pl/ --- http://www.thunderbird.pl/
Szybciej. Łatwiej. Bezpieczniej. Internet tak jak lubisz.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads