nixconf/modules/features/niri.nix
2026-03-26 22:55:57 -05:00

89 lines
2.8 KiB
Nix

{ self, inputs, ... }: {
flake.nixosModules.niri = { pkgs, lib, config, ... }: {
imports = [ self.nixosModules.cursors ];
options.niri-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "List of users to configure niri for";
};
config = {
programs.niri = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
};
# Enable cursors for niri users
cursor-users = lib.mkDefault config.niri-users;
};
};
perSystem = { pkgs, lib, self', ... }: {
packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
inherit pkgs;
settings = {
spawn-at-startup = [
(lib.getExe self'.packages.myNoctalia)
"steam"
];
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
input.keyboard = {
xkb.layout = "us";
};
layout = {
gaps = 10;
};
binds = {
"Mod+R".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
"Mod+Shift+W".spawn-sh = "librewolf";
"Mod+Return".spawn-sh = lib.getExe pkgs.kitty;
"Mod+Shift+C".close-window = null;
# workspace binds
"Mod+1".focus-workspace = "w0";
"Mod+2".focus-workspace = "w1";
"Mod+3".focus-workspace = "w2";
"Mod+4".focus-workspace = "w3";
"Mod+5".focus-workspace = "w4";
"Mod+6".focus-workspace = "w5";
"Mod+7".focus-workspace = "w6";
"Mod+8".focus-workspace = "w7";
"Mod+9".focus-workspace = "w8";
"Mod+0".focus-workspace = "w9";
"Mod+Shift+1".move-column-to-workspace = "w0";
"Mod+Shift+2".move-column-to-workspace = "w1";
"Mod+Shift+3".move-column-to-workspace = "w2";
"Mod+Shift+4".move-column-to-workspace = "w3";
"Mod+Shift+5".move-column-to-workspace = "w4";
"Mod+Shift+6".move-column-to-workspace = "w5";
"Mod+Shift+7".move-column-to-workspace = "w6";
"Mod+Shift+8".move-column-to-workspace = "w7";
"Mod+Shift+9".move-column-to-workspace = "w8";
"Mod+Shift+0".move-column-to-workspace = "w9";
# Navigation
"Mod+WheelScrollDown".focus-column-left = null;
"Mod+WheelScrollUp".focus-column-right = null;
"Mod+Ctrl+WheelScrollDown".focus-workspace-down = null;
"Mod+Ctrl+WheelScrollUp".focus-workspace-up = null;
};
workspaces = {
"w0" = {};
"w1" = {};
"w2" = {};
"w3" = {};
"w4" = {};
"w5" = {};
"w6" = {};
"w7" = {};
"w8" = {};
"w9" = {};
};
};
};
};
}