Dmitrij Barskij. Russkaya klaviatura dlya xterm, aXe
Date: 16 Nov 96
From: Dima Barsky
V tradicionnom metode rusifikacii klaviatury (cherez xmodmap)
pereklyuchaetsya sostoyanie vsego X-servera, a ne otdel'nyh
klientov. |to mne kazhetsya neudobnym. Esli u tebya vklyuchen
russkij registr, srazu zhe nachinayutsya problemy s window manag
erom, perestayut rabotat' Control knopki, i t.d... Horosho by
umet' pereklyuchat' registr dlya kazhdoj programmy nezavisimo (chto
ponachalu kazhetsya nevozmozhnym).
Podumavshi nemnogo ya ponyal, chto pisat' po-russki mne (da,
vidimo, i bol'shinstvu drugih lyudej) nuzhno vsego v dvuh
programmah - xterm i emacs. Oboih mozhno rusificirovat'
nezavisimo. Dlya emacs'a ya vzyal cyr.el ot Dimy Manina,
http://camelot.mssm.edu/~manin/cyr.el
nemnogo ego podshamanil i otdal emu nazad. Teper' on vrode by
rabotaet kak dlya Emacs'a tak i dlya XEmacs'a.
A dlya xterm prishlos' napisat' svoj resource-file i v nem
pereopredelit' vse translations. Posle chego nado xmodmap'om
pereopredelit' tol'ko odnu knopku, kotoraya budet v xterme
registr pereklyuchat', naprimer vot tak:
xmodmap -e "remove lock = Caps_Lock"
xmodmap -e "keysym Caps_Lock = Execute"
|tu zhe knopku mozhno i v emacs'e dlya pereklyucheniya registrov ispol'zovat'.
Dima.
----------------------- CUT HERE: XTerm.ad -----------------------------
*VT100.eightBitInput: True
*VT100.eightBitOutput: True
*VT100.translations: #replace \
Execute: keymap(cyrillic) set-reverse-video(on)\n\
Shift Prior: scroll-back(1,halfpage) \n\
Shift Next: scroll-forw(1,halfpage) \n\
Shift Select: select-cursor-start() \
select-cursor-end(PRIMARY, CUT_BUFFER0) \n\
Shift Insert: insert-selection(PRIMARY, CUT_BUFFER0) \n\
~Meta: insert-seven-bit() \n\
Meta: insert-eight-bit() \n\
!Ctrl : popup-menu(mainMenu) \n\
!Lock Ctrl : popup-menu(mainMenu) \n\
~Meta : select-start() \n\
~Meta : select-extend() \n\
!Ctrl : popup-menu(vtMenu) \n\
!Lock Ctrl : popup-menu(vtMenu) \n\
~Ctrl ~Meta : ignore() \n\
~Ctrl ~Meta : insert-selection(PRIMARY, CUT_BUFFER0) \n\
!Ctrl : popup-menu(fontMenu) \n\
!Lock Ctrl : popup-menu(fontMenu) \n\
~Ctrl ~Meta : start-extend() \n\
~Meta : select-extend() \n\
:select-end(PRIMARY, CUT_BUFFER0) \n\
: bell(0)
*VT100.cyrillicKeymap.translations: #override \
Execute: keymap(None) set-reverse-video(off) \n\
Return: insert() \n\
Shift`: string("0xe0")\n\
!`: string("0xc0")\n\
Shifta: string("0xe1")\n\
!a: string("0xc1")\n\
Shiftb: string("0xe2")\n\
!b: string("0xc2")\n\
Shiftc: string("0xe3")\n\
!c: string("0xc3")\n\
Shiftd: string("0xe4")\n\
!d: string("0xc4")\n\
Shifte: string("0xe5")\n\
!e: string("0xc5")\n\
Shiftf: string("0xe6")\n\
!f: string("0xc6")\n\
Shiftg: string("0xe7")\n\
!g: string("0xc7")\n\
Shifth: string("0xe8")\n\
!h: string("0xc8")\n\
Shifti: string("0xe9")\n\
!i: string("0xc9")\n\
Shiftj: string("0xea")\n\
!j: string("0xca")\n\
Shiftk: string("0xeb")\n\
!k: string("0xcb")\n\
Shiftl: string("0xec")\n\
!l: string("0xcc")\n\
Shiftm: string("0xed")\n\
!m: string("0xcd")\n\
Shiftn: string("0xee")\n\
!n: string("0xce")\n\
Shifto: string("0xef")\n\
!o: string("0xcf")\n\
Shiftp: string("0xf0")\n\
!p: string("0xd0")\n\
Shiftq: string("0xf1")\n\
!q: string("0xd1")\n\
Shiftr: string("0xf2")\n\
!r: string("0xd2")\n\
Shifts: string("0xf3")\n\
!s: string("0xd3")\n\
Shiftt: string("0xf4")\n\
!t: string("0xd4")\n\
Shiftu: string("0xf5")\n\
!u: string("0xd5")\n\
Shiftv: string("0xf6")\n\
!v: string("0xd6")\n\
Shiftw: string("0xf7")\n\
!w: string("0xd7")\n\
Shiftx: string("0xf8")\n\
!x: string("0xd8")\n\
Shifty: string("0xf9")\n\
!y: string("0xd9")\n\
Shiftz: string("0xfa")\n\
!z: string("0xda")\n\
Shift[: string("0xfb")\n\
![: string("0xdb")\n\
Shift\\\\: string("0xfc")\n\
!\\\\: string("0xdc")\n\
Shift]: string("0xfd")\n\
!]: string("0xdd")\n\
Shift=: string("0xfe")\n\
!=: string("0xde")\n\
Shift3: string("0xdf")\n\
Shift4: string("0xff")
Da net, nikto ne sporit, bez xmodmapa ne obojtis'. No eti dva
sposoba mogut prekrasno uzhivat'sya vmeste. Nikto ne meshaet tebe
rusificirovat' xterm i emacs nezavisimo, a k pereklyucheniyu v
russkij registr cherez Mode_switch pribegat' tol'ko v krajnih
sluchayah. Nado tol'ko raznye knopki dlya etogo dela zavesti.
Klaviatura dlya redaktora aXe - Resource-fajl prilagaetsya.
Na vsyakij sluchaj - aXe eto takoj redaktor, vyglyadit dovol'no
pohozhe na xedit, no umeet gorazdo bol'she. Ego mozhno vytashchit' iz
ftp://ftp.x.org/contrib/editors/aXe-6.1.2.tar.Z
----------------------- CUT HERE: Axe.ad -----------------------------
*ed.translations: #override \n\
Execute: keymap(cyrillic)
*ed.cyrillicKeymap.translations: #override \
Execute: keymap(None) \n\
Shift`: insert-string("0xe0")\n\
`: insert-string("0xc0")\n\
ShiftA: insert-string("0xe1")\n\
A: insert-string("0xc1")\n\
ShiftB: insert-string("0xe2")\n\
B: insert-string("0xc2")\n\
ShiftC: insert-string("0xe3")\n\
C: insert-string("0xc3")\n\
ShiftD: insert-string("0xe4")\n\
D: insert-string("0xc4")\n\
ShiftE: insert-string("0xe5")\n\
E: insert-string("0xc5")\n\
ShiftF: insert-string("0xe6")\n\
F: insert-string("0xc6")\n\
ShiftG: insert-string("0xe7")\n\
G: insert-string("0xc7")\n\
ShiftH: insert-string("0xe8")\n\
H: insert-string("0xc8")\n\
ShiftI: insert-string("0xe9")\n\
I: insert-string("0xc9")\n\
ShiftJ: insert-string("0xea")\n\
J: insert-string("0xca")\n\
ShiftK: insert-string("0xeb")\n\
K: insert-string("0xcb")\n\
ShiftL: insert-string("0xec")\n\
L: insert-string("0xcc")\n\
ShiftM: insert-string("0xed")\n\
M: insert-string("0xcd")\n\
ShiftN: insert-string("0xee")\n\
N: insert-string("0xce")\n\
ShiftO: insert-string("0xef")\n\
O: insert-string("0xcf")\n\
ShiftP: insert-string("0xf0")\n\
P: insert-string("0xd0")\n\
ShiftQ: insert-string("0xf1")\n\
Q: insert-string("0xd1")\n\
ShiftR: insert-string("0xf2")\n\
R: insert-string("0xd2")\n\
ShiftS: insert-string("0xf3")\n\
S: insert-string("0xd3")\n\
ShiftT: insert-string("0xf4")\n\
T: insert-string("0xd4")\n\
ShiftU: insert-string("0xf5")\n\
U: insert-string("0xd5")\n\
ShiftV: insert-string("0xf6")\n\
V: insert-string("0xd6")\n\
ShiftW: insert-string("0xf7")\n\
W: insert-string("0xd7")\n\
ShiftX: insert-string("0xf8")\n\
X: insert-string("0xd8")\n\
ShiftY: insert-string("0xf9")\n\
Y: insert-string("0xd9")\n\
ShiftZ: insert-string("0xfa")\n\
Z: insert-string("0xda")\n\
Shift[: insert-string("0xfb")\n\
[: insert-string("0xdb")\n\
Shift\\\\: insert-string("0xfc")\n\
\\\\: insert-string("0xdc")\n\
Shift]: insert-string("0xfd")\n\
]: insert-string("0xdd")\n\
Shift=: insert-string("0xfe")\n\
=: insert-string("0xde")\n\
Shift3: insert-string("0xdf")\n\
Shift4: insert-string("0xff")
Last-modified: Mon, 09 Dec 1996 07:38:12 GMT