Изменение поведения Xkb в XFree86 4.3.0, Заметки по xterm (rus keyboard xfree86 xterm)
Ключевые слова: rus, keyboard, xfree86, xterm, (найти похожие документы)
Date: Thu, 13 Mar 2003 22:18:29 +0500
From: Igor Nikolaev <Igor_Nikolaev@f266.n5030.z2.fidonet.org>
Newsgroups: ftn.ru.unix
Subject: Изменение поведения Xkb в XFree86 4.3.0, Заметки по xterm
Hу почему у кого-то где-то постоянно что-то чешется??
Раньше вполне даже работавшее в /etc/X11/XF86Config-4
Теперь приводит к забавнейшему фефекту: вводятся только русские
буквы и цифры вводятся, а латинских нет. В качестве решения
нужно добавить "us" в XkbLayout:
Игорь Hиколаев "Разборки с xterm" http://knot.pu.ru/faq/xterm
Сюда сведены все разборки и настройки xterm (http://dickey.his.com/xterm).
Принято, что каталог /X11 показывает на /usr/X11R6/lib/X11 то есть
сделано: ln -s /usr/X11R6/lib/X11 /X11
Настройки можно вносить как в app-defaults для приложения (что и
указано в примерах), так и в единый пользовательский файл
~/.Xresources, в этом случае нужно не забыть подать команду xrdb
-merge ~/.Xresources (её выполняет оконный менеджер среди
многочисленных загрузочных скриптов). /X11/app-defaults приложение
читает самостоятельно при запуске, но эти файлы могут быть переписаны
при upgrade дистрибутива. Ресурсы приложения можно посмотреть при
помощи утилит appres и editres.
Русификаторами клавиатуры занимается Иван Паскаль (http://www.tsu.ru/~pascal)
в каталоге /usr/src/usr.bin/mklocale/data/ или
/usr/src/share/mklocale/ есть файл ru_SU.KOI8-R.src из которого
получается LC_CTYPE (http://knot.pu.ru/faq/xterm/ru_SU.KOI8-R.src).
Меняем:
после чего сделать
cd /usr/src/usr.bin/mklocale/data || cd /usr/src/share/mklocale/data
mklocale <ru_SU.KOI8-R.src
>/usr/share/locale/ru_SU.KOI8-R/LC_CTYPE
Посмотрите какие каталоги в задействованом XF86Config отвечают за
русские фонты. Затем распечайтайте содержимое соответствующего
fonts.alias, например cat /X11/fonts/cyrillic/misc/fonts.alias и
внесите эти фонты в /X11/app-defaults/XTerm вместо тех, которые там
содержатся. Например:
*fontMenu*font2*Label: Tiny
*VT100*font2: koi6x10
*fontMenu*font3*Label: Small
*VT100*font3: koi8x13
! default font
*VT100*font: koi7x14
! special case for mandrake :-)
*.vt100.font: koi7x14
*fontMenu*font4*Label: Medium
*VT100*font4: koi9x15
*fontMenu*font5*Label: Large
*VT100*font5: koi10x20
*fontMenu*font6*Label: Huge
*VT100*font6: koi12x24
Редактором после строки
*VT100.Translations: #override n
вставить:
<Key>Home: string("0x1b") string("[7~") n
<Key>End: string("0x1b") string("[8~") n
l10n под linux debian
Локализация - это свойство пользователя, а не системы. В linux (пока)
нет общесистемного подхода (во FreeBSD к примеру это класс
пользователся в /etc/master.passwd). Как мне кажется, в результате
локализация должна быть прописана в ~/.profile в виде:
LANG="ru_RU.KOI8-R"
export LANG
и вызываться в /etc/X11/Xsession.d/88xfree86-profile :
./~profile
Впрочем каждый может сделать как ему нравится...
Некорректная l10n, в результате нет русских букв
У меня под xdm со старыми версиями FreeBSD почему-то не было
русских буковок в xterm. Причём если из xterm вызвать другой xterm, то
русские буковки появлялись. Это очевидно навело на мысль, что при
запуске xterm ещё не установлены переменные окружения, отвечающие за
локализацию (затем xterm вызывает shell, а тот устанавливает
переменные).
В итоге я поменял в /X11/xdm/Xsession хвост следующим образом:
startup=$HOME/.xsession
resources=$HOME/.Xresources
if [ -f "$startup" ]; then
exec "$startup"
else
# by Igor
LANG=ru_RU.KOI8-R; export LANG;
MM_CHARSET=KOI8-R; export MM_CHARSET