🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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)
#2251
Author: Jarosław Rafa
Date: Wed, 21 Dec 2005 19:33
66 lines
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)
#2252
Author: jimmij
Date: Thu, 22 Dec 2005 13:51
29 lines
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)
#2253
Author: Jarosław Rafa
Date: Tue, 27 Dec 2005 13:44
29 lines
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)
#2254
Author: jimmij
Date: Tue, 27 Dec 2005 20:02
17 lines
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)
#2255
Author: Jarosław Rafa
Date: Wed, 28 Dec 2005 15:27
127 lines
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