Skip to content

Instantly share code, notes, and snippets.

@svetlyak40wt
Created November 14, 2008 11:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save svetlyak40wt/24877 to your computer and use it in GitHub Desktop.
Save svetlyak40wt/24877 to your computer and use it in GitHub Desktop.
XKB config with typography and Alt+Space language switching
xkb_keymap "rusadv"
{
xkb_keycodes
{
include "xfree86"
};
xkb_types
{
include "default"
};
xkb_compatibility
{
include "default"
include "xfree86"
indicator "Caps Lock" {
modifiers= None;
groups=All-group1;
};
// Shift to the 3rd group
interpret ISO_Last_Group_Lock { action = SetGroup(group=3); };
};
xkb_symbols
{
include "pc+us+ru(winkeys)"
name[Group1] = "US/ASCII";
name[Group2] = "Russian";
name[Group3] = "Polygraphy symbols";
key <ESC> {
[Escape]
};
# 1st keyboard row
key <TLDE> {
[quoteleft, asciitilde],
[Cyrillic_io, Cyrillic_IO],
[acute, approxeq]
};
key <AE01> {
[1, exclam],
[1, exclam],
[onesuperior, onesuperior]
};
key <AE02> {
[2, at],
[2, quotedbl],
[twosuperior, twosuperior]
};
key <AE03> {
[3, numbersign],
[3, numerosign],
[threesuperior, threesuperior]
};
key <AE04> {
[4, dollar],
[4, semicolon],
[section, section]
};
key <AE05> {
[5, percent],
[5, colon],
[0x01002030, 0x01002030]
};
key <AE06> {
[6, asciicircum],
[6, comma]
};
key <AE07> {
[7, ampersand],
[7, period],
[questiondown, question]
};
key <AE08> {
[8, asterisk],
[8, semicolon]
};
key <AE09> {
[9, parenleft]
};
key <AE10> {
[0, parenright]
};
key <AE11> {
[minus, underscore],
[minus, underscore],
[emdash, hyphen]
};
key <AE12> {
[equal, plus],
[equal, plus],
[notequal, plusminus]
};
key <BKSL> {
[backslash, bar],
[backslash, bar]
};
key <BKSP> {
[BackSpace]
};
#############################
# 2nd keyboard row
key <TAB> {
[Tab, ISO_Left_Tab]
};
key <AD01> {
[q, Q],
[Cyrillic_shorti, Cyrillic_SHORTI],
[q, onequarter]
};
key <AD02> {
[w, W],
[Cyrillic_tse, Cyrillic_TSE]
};
key <AD03> {
[e, E],
[Cyrillic_u, Cyrillic_U],
[EuroSign, oneeighth]
};
key <AD04> {
[r, R],
[Cyrillic_ka, Cyrillic_KA],
[registered, R]
};
key <AD05> {
[t, T],
[Cyrillic_ie, Cyrillic_IE],
[trademark, onethird]
};
key <AD06> {
[y, Y],
[Cyrillic_en, Cyrillic_EN]
};
key <AD07> {
[u, U],
[Cyrillic_ghe, Cyrillic_GHE]
};
key <AD08> {
[i, I],
[Cyrillic_sha, Cyrillic_SHA]
};
key <AD09> {
[o, O],
[Cyrillic_shcha, Cyrillic_SHCHA],
[masculine, O]
};
key <AD10> {
[p, P],
[Cyrillic_ze, Cyrillic_ZE],
[acute, doubleacute]
};
key <AD11> {
[bracketleft, braceleft],
[Cyrillic_ha, Cyrillic_HA]
};
key <AD12> {
[bracketright, braceright],
[Cyrillic_hardsign, Cyrillic_HARDSIGN]
};
#############################
# 3rd keyboard row
key <AC01> {
[a, A],
[Cyrillic_ef, Cyrillic_EF],
[0x1000301, A]
};
key <AC02> {
[s, S],
[Cyrillic_yeru, Cyrillic_YERU],
[section, S]
};
key <AC03> {
[d, D],
[Cyrillic_ve, Cyrillic_VE],
[degree, D]
};
key <AC04> {
[f, F],
[Cyrillic_a, Cyrillic_A],
[sterling, F]
};
key <AC05> {
[g, G],
[Cyrillic_pe, Cyrillic_PE]
};
key <AC06> {
[h, H],
[Cyrillic_er, Cyrillic_ER],
[h, onehalf]
};
key <AC07> {
[j, J],
[Cyrillic_o, Cyrillic_O],
[doublelowquotemark, J]
};
key <AC08> {
[k, K],
[Cyrillic_el, Cyrillic_EL],
[leftdoublequotemark, leftsinglequotemark]
};
key <AC09> {
[l, L],
[Cyrillic_de, Cyrillic_DE],
[rightdoublequotemark, rightsinglequotemark]
};
key <AC10> {
[semicolon, colon],
[Cyrillic_zhe, Cyrillic_ZHE],
[leftsinglequotemark, seconds]
};
key <AC11> {
[quoteright, quotedbl],
[Cyrillic_e, Cyrillic_E],
[rightsinglequotemark, minutes]
};
key <RTRN> {
[Return]
};
#############################
# 4th keyboard row
key <AB01> {
[z, Z],
[Cyrillic_ya, Cyrillic_YA]
};
key <AB02> {
[x, X],
[Cyrillic_che, Cyrillic_CHE],
[multiply, 0x010022C5]
};
key <AB03> {
[c, C],
[Cyrillic_es, Cyrillic_ES],
[copyright, C]
};
key <AB04> {
[v, V],
[Cyrillic_em, Cyrillic_EM]
};
key <AB05> {
[b, B],
[Cyrillic_i, Cyrillic_I]
};
key <AB06> {
[n, N],
[Cyrillic_te, Cyrillic_TE]
};
key <AB07> {
[m, M],
[Cyrillic_softsign, Cyrillic_SOFTSIGN]
};
key <AB08> {
[comma, less],
[Cyrillic_be, Cyrillic_BE],
[guillemotleft, doublelowquotemark]
};
key <AB09> {
[period, greater],
[Cyrillic_yu, Cyrillic_YU],
[guillemotright, rightdoublequotemark]
};
key <AB10> {
[slash, question],
[slash, question],
[ellipsis, question]
};
#############################
# the last keyboard row
key <SPCE> {
[space, space],
[space, space],
[nobreakspace, nobreakspace]
};
#############################
# arrows keys
key <LEFT> {
[Left],
[Left],
[0x1002190, 0x10021D0]
};
key <UP> {
[Up],
[Up],
[0x1002191, 0x10021D1]
};
key <RGHT> {
[Right],
[Right],
[0x1002192, 0x10021D2]
};
key <DOWN> {
[Down],
[Down],
[0x1002193, 0x10021D3]
};
// Switches:
// Alt+Space - permanent switch between en and ru
key <SPCE> {
type="PC_ALT_LEVEL2",
symbols[Group1]= [ space, ISO_Next_Group],
symbols[Group2]= [ space, ISO_Prev_Group]
};
// RAlt - temporary switch to 3rd group
key <RALT> {
[ISO_Last_Group_Lock, ISO_Last_Group_Lock],
[ISO_Group_Shift, ISO_Group_Shift]
};
};
xkb_geometry
{
include "pc(pc105)"
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment