niri: finally, real keyboards
This commit is contained in:
20
flake.nix
20
flake.nix
@@ -51,10 +51,20 @@
|
|||||||
inherit (inputs) wrappers;
|
inherit (inputs) wrappers;
|
||||||
pkgs = prev;
|
pkgs = prev;
|
||||||
};
|
};
|
||||||
niphas-niri = import packages/niri.nix {
|
|
||||||
|
niphas-niri-config-with =
|
||||||
|
overwriteSettings:
|
||||||
|
(import packages/niri.nix {
|
||||||
|
inherit (inputs) wrappers;
|
||||||
|
inherit overwriteSettings;
|
||||||
|
pkgs = final;
|
||||||
|
})."config.kdl".path;
|
||||||
|
|
||||||
|
niphas-niri =
|
||||||
|
(import packages/niri.nix {
|
||||||
inherit (inputs) wrappers;
|
inherit (inputs) wrappers;
|
||||||
pkgs = final;
|
pkgs = final;
|
||||||
};
|
}).wrapper;
|
||||||
niphas-kanshi = import packages/kanshi.nix {
|
niphas-kanshi = import packages/kanshi.nix {
|
||||||
inherit (inputs) wrappers;
|
inherit (inputs) wrappers;
|
||||||
pkgs = final;
|
pkgs = final;
|
||||||
@@ -95,6 +105,11 @@
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
vimv = prev.callPackage packages/vimv.nix { };
|
vimv = prev.callPackage packages/vimv.nix { };
|
||||||
|
|
||||||
|
keyboardScripts = prev.callPackage packages/keyboardScripts.nix {
|
||||||
|
pkgs = final;
|
||||||
|
inherit (final) lib;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = eachSupportedSystem (
|
packages = eachSupportedSystem (
|
||||||
@@ -120,6 +135,7 @@
|
|||||||
vimv
|
vimv
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
// pkgs.keyboardScripts
|
||||||
);
|
);
|
||||||
|
|
||||||
formatter = eachSupportedSystem (system: treefmtEval.${system}.config.build.wrapper);
|
formatter = eachSupportedSystem (system: treefmtEval.${system}.config.build.wrapper);
|
||||||
|
|||||||
38
packages/keyboardScripts.nix
Normal file
38
packages/keyboardScripts.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ 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
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
wrappers,
|
wrappers,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
overwriteSettings ? { },
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
lib = pkgs.lib;
|
lib = pkgs.lib;
|
||||||
@@ -10,10 +11,9 @@ let
|
|||||||
shadow-color = "#0007";
|
shadow-color = "#0007";
|
||||||
};
|
};
|
||||||
|
|
||||||
niri = wrappers.wrapperModules.niri.apply {
|
niriWrapper = wrappers.wrapperModules.niri.apply {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
settings = builtins.foldl' lib.recursiveUpdate { } ([
|
settings = lib.recursiveUpdate {
|
||||||
{
|
|
||||||
input = {
|
input = {
|
||||||
keyboard = {
|
keyboard = {
|
||||||
xkb.layout = "de";
|
xkb.layout = "de";
|
||||||
@@ -159,8 +159,7 @@ let
|
|||||||
"Mod+Shift+E".quit = null;
|
"Mod+Shift+E".quit = null;
|
||||||
"Ctrl+Alt+Delete".quit = null;
|
"Ctrl+Alt+Delete".quit = null;
|
||||||
};
|
};
|
||||||
}
|
} overwriteSettings;
|
||||||
]);
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
niri.wrapper
|
niriWrapper
|
||||||
|
|||||||
Reference in New Issue
Block a user