--- xxkb-1.6.orig/Imakefile
+++ xxkb-1.6/Imakefile
@@ -2,7 +2,7 @@
BASEDIR = $(PROJECTROOT)
LOCAL_LIBRARIES = $(XONLYLIB) -lXpm -lXt
-PIXMAPDIR = $(BASEDIR)/share/xxkb
+PIXMAPDIR = /usr/share/xxkb
BINDIR = $(BASEDIR)/bin
SRCS = xxkb.c resource.c wlist.c
@@ -15,7 +15,7 @@
-DPIXMAPDIR=\"$(DESTDIR)$(PIXMAPDIR)\"
CDEBUGFLAGS = -O2
-ComplexProgramTarget(xxkb)
+ComplexProgramTargetNoMan(xxkb)
InstallAppDefaults(XXkb)
InstallMultiple ($(PIXMAPS),$(PIXMAPDIR))
--- xxkb-1.6.orig/3gr.html
+++ xxkb-1.6/3gr.html
@@ -0,0 +1,56 @@
+
+
Три раскладки в xxkb
+
+
+
+ Как с помошью xxkb работать более чем с двумя
+раскладками клавиатуры
+
+ Одной из проблем при руссификации "иксов" является то, что некоторые
+приложения ("правильные") нормально вводят русские буквы, если в раскладке
+клавиатуры они закодированы двубайтными кодами - Cyrillic_A, Cyrillic_BE
+и т.д., а другие ("неправильные") понимают только однобайтные коды
+(которые используются в xmodmap).
+
+
Попытки заставить все приложения работать с одной и той же раскладкой,
+не всегда приводят к успеху.
+
+
При этом существует достаточно простое решение - держать в системе
+две "русских" раскладки - для "правильных" и "неправильных" программ.
+Неудобство в том, что вместе с латинской получается уже три раскладки и
+переключаться между ними с помощью одной клавиши становится очень неудобно.
+
+
При использовнии "штатного средства" -
+клавиатурного модуля XKB,
+можно с помощью файлов конфигурации этого XKB загрузить сразу три раскладки
+клавиатуры (вообще-то их может быть до 4-х). Но тогда клавиша-переключатель
+будет иметь не два состояния (лат/рус), а циклически перебирать все три
+раскладки.
+
+
В этом случае вам может облегчить жизнь программка xxkb.
+
+ - Предположим, что у вас уже есть подходящий файл конфигурации XKB
+с тремя раскладками клавиатуры. Если его нет, то можно взять
+здесь и
+положить в X11R6/lib/X11/xkb/symbols (вам придется или переименовать
+его в ru, или подправить соответствующие файлы конфигурации XKB).
+
- Если вы используете вышеуказанный файл, то "правильная" раскладка
+(которая и должна использоваться "по умолчанию") в нем имеет номер группы 3,
+а "неправильная" - 2.
+
- Исправьте в файле настроек xxkb строчку
+
XXkb.group.alt: 3
+
и, если вы хотите, назначение "флажков-иконок"
+
XXkb.mainwindow.xpm.2: su48.xpm
+
XXkb.mainwindow.xpm.3: ru48.xpm
+
XXkb.button.xpm.2: su48.xpm
+
XXkb.button.xpm.3: ru48.xpm
+ - Теперь, если у вас запущен xxkb, то каждом стартующем приложении
+"по умолчанию" будут переключаться две группы - "лат"/"правильный_рус".
+А для тех приложений, которым нужна "старая" раскладка можно правой кнопкой
+мыши выбрать "старую" русскую раскладку (она будет отображаться "советским"
+флажком). И в дальнейшем, в этом приложении тот же переключатель клавиатуры
+будут переключаться между "лат" и "старый_рус".
+
+
+
+
--- xxkb-1.6.orig/debian/conffiles
+++ xxkb-1.6/debian/conffiles
@@ -0,0 +1 @@
+/etc/X11/app-defaults/XXkb
--- xxkb-1.6.orig/debian/control
+++ xxkb-1.6/debian/control
@@ -0,0 +1,22 @@
+Source: xxkb
+Section: x11
+Priority: optional
+Build-Depends: debhelper, xutils, xlibs-dev
+Maintainer: Artem Chuprina
+Standards-Version: 3.0.1
+
+Package: xxkb
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Keyboard state indicator and switcher for xkb
+ This program is a keyboard state indicator and switcher for xkb. Features:
+ - shows current xkb group (pixmap in its own window)
+ - allows switch group by mouse click
+ - allows individual state for every window
+ - can install its own button (indicator/mouse switcher) on every window's
+ title bar
+ - can restrict keyboard states for every window to only two ("main group" -
+ "alternative group") if xkb set up for more than two groups.
+ Bugs:
+ - documentation is partially in Russian (koi8-r charset) only
+
--- xxkb-1.6.orig/debian/README.Debian
+++ xxkb-1.6/debian/README.Debian
@@ -0,0 +1,9 @@
+xxkb for Debian
+----------------------
+
+Added 3gr.html (http://www.tsu.ru/~pascal/other/xxkb/3gr.html) and ru-koi-3gr
+(http://www.tsu.ru/~pascal/other/xkb/ru-koi-3gr) - instructions how to use 3
+keyboard layouts with XKB and russian XKB symbols with 3 groups to make work
+with russian input both XKB-aware and not XKB-aware applications.
+
+ -- Artem Chuprina , Fri Jan 28 20:12:56 MSK 2000
--- xxkb-1.6.orig/debian/changelog
+++ xxkb-1.6/debian/changelog
@@ -0,0 +1,77 @@
+xxkb (1.6-4) unstable; urgency=low
+
+ * Included dependency on debhelper (Closes: #124147)
+ * Fixed minor spelling errors (Closes: #125572)
+
+ -- Artem Chuprina Tue, 18 Dec 2001 14:24:20 +0300
+
+xxkb (1.6-3) unstable; urgency=low
+
+ * Minor corrections in documentation; fixed bug in packing of previous package
+ * Changed PIXMAPDIR and target in Imakefile
+ * Formally changed menu entry (really changed in previous versions).
+ (Closes: #114611)
+
+ -- Artem Chuprina Sat, 15 Dec 2001 15:13:22 +0300
+
+xxkb (1.6-2) unstable; urgency=low
+
+ * Technical rebuild
+
+ -- Artem Chuprina Fri, 9 Mar 2001 16:19:07 +0300
+
+xxkb (1.6-1) unstable; urgency=low
+
+ * New uptream verion. Really moved /usr/X11R6/lib/X11/app-defaults/XXkb to /etc/X11/app-defaults/XXkb. (Closes: #86340). I mean it. No kidding.
+
+ -- Daniel Ginsburg Tue, 6 Mar 2001 19:11:08 +0300
+
+xxkb (1.5.1-3) unstable; urgency=low
+
+ * Changed conffiles from /usr/X11R6/lib/X11/app-defaults/XXkb to
+ /etc/X11/app-defaults/XXkb. (Closes: #85385)
+
+ -- Peter Novodvorsky Sun, 11 Feb 2001 07:30:51 +0300
+
+xxkb (1.5.1-2) unstable; urgency=low
+
+ * Pixmap dir moved to /usr/share/xxkb
+ * Added translation of README into English
+ * Sponsor upload by Peter Novodvorsky. (closes: #81145)
+
+ -- Artem Chuprina Thu, 1 Feb 2001 05:05:49 +0300
+
+xxkb (1.5.1-1) unstable; urgency=low
+
+ * New upstream version: incorporated fix from 1.5-2 and fixed bug when xxkb
+ did not work with mainwindow turned off.
+
+ -- Artem Chuprina Fri, 24 Nov 2000 01:23:51 +0300
+
+xxkb (1.5-2) unstable; urgency=low
+
+ * fight with wm_class_class
+
+ -- Artem Chuprina Thu, 9 Nov 2000 15:40:41 +0300
+
+xxkb (1.5-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Artem Chuprina Mon, 23 Oct 2000 22:58:01 +0400
+
+xxkb (1.4-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Artem Chuprina Mon, 15 May 2000 12:36:08 +0400
+
+xxkb (1.3-1) unstable; urgency=low
+
+ * Moved to new upstream version and debhelper
+
+ -- Artem Chuprina Fri, 28 Jan 2000 20:35:02 +0300
+
+Local variables:
+mode: debian-changelog
+End:
--- xxkb-1.6.orig/debian/copyright
+++ xxkb-1.6/debian/copyright
@@ -0,0 +1,9 @@
+This package was debianized by Artem Chuprina
+
+It was downloaded from http://www.tsu.ru/~pascal/other/xxkb/
+
+Upstream Author: Ivan Pascal
+
+Copyright:
+
+Artistic (see the file LICENSE)
--- xxkb-1.6.orig/debian/xxkb.1
+++ xxkb-1.6/debian/xxkb.1
@@ -0,0 +1,33 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH XXKB SECTION "December 31, 1999"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+xxkb \- shows and manages keyboard state with Xkb
+.SH SYNOPSIS
+.B xxkb
+.RI [ options ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B xxkb
+command.
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+Instead, it has documentation in text format in /usr/share/doc/xxkb
+directory (sorry, koi8-r only).
+.SH AUTHOR
+This manual page was written by Artem Chuprina ,
+for the Debian GNU/Linux system (but may be used by others).
--- xxkb-1.6.orig/debian/menu
+++ xxkb-1.6/debian/menu
@@ -0,0 +1,2 @@
+?package(xxkb):needs=X11|wm section=Apps/Tools\
+ title="xxkb" command="/usr/bin/xxkb"
--- xxkb-1.6.orig/debian/rules
+++ xxkb-1.6/debian/rules
@@ -0,0 +1,77 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
+
+build: build-stamp
+build-stamp:
+ dh_testdir
+
+
+ xmkmf
+ $(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ $(MAKE) install DESTDIR=`pwd`/debian/tmp
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+# dh_testversion
+ dh_testdir
+ dh_testroot
+# dh_installdebconf
+ dh_installdocs
+# dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+# dh_installcron
+ dh_installmanpages
+# dh_installinfo
+# dh_undocumented
+ dh_installchangelogs CHANGES.koi8
+ dh_link
+ dh_strip
+ dh_compress
+# dh_fixperms
+# You may want to make some executables suid here.
+# dh_suidregister
+# dh_makeshlibs
+ dh_installdeb
+# dh_perl
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
--- xxkb-1.6.orig/debian/docs
+++ xxkb-1.6/debian/docs
@@ -0,0 +1,6 @@
+README-Linux.koi8
+README.koi8
+README
+TODO.koi8
+3gr.html
+ru-koi-3gr
--- xxkb-1.6.orig/README
+++ xxkb-1.6/README
@@ -0,0 +1,234 @@
+
+MAIN PROPERTIES OF xxkb PROGRAM
+
+This program is an indicator and a switcher of keyboard state ("groups" in XKB
+terminology).
+
+That is, xxkb
+- shows current group (with picture in its window)
+- switches group by mouse click
+You can also switch groups with usual switcher key defined in XKB
+configuration files.
+
+In addition, xxkb allows to
+- set keyboard state separately for every running application. Keyboard state
+ is switched automatically with window focus.
+- attach an icon to decorations of every handled window. This icon is also an
+ indicator and a switcher button for this window.
+- when XKB is set up for more than two groups, correct switcher key behavior so
+ that it has only two states - "base" and "alternative" groups. Alternative
+ group can be chosen per window from those available.
+
+xxkb should work with any window manager (checked with twm, mwm, fvwm*, icewm,
+WindowMaker, Enlightenment). Surely you have to tune size and placement of an
+icon on window decorations to get harmony with your WM settings.
+
+INSTALLATION.
+
+First, you should have XKB set up. If you need help and can read (and see) in
+russian, you can read instructions on http://www.tsu.ru/~pascal/other/xkb.
+
+Second, you need libXpm library (it is also used by many applications). If you
+have not this library, you can download it from ftp://avahi.inria.fr/pub/xpm/
+or in your distribution.
+
+To install xxkb, you should
+- unpack the distribution archive (man tar)
+- run
+
+$ xmkmf
+$ make
+
+and as root
+
+# make install
+
+(Probably you will want to change PIXMAPDIR and LOCAL_LIBRARIES. Do this in
+Imakefile before running all commands.)
+
+After this it is recommended to insert "launch of xxkb" (the command is named
+xxkb) into X session startup file or into configuration of your window manager,
+while it is possible to run xxkb manually. Best, it should be run after WM but
+before other applications.
+
+SETTINGS
+
+xxkb searches all parameters in
+- XXkb in system-wide app-defaults directory (for XFree86 it is usually
+ /usr/X11R6/lib/X11/app-defaults)
+- .xxkbrc in the user's home directory
+If xxkb is compiled with XT_RESOURCE_SEARCH option (by default), then search
+for configuration is made in the following order:
+- /usr/X11R6/lib/X11/${LANG}/app-defaults/XXkb
+- /usr/X11R6/lib/X11//app-defaults/XXkb
+- /usr/X11R6/lib/X11/app-defaults/XXkb
+and, correspondingly, in
+- ${HOME}/${LANG}/.xxkbrc
+- ${HOME}//.xxkbrc
+- ${HOME}/.xxkbrc
+where are two first letters from ${LANG} meaning language (as "ru" where
+${LANG} is "ru_RU.KOI8-R").
+If you don't need this multi-locale support and want to save two kilobytes of
+code, you can disable this option in xxkb.h.
+
+
+Common parameters
+
+XXkb.xpm.path - directory where all pictures (*.xpm) are read from.
+
+
+Parameters of "main window"
+
+XXkb.mainwindow.enable - enables main window. Default value - yes. If you have
+not disabled per-window "button", you probably do not need main window on your
+screen space.
+
+XXkb.mainwindow.appicon - especially for WindowMaker. Allows to "dock" xxkb.
+You can use this parameter with other WMs, but the result depends on WM.
+
+XXkb.mainwindow.geometry - geometry of main window
+("width"x"height"+"abscess"+"ordinate", see X(1) for details). It is
+recommended to reflect picture size.
+
+XXkb.mainwindow.xpm.1
+XXkb.mainwindow.xpm.2
+XXkb.mainwindow.xpm.3
+XXkb.mainwindow.xpm.4 - picture filenames for four XKB groups. If not all the
+four groups are defined in XKB configuration, there is no need to define
+pictures for unused groups. Argument beginning with "/" means full path to
+file. Otherwise it is interpreted relative to XXkb.xpm.path.
+
+
+Mode settings
+
+XXkb.controls.add_when_start - find already running applications on start and
+handle them. It is "yes" by default, but may work incorrectly with some window
+managers.
+
+XXkb.controls.add_when_create - add all newly created windows into list of
+handled windows. It is "yes" by default. May work incorrectly with some window
+managers.
+
+XXkb.controls.add_when_change - add window into list of handled windows when
+keyboard state is changed with focusn this window and window is not in the
+list. It is "no" by default. This mode has sense only when
+XXkb.controls.add_when_create is disabled or when xxkb is started after
+applications whose windows it could not find at start. This mode does not
+disable others.
+
+XXkb.controls.focusout - reset keyboard state to main group when focus leaves
+window. It is "no" by default. Has sense when only
+XXkb.controls.add_when_change is used (so xxkb remembers only those windows
+where keyboard state was changed and will not switch keyboard when "defocusing"
+these windows. If all windows are handled this mode only adds many unnecessary
+keyboard switchings.
+
+XXkb.button.enable - place "button" on handled window. It is "yes" by default.
+
+XXkb.controls.button_delete - allow deletion of "button" by middle mouse button
+click. It is "yes" by default. Useful to delete "button" from windows where it
+is undesirable, such as menus of window manager.
+
+XXkb.controls.two_state - "two states" of keyboard switcher. It is "yes" by
+default. If XKB configuration defines more than two groups, you can choose one
+of them as "base" and another as "alternative". Then keyboard switcher will
+switch keyboard state between those two instead of cycling all groups. This
+"correction" works with both mouse click and switcher key. Any window can have
+its own "alternative" group while "base" is one for all. When this mode is on
+right click allows to choose "alternative" group cycling through them.
+
+When this mode is on, another two parameters have sense:
+
+XXkb.group.base - "base" group (1--4)
+
+XXkb.group.alt - default "alternative" group (1--4)
+
+
+"Button" parameters
+
+All these parameters have sense when XXkb.button.enable is on. Then xxkb itself
+places "button" on window decoration, so to get harmony with your configuration
+you probably need to tune its position and size.
+
+XXkb.button.geometry - "button" geometry relative to window. It is 15x15-60+7
+by default.
+
+XXkb.button.gravity - "button" gravity, that is to what corner or side of
+window "button" position will be constant when resizing window. May be on of
+North, NorthEast, NorthWest, South, SouthEast, SouthWest, East, West and
+Center. It is NorthEast (right-up corner) by default.
+
+XXkb.button.xpm.1
+XXkb.button.xpm.2
+XXkb.button.xpm.3
+XXkb.button.xpm.4 - pictures filenames fo "button". Same as for main window
+(see XXkb.mainwindow.xpm).
+
+
+Bell parameters
+
+XXkb.bell.enable - enables bell on group switching.
+
+XXkb.bell.percent - parameter for XBell.
+
+
+Lists of application (windows) which need special handling.
+
+XXkb.app_list..:
+
+ may be
+- ignore - applications from this list are ignored. Additional option
+ ignore.reverse (see below) reverts meaning of this parameter.
+- start_alt - applications from this list start with alternative group on.
+- alt_group1, alt_group2, alt_group3, alt_group4 - for applications from this
+ list set alternative group to shown by number instead of set by
+ XXkb.group.alt.
+
+ may be
+- wm_class_class
+- wm_class_name
+- wm_name
+xxkb distinguishes applications by their properties WM_CLASS and WM_NAME.
+WM_CLASS in turn consists of two parts - res_class and res_name. Multi-window
+applications usually have same WM_CLASS:res_class and different
+WM_CLASS:res_name. WM_NAME property is used to tell to window manager which
+header to show in titlebar and can change from call to call (e.g. edited/viewed
+document name). So
+- WM_CLASS:res_class (criteria wm_class_class) is best used to handle
+ applications;
+- WM_CLASS:res_name (criteria wm_class_name) is best used for tuning when you
+ need to distinguish some of application windows such as menus and dialogs;
+- WM_NAME (criteria wm_name) is best used only if window has no WM_CLASS
+ property.
+You can view window properties with xprop(1).
+
+By default all lists are empty.
+List is a space- or tab-separated list of words. You can use a '*' wildcard
+(meaning is the same as in shell). Long list may be continued on a next line
+using '\', again as in shell. Example:
+XXkb.app_list.wm_name.ignore: Fvwm* *clock \
+ Xman
+
+XXkb.ignore.reverse - account windows in 'ingnored' lists as handled, and vice
+versa, that is lists with 'ignore' action define windows which are to be
+handled, and all others are ignored. It is "no" by default.
+
+
+MANAGING DURING WORK.
+
+You can switch keyboard state by switcher key defined in XKB configuration.
+When "two_state" mode is on that key switches between "base" and "alternative"
+groups.
+
+Mouse buttons
+Left - full analog of switcher key.
+Middle - in main window exits xxkb. On "button" deletes this "button" from
+ window.
+Right - when "two_state" mode is on changes alternative group, otherwise is
+ identical to left button.
+
+--
+Ivan Pascal
+pascal@tsu.ru
+
+Translation - Artem Chuprina . Sorry for my English.
--- xxkb-1.6.orig/ru-koi-3gr
+++ xxkb-1.6/ru-koi-3gr
@@ -0,0 +1,160 @@
+xkb_symbols {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple Russian keybaord
+
+// key { [ ISO_Next_Group, Caps_Lock ]};
+ key { [ ISO_Next_Group ]};
+
+ name[Group1]= "US/ASCII";
+ name[Group2]= "KOI8-R";
+ name[Group3]= "Cyrillic";
+
+ key { [ grave, asciitilde ],
+ [ 0xa3, 0xb3 ],
+ [ Cyrillic_io, Cyrillic_IO ] };
+ key { [ less, greater ],
+ [ bar, brokenbar ] };
+ key { [ q, Q ],
+ [ 0xca, 0xea ],
+ [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key { [ 1, exclam ],
+ [ exclam, 1 ],
+ [ exclam, 1 ] };
+ key { [ z, Z ],
+ [ 0xd1, 0xf1 ],
+ [ Cyrillic_ya, Cyrillic_YA ] };
+ key { [ s, S ],
+ [ 0xd9, 0xf9 ],
+ [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key { [ a, A ],
+ [ 0xc6, 0xe6 ],
+ [ Cyrillic_ef, Cyrillic_EF ] };
+ key { [ w, W ],
+ [ 0xc3, 0xe3 ],
+ [ Cyrillic_tse, Cyrillic_TSE ] };
+ key { [ 2, at ],
+ [ quotedbl, 2 ],
+ [ quotedbl, 2 ] };
+ key { [ c, C ],
+ [ 0xd3, 0xf3 ],
+ [ Cyrillic_es, Cyrillic_ES ] };
+ key { [ x, X ],
+ [ 0xde, 0xfe ],
+ [ Cyrillic_che, Cyrillic_CHE ] };
+ key { [ d, D ],
+ [ 0xd7, 0xf7 ],
+ [ Cyrillic_ve, Cyrillic_VE ] };
+ key { [ e, E ],
+ [ 0xd5, 0xf5 ],
+ [ Cyrillic_u, Cyrillic_U ] };
+ key { [ 4, dollar ],
+ [ asterisk, 4 ],
+ [ asterisk, 4 ] };
+ key { [ 3, numbersign ],
+ [ apostrophe, 3 ],
+ [ apostrophe, 3 ] };
+ key { [ v, V ],
+ [ 0xcd, 0xed ],
+ [ Cyrillic_em, Cyrillic_EM ] };
+ key { [ f, F ],
+ [ 0xc1, 0xe1 ],
+ [ Cyrillic_a, Cyrillic_A ] };
+ key { [ t, T ],
+ [ 0xc5, 0xe5 ],
+ [ Cyrillic_ie, Cyrillic_IE ] };
+ key { [ r, R ],
+ [ 0xcb, 0xeb ],
+ [ Cyrillic_ka, Cyrillic_KA ] };
+ key { [ 5, percent ],
+ [ colon, 5 ],
+ [ colon, 5 ] };
+ key { [ n, N ],
+ [ 0xd4, 0xf4 ],
+ [ Cyrillic_te, Cyrillic_TE ] };
+ key { [ b, B ],
+ [ 0xc9, 0xe9 ],
+ [ Cyrillic_i, Cyrillic_I ] };
+ key { [ h, H ],
+ [ 0xd2, 0xf2 ],
+ [ Cyrillic_er, Cyrillic_ER ] };
+ key { [ g, G ],
+ [ 0xd0, 0xf0 ],
+ [ Cyrillic_pe, Cyrillic_PE ] };
+ key { [ y, Y ],
+ [ 0xce, 0xee ],
+ [ Cyrillic_en, Cyrillic_EN ] };
+ key { [ 6, asciicircum ],
+ [ comma, 6 ],
+ [ comma, 6 ] };
+ key { [ m, M ],
+ [ 0xd8, 0xf8 ],
+ [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
+ key { [ j, J ],
+ [ 0xcf, 0xef ],
+ [ Cyrillic_o, Cyrillic_O ] };
+ key { [ u, U ],
+ [ 0xc7, 0xe7 ],
+ [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key { [ 7, ampersand ],
+ [ period, 7 ],
+ [ period, 7 ] };
+ key { [ 8, asterisk ],
+ [ semicolon, 8 ],
+ [ semicolon, 8 ] };
+ key { [ comma, less ],
+ [ 0xc2, 0xe2 ],
+ [ Cyrillic_be, Cyrillic_BE ] };
+ key { [ k, K ],
+ [ 0xcc, 0xec ],
+ [ Cyrillic_el, Cyrillic_EL ] };
+ key { [ i, I ],
+ [ 0xdb, 0xfb ],
+ [ Cyrillic_sha, Cyrillic_SHA ] };
+ key { [ o, O ],
+ [ 0xdd, 0xfd ],
+ [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key { [ 0, parenright ],
+ [ parenright, 0 ],
+ [ parenright, 0 ] };
+ key { [ 9, parenleft ],
+ [ parenleft, 9 ],
+ [ parenleft, 9 ] };
+ key { [ period, greater ],
+ [ 0xc0, 0xe0 ],
+ [ Cyrillic_yu, Cyrillic_YU ] };
+ key { [ slash, question ],
+ [ slash, question ] };
+ key { [ l, L ],
+ [ 0xc4, 0xe4 ],
+ [ Cyrillic_de, Cyrillic_DE ] };
+ key { [ semicolon, colon ],
+ [ 0xd6, 0xf6 ],
+ [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key { [ p, P ],
+ [ 0xda, 0xfa ],
+ [ Cyrillic_ze, Cyrillic_ZE ] };
+ key { [ minus, underscore ],
+ [ minus, underscore ] };
+ key { [ apostrophe, quotedbl ],
+ [ 0xdc, 0xfc ],
+ [ Cyrillic_e, Cyrillic_E ] };
+ key { [ bracketleft, braceleft ],
+ [ 0xc8, 0xe8 ],
+ [ Cyrillic_ha, Cyrillic_HA ] };
+ key { [ equal, plus ],
+ [ equal, plus ] };
+ key { [ bracketright, braceright ],
+ [ 0xdf, 0xff ],
+ [Cyrillic_hardsign,Cyrillic_HARDSIGN ] };
+ key { [ backslash, bar ],
+ [ backslash, bar ] };
+
+ // Begin modifier mappings
+
+ modifier_map Shift { Shift_L };
+ modifier_map Lock { Caps_Lock, ISO_Lock };
+ modifier_map Control{ Control_L };
+ modifier_map Mod3 { Mode_switch };
+};
+