From 8c8eceb01a7efad67242ea81f62a4ae42bd2764a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sun, 8 May 2022 22:01:27 +0200 Subject: [PATCH] feat(keyboard): add modes for languages --- configs/keyboard.nix | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/configs/keyboard.nix b/configs/keyboard.nix index a3be404..28f7491 100644 --- a/configs/keyboard.nix +++ b/configs/keyboard.nix @@ -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";