HELP! Помогите настроить русский язык в XWindows
Определись, дело в шрифтах или в xkb ? Файлы с русскими именами отображаются ?
Отображаются. даже файлы с русскими буквами спокойно смотрятся в (cat, vi в xterm нетскейп нормально русские буквы отображает семейством кроникс. только ввод с клавиатуры не работает!
Попробуй, запустив программу xev, и наведя мышь на белое окно, посмотреть, что она (программа) выдаёт при нажатии на клавиши в русском и английском режиме и сообщи сюда.
У меня секция "inputDevice" немного отличается:
Identifier "Keyboard1"
Driver "Keyboard"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbCompat" "group_led"
Option "XkbOptions" "grp:menu_toggle"
(переключение по кнопке МЕНЮ). Попробуй эти параметры.
# Option "XkbDisable"
Видимо, не в этом дело..
KeyPress event, serial 24, synthetic NO, window 0x2000001,
root 0x26, subw 0x0, time 972323262, (39,106 root:(607,280
state 0x2000, keycode 29 (keysym 0x6ce, Cyrillic_en same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 24, synthetic NO, window 0x2000001,
root 0x26, subw 0x0, time 972323370, (39,106 root:(607,280
state 0x2000, keycode 29 (keysym 0x6ce, Cyrillic_en same_screen YES,
XLookupString gives 0 characters: ""
символы считывает, но не выдаёт!
хмм. и еще. у меня X почему-то не понимает
Option "XkbModel" "pc104"
ей надо
XkbModel "pc104"
У тебя очень старый X, поэтому опции немного различаются.
Попробуй запустить
#xkbcomp :0 - |less
Там встречаются эти Cyrillic_* или нет?
Скачай ftp://tz.hackers/pub/xkb/test.xkb
и запусти
#xkbcomp test.xkb :0
(забыл, как там переключаться, кажется, CapsLock).
Может быть, что-нибудь выйдет.
KeyPress event, serial 19, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973197192, (48,38 root:(94,146
state 0x0, keycode 38 (keysym 0x61, a same_screen YES,
XLookupString gives 1 characters: "a"
KeyRelease event, serial 24, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973197292, (48,38 root:(94,146
state 0x0, keycode 38 (keysym 0x61, a same_screen YES,
XLookupString gives 1 characters: "a"
KeyPress event, serial 24, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973198649, (48,38 root:(94,146
state 0x0, keycode 117 (keysym 0xfe08, ISO_Next_Group same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 24, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973198724, (48,38 root:(94,146
state 0x2000, keycode 117 (keysym 0xfe08, ISO_Next_Group same_screen YES,
XLookupString gives 0 characters: ""
KeyPress event, serial 24, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973199612, (48,38 root:(94,146
state 0x2000, keycode 38 (keysym 0x6c6, Cyrillic_ef same_screen YES,
XLookupString gives 0 characters: ""
KeyRelease event, serial 24, synthetic NO, window 0x2800001,
root 0x26, subw 0x2800002, time 973199685, (48,38 root:(94,146
state 0x2000, keycode 38 (keysym 0x6c6, Cyrillic_ef same_screen YES,
XLookupString gives 0 characters: ""
я вне локалки. можешь выслать на mail.cir.ru ?
в виде XK_Cyrillic_*. Если нет, то, по-видимому, нужна другая таблица XKB, но будут ли понимать другие keysyms другие приложения? Когда-то у меня была такая проблема, xterm и всякие Нетскейпы хотели Cyrillic_* в качестве русских букв, а aterm, который я нежно люблю, хотел символы из latin1. Но это было давно... Проблема решилась апгрейдом к Mandrake 8.0.
>> мой >>
key <AD07> {
symbols[Group1]= [ u, U ],
symbols[Group2]= [ Cyrillic_ghe, Cyrillic_GHE ]
};
<< твой <<
key <AD07> {
symbols[Group1]= [ u, U ],
symbols[Group2]= [ Ccedilla, ccedilla ]
};
на
#xkbcomp test.xkb :0
говорит кучу варнингов типа: (почти для всех символов 128-255)
Warning: No symbols defined for <I76> (keycode 246)
в /usr/include/X11/keysymdef.h всё есть..
Что выводится на экран в русском режиме при загрузке моей таблицы?
При экспериментах с таблицами имеет стоит заранее сохранить более-менее работающую раскладку в файл
#xkbcomp :0 orig.xkb
и при неудаче возвращать её на место командой
#xkbcomp orig.xkb :0
Локаль не выставлена, похоже
Сделай
#export LC_ALL=ru_RU.KOI8-R
и должно всё заработать.
Отец меня опередил
Правда, не знаю, почему, отцы локализации так говорят
Атееец! Как пришел, как сказал, сразу все заработало! одно слово: АТЕЦ . всем баальшое спасибо!
Если нужно испрользовать попеременно более двух раскладок (а XKB это, кажется, позволяет какую локаль выставлять? Только UTF8 или есть другие возможности?
я не знаю
А как сделать, чтоб печатаемые буквы были в кодировке cp1251? Поскольку файлы периодически гоняются туда-сюда с win на linux, ломает их перекодировать в зад-перёд.
Поставить LANG=ru_RU.CP1251
с такими требованиями наверное имеет смысл на ALTLinux посмотреть, по утверждениям отцов там практически всё это "из коробки"
но не работает. надо еще в настройках шрифтов чего-то сделать..
видимо, для этого нужен файл
/usr/X11R6/lib/X11/fonts/encodings/microsoft-cp1251.enc
а что с ним делать и куда прописывать?
для (2) необходимо 2.1) наличие такого шрифта и 2.2) объяснить xtermу, что надо этот шрифт использовать (в командной строке или через зависимую от локали секцию в xrdb)
зачем нужно /usr/X11R6/lib/X11/fonts/encodings/ , я не знаю
Оставить комментарий
yolki
Ерунда какая-то. в секции Keyboard написано:XkbRules "xfree86"
XkbModel "pc104"
XkbLayout "ru"
XkbVariant "winkeys"
XkbOptions "grp:shift_toggle"
но эта зараза по-русски ни в какую печатать не хочет.
при нажатии двух шифтов буквы не печатаются (ни в XTerm, ни в редакторах типа gvim, ни в полях ввода на страницах в нетскейпе). клавиши нажимаю - ноль эффекта.
еще русские буквы вылезают при нажатии "альт+буква", например:
Alt+A=А, Alt+D=Д, Alt+X=Ь. что не есть "ФЫВА" или "ЙЦУКЕН". это есть "АСДФГ"!
таким манером почему-то набираются только большие буквы и только в xterm. хотя Alt+Q вызывает переключение в другое окно. но это уже от Afterstep-а. может в менеджере дело?!
XFree86 версии 4.0.3-5, RH Linux 7.1