mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
feat(keyboard): add modes for languages
This commit is contained in:
@@ -4,13 +4,20 @@
|
|||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
commaSep = builtins.concatStringsSep ",";
|
commaSep = builtins.concatStringsSep ",";
|
||||||
|
languages = {
|
||||||
|
de = "T3";
|
||||||
|
gr = "polytonic";
|
||||||
|
ru = "phonetic";
|
||||||
|
ara = "buckwalter";
|
||||||
|
};
|
||||||
|
defaultLanguage = "de";
|
||||||
in {
|
in {
|
||||||
# man 7 xkeyboard-config
|
# man 7 xkeyboard-config
|
||||||
services.xserver = {
|
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
|
# T3: https://upload.wikimedia.org/wikipedia/commons/a/a9/German-Keyboard-Layout-T3-Version1-large.png
|
||||||
# buckwalter: http://www.qamus.org/transliteration.htm
|
# buckwalter: http://www.qamus.org/transliteration.htm
|
||||||
xkbVariant = commaSep ["T3" "polytonic" "phonetic" "buckwalter"];
|
xkbVariant = commaSep (builtins.attrValues languages);
|
||||||
xkbOptions =
|
xkbOptions =
|
||||||
commaSep ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"];
|
commaSep ["compose:caps" "terminate:ctrl_alt_bksp" "grp:ctrls_toggle"];
|
||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
@@ -18,6 +25,14 @@ in {
|
|||||||
|
|
||||||
console.keyMap = "de";
|
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
|
# improve held key rate
|
||||||
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
|
services.xserver.displayManager.sessionCommands = "${pkgs.xorg.xset}/bin/xset r rate 300 50";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user