98 lines
3.2 KiB
Nix
98 lines
3.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 = {
|
|
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
|
|
input = {
|
|
keyboard = {
|
|
xkb.layout = "fr";
|
|
numlock = {};
|
|
};
|
|
touchpad = {
|
|
tap = {};
|
|
natural-scroll = {};
|
|
};
|
|
};
|
|
|
|
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
|
|
# Fullscreen managment
|
|
"Mod+F".maximize-column = {};
|
|
"Mod+Shift+F".fullscreen-window = {};
|
|
"Mod+Ctrl+F".maximize-window-to-edges = {}; # Same effect as double clicking the titlebar
|
|
# Floating
|
|
"Mod+V".toggle-window-floating = {};
|
|
"Mod+Shift+V".switch-focus-between-floating-and-tiling = {};
|
|
|
|
# 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-or-workspace-down = {};
|
|
"Mod+Up".focus-window-or-workspace-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+Ctrl+Up".move-window-up-or-to-workspace-up = {};
|
|
"Mod+Ctrl+Right".move-column-right = {};
|
|
# Uses the <home/end> keys to focus extremumns
|
|
"Mod+Home".focus-column-first = {};
|
|
"Mod+End".focus-column-last = {};
|
|
"Mod+Ctrl+Home".move-column-to-first = {};
|
|
"Mod+Ctrl+End".move-column-to-last = {};
|
|
|
|
# Sceenshots
|
|
"Mod+Print".screenshot = {};
|
|
"Mod+Ctrl+Print".screenshot-screen = {};
|
|
"Mod+Alt+Print".screenshot-window = {};
|
|
|
|
# Monitor power
|
|
"Mod+Shift+P".power-off-monitors = {};
|
|
};
|
|
|
|
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
|
|
};
|
|
};
|
|
};
|
|
}
|