Files
nixos-dotfiles/modules/desktop/wm/niri/config.nix
T

76 lines
1.7 KiB
Nix

{
config,
lib,
pkgs,
assets,
impure,
...
}:
let
niriCfg = config.my.hm.wayland.windowManager.niri;
in
{
config = lib.mkIf config.my.desktop.wm.niri.enable {
my.hm = {
xdg.configFile."niri".source = impure.mkImpureLink ./config;
xdg.configFile."niri-generated.kdl".text = niriCfg.finalConfig;
wayland.windowManager.niri.settings = {
environment.NIXOS_OZONE_WL = "1";
spawn-at-startup = lib.mkBefore [
(
[
"dbus-update-activation-environment"
"--systemd"
]
++ (builtins.attrNames niriCfg.settings.environment)
)
[
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
(toString assets.wallpaper)
]
[
"wl-paste"
"--type"
"text"
"--watch"
"cliphist"
"store"
]
[
"wl-paste"
"--type"
"image"
"--watch"
"cliphist"
"store"
]
[ "noctalia-shell" ]
];
binds = lib.mkMerge [
{
"Mod+G".spawn = [ config.my.desktop.browser.default.command ];
}
(builtins.listToAttrs (
map (n: {
name = "Mod+${toString n}";
value.focus-workspace = n;
}) (lib.range 0 9)
))
(builtins.listToAttrs (
map (n: {
name = "Mod+Shift+${toString n}";
value.move-column-to-workspace = n;
}) (lib.range 0 9)
))
];
};
};
};
}