2026-07-06 20:25:03 +02:00

74 lines
2.2 KiB
Nix

{ 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;
};
};
};
}