Skip to content

Instantly share code, notes, and snippets.

@Blayung
Last active February 11, 2026 21:28
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 11, 2026

Cyrillic layout: (bottom right corner is with right alt)

latin_cyrillic_custom

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