{ self, inputs, ... }: { flake.nixosModules.niri = { pkgs, lib, ... }: { environment.systemPackages = [ pkgs.wl-clipboard pkgs.clipman ]; programs.niri = { enable = true; package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri; }; }; flake.nixosModules.tuigreet = { pkgs, lib, ... }: { environment.systemPackages = with pkgs; [ tuigreet ]; services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri"; }; }; }; }; perSystem = { pkgs, lib, self', ... }: { packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap { inherit pkgs; settings = { spawn-at-startup = [ (lib.getExe self'.packages.myNoctalia) ]; prefer-no-csd = true; xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; input = { keyboard = { xkb.layout = "us,dk"; xkb.options = "caps:escape,grp:win_space_toggle"; repeat-rate = 25; repeat-delay = 300; }; }; extraConfig = '' gestures { hot-corners { off } } ''; window-rules = [ { matches = [ { is-focused = false; } ]; default-column-width = { proportion = 1.; }; opacity = 0.65; } { matches = [ { app-id = "firefox"; } { app-id = "discord"; } ]; default-column-width = { proportion = 1.; }; opacity = 1.; } { matches = [ { app-id = "Alacritty"; } ]; excludes = [ { is-focused = false; } ]; opacity = .90; } ]; screenshot-path = "~/Pictures/Screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png"; hotkey-overlay.skip-at-startup = true; layout = { gaps = 15; border.off = {}; focus-ring.off = {}; preset-column-widths = [ { proportion = 1.; } { proportion = 1. / 2.; } { proportion = 1. / 3.; } { proportion = 2. / 3.; } ]; default-column-width = { proportion = 1. / 2.; }; center-focused-column = "never"; #"on-overflow"; "always"; default-column-display = "normal"; #"tabbed"; }; binds = { "Mod+Return".spawn-sh = lib.getExe self'.packages.myAlacritty; "Mod+Shift+Slash".show-hotkey-overlay = {}; "Mod+Shift+C".close-window = {}; "Mod+Shift+Q".quit = {}; "Mod+O".toggle-overview = {}; "Mod+Left".focus-column-left = {}; "Mod+Down".focus-window-down = {}; "Mod+Up".focus-window-up = {}; "Mod+Right".focus-column-right = {}; "Mod+Ctrl+Left".move-column-left = {}; "Mod+Ctrl+Down".move-window-down = {}; "Mod+Ctrl+Up".move-window-up = {}; "Mod+Ctrl+Right".move-column-right = {}; "Mod+H".focus-column-left = {}; "Mod+J".focus-window-down = {}; "Mod+K".focus-window-up = {}; "Mod+L".focus-column-right = {}; "Mod+Ctrl+H".move-column-left = {}; "Mod+Ctrl+J".move-window-down = {}; "Mod+Ctrl+K".move-window-up = {}; "Mod+Ctrl+L".move-column-right = {}; "Mod+Ctrl+Shift+j".move-workspace-down = {}; "Mod+Ctrl+Shift+k".move-workspace-up = {}; "Mod+U".focus-workspace-down = {}; "Mod+I".focus-workspace-up = {}; "Mod+Ctrl+U".move-column-to-workspace-down = {}; "Mod+Ctrl+I".move-column-to-workspace-up = {}; "Mod+R".switch-preset-column-width = {}; "Mod+1".focus-workspace = 1; "Mod+2".focus-workspace = 2; "Mod+3".focus-workspace = 3; "Mod+4".focus-workspace = 4; "Mod+5".focus-workspace = 5; "Mod+6".focus-workspace = 6; "Mod+7".focus-workspace = 7; "Mod+8".focus-workspace = 8; "Mod+9".focus-workspace = 9; "Mod+Ctrl+1".move-column-to-workspace = 1; "Mod+Ctrl+2".move-column-to-workspace = 2; "Mod+Ctrl+3".move-column-to-workspace = 3; "Mod+Ctrl+4".move-column-to-workspace = 4; "Mod+Ctrl+5".move-column-to-workspace = 5; "Mod+Ctrl+6".move-column-to-workspace = 6; "Mod+Ctrl+7".move-column-to-workspace = 7; "Mod+Ctrl+8".move-column-to-workspace = 8; "Mod+Ctrl+9".move-column-to-workspace = 9; "XF86AudioRaiseVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume increase"; "XF86AudioLowerVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume decrease"; "XF86AudioMute".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume muteOutput"; "XF86MonBrightnessUp".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness increase"; "XF86MonBrightnessDown".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness decrease"; "XF86AudioPrev".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media previous"; "XF86AudioPlay".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media playPause"; "XF86AudioNext".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media next"; "XF86AudioMedia".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call systemMonitor toggle"; "Mod+Comma".consume-window-into-column = {}; "Mod+Period".expel-window-from-column = {}; "Mod+BracketLeft".consume-or-expel-window-left = {}; "Mod+BracketRight".consume-or-expel-window-right = {}; "Mod+F".maximize-column = {}; "Mod+Shift+F".fullscreen-window = {}; "Mod+W".toggle-column-tabbed-display = {}; "Mod+V".toggle-window-floating = {}; "Mod+Shift+V".switch-focus-between-floating-and-tiling = {}; "Print".screenshot = {}; "Mod+Print".screenshot-window = {}; "Mod+Shift+Print".screenshot-screen = {}; "Mod+Shift+L".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu lockAndSuspend"; "Mod+Shift+E".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher emoji"; "Mod+Shift+Escape".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu toggle"; "Mod+P".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle"; "Mod+Y".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher clipboard"; }; }; }; }; }