[LON-CAPA-cvs] cvs: modules /gerd xrus.doc-koi8
sakharuk
lon-capa-cvs@mail.lon-capa.org
Thu, 13 Nov 2003 20:55:52 -0000
This is a MIME encoded message
--sakharuk1068756952
Content-Type: text/plain
sakharuk Thu Nov 13 15:55:52 2003 EDT
Added files:
/modules/gerd xrus.doc-koi8
Log:
Example of KOI8-R.
--sakharuk1068756952
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20031113155552.txt"
Index: modules/gerd/xrus.doc-koi8
+++ modules/gerd/xrus.doc-koi8
Индикатор и переключатель клавиатуры Xrus (Версия 1.4.2)
=========================================================
Описание программы
~~~~~~~~~~~~~~~~~~
Основное назначение данной программы - переключение
регистров клавиатуры РУС/ЛАТ, хотя в принципе ее можно
использовать для переключения других алфавитов, для зтого нужны
только шрифты и раскладка клавиатуры. Программа написана с
использованием библиотек Motif/Xaw.
Механизм действия программы прост - она ловит все нажатия
клавиш и при нажатии определенной комбинации клавиш меняет
местами 1,2 и 3,4 колонки раскладки клавиатуры (modmap).
В данной версии программы переключение происходит при
одновременном нажатии левого и правого Shift (по умолчанию;
можно задать любую другую комбинацию) или при нажатии мышью на
кнопку индикатора. Можно также указать комбинации клавиш для
нетриггерного переключения клавиатуры.
Для обеспечения запирания экрана программа принимает также
события мыши. По истечении заданного времени без событий мыши
и клавиатуры (timeout) запускается заданная программа
блокирования экрана (locker).
Запуск программы
~~~~~~~~~~~~~~~~
Для запуска программы необходимо предварительно загрузить
раскладку русской клавиатуры с помощью программы xmodmap или
указать имя файла с раскладкой в командной строке или в
ресурсах. Раскладка может быть любой, в частности - ЙЦУКЕН или
ЯВЕРТЫ. Следующие действия обычно выполняются в файле .xinitrc:
xmodmap jcuken-koi8-xrus.xmm
xrus
или
xrus jcuken-koi8-xrus.xmm
или просто xrus, если в ресурсах указана строка
Xrus*xmodmap: jcuken-koi8-xrus.xmm
Файлы раскладок для Xrus отличаются от соответствующих
раскладок широко распространенных в сети только отсутствием
изменения модификаторов. В оригинальных раскладках (by Serge
Vakulenko) CapsLock добавлялся к Mod2 для обеспечения
переключения по CapsLock; в Xrus это не нужно. Если у Вас есть
какая-нибудь русская раскладка, которую Вы использовали без
Xrus, то можно либо продолжать использовать ее, либо удалить
изменение модификаторов. В первом случае CapsLock будет
продолжать переключать режим (но Xrus не будет это отображать).
Рекомендуется поместить в каталог .../app-defaults файл
Xrus, в котором записаны ресурсы данной программы (взятые из
Xrus.ad). Xrus не требует этого, но если вы хотите изменить
какие либо ресурсы, удобно иметь под рукой шаблон с умолчаниями
и комментариями. Если у Вас был старый Xrus.ad, то его
обязательно нужно либо удалить, либо заменить на новый.
Собственные ресурсы программы
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name Type Default Corresponding option
-------------- ----------- ----------- --------------------
*autolock boolean false -autolock
*locker string xlock -locker <command>
*timeout int 30 -timeout <value>
*useBell boolean true -bell,+bell
*xmodmap string "" <filename>
*switchKeys string Shift_L+Shift_R none
*toLatKeys string "" none
*toRusKeys string "" none
*led int 0 -led <num>
*altMaps string "" none
*icon boolean true -icon,+icon
*adjustModeButtons boolean true none
*alwaysOnTop boolean false none
*alwaysMapped boolean true none
*capsLockEmu boolean false none
*capsLockLed int 0 none
timeout измеряется в минутах.
-bell включает писк при переключении, +bell - выключает.
switchKeys, toLatkeys и toRusKeys имеют формат:
<Key>+<Key>+..., где Key - стандартное название клавиши из
файла keysymdef.h без приставки XK_.
-led задает номер клавиатуного индикатора для отображения
русского режима клавиатуры. 0 означает отсутствие такого
отображения.
*altMaps задает список файлов с альтернативными раскладками
клавиатуры. Для загрузки этих раскладок запускается xmodmap.
Чтобы задать названия раскладок, появляющиеся в меню, нужно
задать ресурсы *altmapX.labelString, где X - порядковый номер
начиная с нуля. (altmapX - объект типа XmPushButton). В случае
компиляции с Xaw нужно указывать вместо labelString просто
label.
*icon и опции -+icon определяют, будет ли иконка с
индикатором отображаться на экране. Если Вы компилировали без
Motif'a, то иконки не будет всегда.
Если *adjustModeButtons равен True, то размер иконки в
состояниях РУС/ЛАТ уравнивается. Используются максимальные
размеры двух состояний.
Если *alwaysOnTop равен True, то иконка будет 'плавать' над
прочими окнами.
Если *alwaysMapped равен True, то Xrus будет всегда
восстанавливать иконку на экране, когда VWM пытается ее убрать.
(похоже, это не работает с fvwm, но работает с mwm/dtwm)
При '*capsLockEmu: true' Xrus эмулирует действие клавиши
CapsLock, таким образом позволяя вводить большие русские буквы.
CapsLock при этом удаляется из модификаторов.
*capsLockLed устанавливает номер индикатора для CapsLock'a.
Используется только при '*capsLockEmu: true'.
Динамическое изменение параметров и т.д.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
При нажатии на кнопку переключения алфавита правой (третьей)
клавишей мыши появляется меню из которого можно заблокиробать
экран, войти в режим настроек или завершить программу Xrus. В
окне настроек можно изменить параметры выполнения Xrus'а и/или
сохранить их в файл "~/.xrus".
Виртуальные window manager'ы (vwm)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
При работе с vwm удобно приклеить кнопку-индикатор к экрану,
чтобы она не исчезала из вида при переключении виртуальных
desktop'ов. Это можно сделать либо вручную - выбрать опцию
Stick из меню vwm, либо автоматически, настроив ресурсы vwm.
Для fvwm нужно указать что-нибудь вроде "Sticky Xrus" в файле
system.fvwmrc или .fvwmrc; для olvwm - в ресурс VirtualSticky
добавить строчку Xrus.
Тем не менее, Xrus имеет возможность игнорировать попытки
vwm убрать иконку с экрана. Эта возможновть управляется
ресурсом *alwaysMapped (boolean), по умолчанию она включена.
Похоже, что это не работает с fvwm (иконка не
восстанавливается, никаких других побочных эффектов), однако
прекрасно работает с dtwm(CDE). Вероятно, fvwm не обрабатывает
MapRequestEvent.
Проблемы с xlock
~~~~~~~~~~~~~~~~
Если в русском режиме клавиатуры запустить xlock (не из
xrus, а, скажем, из xterm), то возникают проблемы с вводом
пароля (если только у Вас пароль не состоит из русских букв ;).
Для избежания подобных трудностей можно использовать три
приема:
1. Всегда запускать xlock из xrus. В этом случае xrus
автоматически переключается на латинский режим.
2. Предусмотреть какую-нибудь клавишу в xmodmap для
модификатора Mod2, и если Вы все таки запистили xlock в русском
режиме клавиатуры, то набирайте пароль удерживая эту клавишу.
3. Переименовать xlock, а вместо xlock поставить скрипт,
который будет загружать латинскую раскладку и запускать
оригинальный xlock.
Проблемы с некоторыми другими программами
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xv - читает раскладку клавиатуры только один раз при старте,
поэтому не переключается, и если запустить в режиме РУС то
постоянно пищит.
scoterm - пытается эмулировать сканкоды, что у него не
получается для русских букв. Это можно отключить следующими
ресурсами:
scoterm*keyboard: usa
scoterm*charset: iso8859
scoterm*scancodesOn: false
Откуда можно скачать последнюю версию
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ftp://ftp.yars.free.net/pub/software/unix/X11/xrus-A.B.C.tar.gz
ftp://ftp.kiae.su/x11/cyrillic/xrus-A.B.C.tar.gz
Пакеты (package) Xrus для Solaris, собранные Димой Антиповым
<dima@elvis.msk.su>:
ftp://ftp.elvis.ru/pub/sun/Solaris/ SPARC
ftp://ftp.elvis.ru/pub/sun/Solaris/x86/ Intel
или соответственно, с описанием что есть что:
http://ftp.elvis.ru/ftp/pub/sun/Solaris/
http://ftp.elvis.ru/ftp/pub/sun/Solaris/x86/
Дерево объектов (для Motif-версии)
~~~~~~~~~~~~~~~
ApplicationShell(xrus)
|
+-XmForm(form)
|
+-XmPushButton(modeButton0)
+-XmPushButton(modeButton1)
XmMenuShell()
|
+-XmRowColumn(menu)
|
+-XmPushButton(lock)
+-XmPushButton(props)
+-XmCascadeButton(altmap) {создается не всегда}
+-XmPushButton(exit)
XmMenuShell()
|
+-XmRowColumn(altmap_menu)
|
+-XmPushButton(altmap0)
...
+-XmPushButton(altmapN)
XmDialogShell(props)
|
+-XmForm(form)
|
+-XmFrame(frame1)
| |
| +-XmForm(form1)
| |
| +-XmToggleButton(allow_locker)
| +-XmScale(autolock_delay)
| +-XmLabel(locker_label)
| +-XmTextField(locker)
| +-XmPushButton(locker_test)
| +-XmPushButton(locker_def)
|
+-XmFrame(frame2)
| |
| +-XmForm(form2)
| |
| +-XmToggleButton(use_bell)
| +-XmLabel(switch_keys_label)
| +-XmTextField(switch_keys)
| +-XmLabel(to_lat_keys_label)
| +-XmTextField(to_lat_leys)
| +-XmLabel(to_rus_keys_label)
| +-XmTextField(to_rus_keys)
| +-XmPushButton(switch_keys_def)
|
+-XmForm(form4)
|
+-XmPushButton(ok)
+-XmPushButton(cancel)
+-XmPushButton(apply)
+-XmPushButton(save)
Автор
~~~~~
Лукьянов Александр Владимирович (Alexander V. Lukyanov)
e-mail: lav@yars.free.net
paper-mail:
150051, Ярославль, пр-кт Авиаторов, 80-45
Aviatorov st. 80-45, Yaroslavl 150051, Russia
Распространение разрешается в соответствии с GNU General
Public Licence (см. COPYING). Программа распространяется без
гарантий (NO WARRANTY).
Комментарии/баг-репорты/пожелания/патчи приветствуются.
______________________________
--sakharuk1068756952--