1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

feat(keyboard): add modes for languages

This commit is contained in:
2022-05-08 22:01:27 +02:00
parent 9601fb9456
commit 8c8eceb01a

View File

@@ -4,13 +4,20 @@
...
}: let
commaSep = builtins.concatStringsSep ",";
languages = {
de = "T3";
gr = "polytonic";
ru = "phonetic";
ara = "buckwalter";
};
defaultLanguage = "de";
in {
# man 7 xkeyboard-config
services.xserver = {
layout = commaSep ["de" "gr" "ru" "ara"];
layout = commaSep (builtins.attrNames languages);
# T3: https://upload.wikimedia.org/wikipedia/commons/a/a9/German-Keyboard-Layout-T3-Version1-large.png
# buckwalter: http://www.qamus.org/transliteration.htm
xkbVariant = commaSep ["T3" "polytonic" "phonetic" "buckwalter"];
xkbVariant = commaSep (builtins.attrValues languages);
xkbOptions =
commaSep ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"];
libinput.enable = true;
@@ -18,6 +25,14 @@ in {
console.keyMap = "de";
environment.systemPackages =
lib.mapAttrsToList
(language: variant:
pkgs.writers.writeDashBin "kb-${language}" ''
${pkgs.xlibs.setxkbmap}/bin/setxkbmap ${defaultLanguage},${language} ${languages.${defaultLanguage}},${variant}
'')
languages;
# improve held key rate
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";