diff options
| Commit | 1583f2ba49ba26587b5e8044215d88614ff33e2a (patch) | |
|---|---|---|
| Author | 2023-12-24 22:15:12 +0200 | |
| Committer | 2023-12-24 22:15:12 +0200 | |
| Files | aec4133cec297912cab496a7f3767ed1a6f40330 | |
| nix-1583f2ba49ba26587b5e8044215d88614ff33e2a.tar nix-1583f2ba49ba26587b5e8044215d88614ff33e2a.tar.gz nix-1583f2ba49ba26587b5e8044215d88614ff33e2a.zip | ||
| Parent | 8131482edf1c835cec5a4be2f1f24e3ae75d7c9f (diff) | |
[packages] Added custom bulgarian keyboard layout
2 files changed, 104 insertions, 2 deletions
| -rw-r--r-- | packages/bg-custom | 97 | ||||
| -rw-r--r-- | packages/default.nix | 9 |
diff --git a/packages/bg-custom b/packages/bg-custom new file mode 100644 index 0000000..9138734 --- /dev/null +++ b/packages/bg-custom @@ -0,0 +1,97 @@ +////////////////////////////////////////////////////////////////////////// +// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg> +// +// This software may be used, modified, copied, distributed, and sold, +// both in source and binary form provided that the above copyright +// notice and these terms are retained. The name of the author may not +// be used to endorse or promote products derived from this software +// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT +// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT +// OF THE USE OF THIS SOFTWARE. +// +////////////////////////////////////////////////////////////////////////// + +// Version 1.1 // Fork by Kamen Mladenov <kamen@syndamia.com> + +// This is a non-standard variant of the traditional Bulgarian phonetic +// keyboard, which allows for usage of some English characters that aren't +// normally supported. + +// Original English characters are returned in the following places: +// - <Shift> + <Any Digit Key from 1 to 0> +// - <3rd level key> + <[> and <3rd level key> + <Shift> + <[> +// - <3rd level key> + <]> and <3rd level key> + <Shift> + <]> +// - <3rd level key> + <`> and <3rd level key> + <Shift> + <`> + +// Version History: +// [03.12.2022] 1.1 - Updated description and added Backtick and Tilda to +// third (and fourth) level layouts. +// [03.12.2022] 1.0 - Initial + +// Special thanks to Daniel Paul O'Donnell for his blog post: +// https://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11 + +////////////////////////////////////////////////////////////////////////// + +default partial alphanumeric_keys +xkb_symbols "phonetic-nonstandard" { + name[Group1]= "Bulgarian (traditional phonetic, nonstandard)"; + + key <TLDE> {[ Cyrillic_che, Cyrillic_CHE, grave, asciitilde ]}; + key <AE01> {[ 1, exclam ]}; + key <AE02> {[ 2, at ]}; + key <AE03> {[ 3, numbersign ]}; + key <AE04> {[ 4, dollar, EuroSign, EuroSign ]}; + key <AE05> {[ 5, percent ]}; + key <AE06> {[ 6, asciicircum ]}; + key <AE07> {[ 7, ampersand ]}; + key <AE08> {[ 8, asterisk ]}; + key <AE09> {[ 9, parenleft, bracketleft, U2329 ]}; + key <AE10> {[ 0, parenright, bracketright, U232A ]}; + key <AE11> {[ minus, underscore, U2011, U2011 ]}; + key <AE12> {[ equal, plus, emdash, dagger ]}; + + key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; + key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]}; + key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; + key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; + key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; + key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; + key <AD07> {[ Cyrillic_u, Cyrillic_U ]}; + key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; + key <AD09> {[ Cyrillic_o, Cyrillic_O ]}; + key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]}; + key <AD11> {[ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft ]}; + key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ]}; + + key <AC01> {[ Cyrillic_a, Cyrillic_A ]}; + key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; + key <AC03> {[ Cyrillic_de, Cyrillic_DE ]}; + key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]}; + key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]}; + key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]}; + key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; + key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]}; + key <AC09> {[ Cyrillic_el, Cyrillic_EL ]}; + key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]}; + key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]}; + key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]}; + + key <LSGT> {[ U045D, U040D ]}; + key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]}; + key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; + key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]}; + key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; + key <AB05> {[ Cyrillic_be, Cyrillic_BE ]}; + key <AB06> {[ Cyrillic_en, Cyrillic_EN ]}; + key <AB07> {[ Cyrillic_em, Cyrillic_EM ]}; + key <AB08> {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]}; + key <AB09> {[ period, leftdoublequotemark, guillemotright, guillemotright ]}; + key <AB10> {[ slash, question, U0300, U0301 ]}; + + key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; + + key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; +}; + diff --git a/packages/default.nix b/packages/default.nix index 1e9551d..7949cc4 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -255,9 +255,14 @@ services.xserver = { # xkbmap - layout = "us,bg"; # TODO us,bg-custom - xkbVariant = ",phonetic"; + layout = "us,bg-custom"; + xkbVariant = ",phonetic-nonstandard"; xkbOptions = "grp:alt_shift_toggle,lv3:switch,caps:escape"; + xkb.extraLayouts.bg-custom = { + description = "Non-standard variant of the traditional Bulgarian phonetic keyboard, which replaces some characters with their English counterparts"; + languages = [ "bg" ]; + symbolsFile = ./bg-custom; + }; # touchpad support libinput = { |
