{ self, inputs, ... }: { flake.nixosModules.niri = { pkgs, lib, ... }: { programs.niri = { enable = true; package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri; }; environment = { systemPackages = with pkgs; [ wofi firefox ]; }; }; perSystem = { pkgs, lib, ...}: { packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap { inherit pkgs; settings = { input.keyboard = { xkb.layout = "fr"; }; layout = { gaps = 5; }; binds = { "Mod+Return".spawn-sh = lib.getExe pkgs.kitty; "Mod+Space".spawn = [ "wofi" "--show" "drun"]; "Mod+Shift+R".spawn = [ "zen" ]; # Default binds # Window managment "Mod+Shift+F".fullscreen-window = {}; # Media managment "XF86AudioPlay".spawn-sh = "playerctl play-pause"; "XF86AudioPause".spawn-sh = "playerctl play-pause"; "XF86AudioStop".spawn-sh = "playerctl stop"; "XF86AudioPrev".spawn-sh = "playerctl previous"; "XF86AudioNext".spawn-sh = "playerctl next"; # Audio managment "XF86AudioRaiseVolume".spawn-sh = "wpctl set-volume -l 1.4 @DEFAULT_SINK@ 5%+"; "XF86AudioLowerVolume".spawn-sh = "wpctl set-volume -l 1.4 @DEFAULT_SINK@ 5%-"; "XF86AudioMute".spawn-sh = "wpctl set-mute @DEFAULT_SINK@ toggle"; # Misc "Mod+Shift+L".show-hotkey-overlay = {}; "Mod+Q".close-window = {}; "Mod+O".toggle-overview = {}; # Window management # It uses the arrow keys to navigate "Mod+Left".focus-column-left = {}; "Mod+Down".focus-window-down = {}; "Mod+Up".focus-window-up = {}; "Mod+Right".focus-column-right = {}; # Uses the arrow key with a modifier to move windows "Mod+Ctrl+Left".move-column-left = {}; "Mod+Ctrl+Down".move-window-down-or-to-workspace-down = {}; "Mod+Ctlr+Up".move-window-up-or-to-workspace-up = {}; "Mod+Ctrl+Right".move-column-right = {}; }; xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; }; }; }; }