Skip to content

Instantly share code, notes, and snippets.

@Blayung
Last active February 21, 2026 12:39
Show Gist options
  • Select an option

  • Save Blayung/a5e20a19b1cd20e47e6b76df4e000382 to your computer and use it in GitHub Desktop.

Select an option

Save Blayung/a5e20a19b1cd20e47e6b76df4e000382 to your computer and use it in GitHub Desktop.
My custom X11 keyboard layout with support for latin (polish, german, english) and cyrillic (russian, ukrainian, serbian, belarussian) writing, based on qwerty. To be put in /usr/share/xkeyboard-config-2/symbols
default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
name[1] = "Latin";
key <TLDE> { [ grave, asciitilde, doublelowquotemark, rightdoublequotemark ] };
key <AE01> { [ 1, exclam, notequal, exclamdown ] };
key <AE02> { [ 2, at, twosuperior, questiondown ] };
key <AE04> { [ 4, dollar, EuroSign, sterling ] };
key <AE05> { [ 5, percent, ellipsis, permille ] };
key <AE06> { [ 6, asciicircum, onehalf, logicaland ] };
key <AE07> { [ 7, ampersand, section, U2248 ] };
key <AE08> { [ 8, asterisk, U221A, threequarters ] };
key <AE09> { [ 9, parenleft, guillemotleft, plusminus ] };
key <AE10> { [ 0, parenright, guillemotright, degree ] };
key <AE11> { [ minus, underscore, endash, emdash ] };
key <AD01> { [ q, Q, Greek_pi, Greek_OMEGA ] };
key <AD03> { [ e, E, eogonek, Eogonek ] };
key <AD04> { [ r, R, copyright, registered ] };
key <AD05> { [ t, T, ssharp, trademark ] };
key <AD06> { [ y, Y, adiaeresis, Adiaeresis ] };
key <AD09> { [ o, O, oacute, Oacute ] };
key <AC01> { [ a, A, aogonek, Aogonek ] };
key <AC02> { [ s, S, sacute, Sacute ] };
key <AC05> { [ g, G, odiaeresis, Odiaeresis ] };
key <AC06> { [ h, H, udiaeresis, Udiaeresis ] };
key <AC07> { [ j, J, schwa, SCHWA ] };
key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB06> { [ n, N, nacute, Nacute ] };
key <AB07> { [ m, M, mu, infinity ] };
key <AB08> { [ comma, less, lessthanequal, multiply ] };
key <AB09> { [ period, greater, greaterthanequal, division ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
include "level3(ralt_switch)"
};
partial alphanumeric_keys
xkb_symbols "cyrillic" {
include "latin"
name[2] = "Cyrillic";
key <TLDE> { [ grave, asciitilde, guillemotleft, guillemotright ] };
key <AD01> { [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AD02> { [ Cyrillic_ve, Cyrillic_VE ] };
key <AD03> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
key <AD04> { [ Cyrillic_er, Cyrillic_ER, Ukrainian_ie, Ukrainian_IE ] };
key <AD05> { [ Cyrillic_te, Cyrillic_TE, Serbian_tshe, Serbian_TSHE ] };
key <AD06> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_yi, Ukrainian_YI ] };
key <AD07> { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
key <AD08> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
key <AD09> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
key <AC01> { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] };
key <AC02> { [ Cyrillic_es, Cyrillic_ES, U046B, U046A ] };
key <AC03> { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] };
key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
key <AC06> { [ Cyrillic_ha, Cyrillic_HA, U0467, U0466 ] };
key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] };
key <AC08> { [ Cyrillic_ka, Cyrillic_KA, Byelorussian_shortu, Byelorussian_SHORTU ] };
key <AC09> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] };
key <AB01> { [ Cyrillic_ze, Cyrillic_ZE, U046D, U046C ] };
key <AB02> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AB03> { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] };
key <AB04> { [ Cyrillic_zhe, Cyrillic_ZHE, Cyrillic_dzhe, Cyrillic_DZHE ] };
key <AB05> { [ Cyrillic_be, Cyrillic_BE, U0469, U0468 ] };
key <AB06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] };
key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
include "level3(ralt_switch)"
};
@Blayung
Copy link
Author

Blayung commented Feb 21, 2026

Phonetic cyrillic layout (the main feature):

latin_cyrillic_custom

Bottom right corner is with alt gr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment