39 lines
870 B
Nix
39 lines
870 B
Nix
|
|
{ pkgs, lib }:
|
||
|
|
let
|
||
|
|
keyboards = {
|
||
|
|
german = {
|
||
|
|
code = "de";
|
||
|
|
variant = "T3";
|
||
|
|
};
|
||
|
|
russian = {
|
||
|
|
code = "ru";
|
||
|
|
variant = "phonetic_winkeys";
|
||
|
|
};
|
||
|
|
greek = {
|
||
|
|
code = "gr";
|
||
|
|
variant = "polytonic";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
keyboardScripts = lib.mapAttrs' (
|
||
|
|
name: keyboard:
|
||
|
|
lib.nameValuePair "kb-${name}" (
|
||
|
|
pkgs.writers.writeDashBin "kb-${name}" ''
|
||
|
|
exec ${lib.getExe pkgs.niphas-niri} msg action load-config-file --path ${
|
||
|
|
pkgs.niphas-niri-config-with {
|
||
|
|
input = {
|
||
|
|
keyboard = {
|
||
|
|
xkb.layout = "de,${keyboard.code}";
|
||
|
|
xkb.variant = "T3,${keyboard.variant}";
|
||
|
|
xkb.options = "compose:caps,grp:ctrls_toggle";
|
||
|
|
numlock = null;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|
||
|
|
''
|
||
|
|
)
|
||
|
|
) keyboards;
|
||
|
|
in
|
||
|
|
keyboardScripts
|