185 lines
5.6 KiB
Nix
185 lines
5.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
homeDirectory,
|
|
...
|
|
}:
|
|
{
|
|
programs.niri = {
|
|
package = pkgs.niri-unstable;
|
|
settings = {
|
|
prefer-no-csd = true;
|
|
|
|
environment = {
|
|
DISPLAY = ":0";
|
|
};
|
|
|
|
spawn-at-startup = [
|
|
# waybar
|
|
{ command = [ "${pkgs.waybar}/bin/waybar" ]; }
|
|
|
|
# swaybg works on more than just sway (sets a wallpaper)
|
|
{
|
|
command = [
|
|
"${pkgs.swaybg}/bin/swaybg"
|
|
"-m"
|
|
"center"
|
|
"-i"
|
|
"${homeDirectory}/.wallpaper.png"
|
|
];
|
|
}
|
|
|
|
{
|
|
command = [
|
|
"${pkgs.xwayland-satellite-unstable}/bin/xwayland-satellite"
|
|
(builtins.toString config.programs.niri.settings.environment.DISPLAY)
|
|
];
|
|
}
|
|
];
|
|
|
|
window-rules = [
|
|
{ draw-border-with-background = false; }
|
|
{
|
|
geometry-corner-radius = {
|
|
top-left = 10.0;
|
|
top-right = 10.0;
|
|
bottom-right = 10.0;
|
|
bottom-left = 10.0;
|
|
};
|
|
}
|
|
{ clip-to-geometry = true; }
|
|
];
|
|
|
|
binds = with config.lib.niri.actions; {
|
|
# application launcher
|
|
"Mod+Space".action = spawn [
|
|
"${pkgs.rofi-wayland}/bin/rofi"
|
|
"-show"
|
|
"combi"
|
|
];
|
|
|
|
# open a terminal
|
|
"Mod+T".action = spawn "${pkgs.alacritty}/bin/alacritty";
|
|
|
|
# lock the screen
|
|
"Mod+X".action = spawn "${pkgs.swaylock}/bin/swaylock";
|
|
|
|
# screenshotting
|
|
"Print".action = screenshot;
|
|
"Ctrl+Print".action = screenshot-screen;
|
|
"Alt+Print".action = screenshot-window;
|
|
|
|
# Volume control
|
|
"XF86AudioRaiseVolume".action = spawn [
|
|
"${pkgs.avizo}/bin/volumectl"
|
|
"-u"
|
|
"up"
|
|
];
|
|
"XF86AudioLowerVolume".action = spawn [
|
|
"${pkgs.avizo}/bin/volumectl"
|
|
"-u"
|
|
"down"
|
|
];
|
|
"XF86AudioMute".action = spawn [
|
|
"${pkgs.avizo}/bin/volumectl"
|
|
"toggle-mute"
|
|
];
|
|
"XF86AudioMicMute".action = spawn [
|
|
"${pkgs.avizo}/bin/volumectl"
|
|
"-m"
|
|
"toggle-mute"
|
|
];
|
|
|
|
#Display Brightness control
|
|
"XF86MonBrightnessUp".action = spawn [
|
|
"${pkgs.avizo}/bin/lightctl"
|
|
"up"
|
|
];
|
|
"XF86MonBrightnessDown".action = spawn [
|
|
"${pkgs.avizo}/bin/lightctl"
|
|
"down"
|
|
];
|
|
|
|
# Force close a window
|
|
"Mod+Q".action = close-window;
|
|
|
|
"Mod+Shift+Q".action = quit;
|
|
|
|
# bindings for like window management ig
|
|
|
|
"Mod+Left".action = focus-column-left;
|
|
"Mod+Down".action = focus-window-down;
|
|
"Mod+Up".action = focus-window-up;
|
|
"Mod+Right".action = focus-column-right;
|
|
|
|
"Mod+H".action = focus-column-left;
|
|
"Mod+J".action = focus-window-down;
|
|
"Mod+K".action = focus-window-up;
|
|
"Mod+L".action = focus-column-right;
|
|
|
|
"Mod+Ctrl+Left".action = move-column-left;
|
|
"Mod+Ctrl+Down".action = move-window-down;
|
|
"Mod+Ctrl+Up".action = move-window-up;
|
|
"Mod+Ctrl+Right".action = move-column-right;
|
|
|
|
"Mod+Ctrl+H".action = move-column-left;
|
|
"Mod+Ctrl+J".action = move-window-down;
|
|
"Mod+Ctrl+K".action = move-window-up;
|
|
"Mod+Ctrl+L".action = move-column-right;
|
|
|
|
#fine adjustments to height and width of window
|
|
"Mod+Minus".action = set-column-width "-10%";
|
|
"Mod+Equal".action = set-column-width "+10%";
|
|
"Mod+Shift+Minus".action = set-window-height "-10%";
|
|
"Mod+Shift+Equal".action = set-window-height "+10%";
|
|
|
|
"Mod+Home".action = focus-column-first;
|
|
"Mod+End".action = focus-column-last;
|
|
"Mod+Ctrl+Home".action = move-column-to-first;
|
|
"Mod+Ctrl+End".action = move-column-to-last;
|
|
|
|
"Mod+Shift+Left".action = focus-monitor-left;
|
|
"Mod+Shift+Down".action = focus-monitor-down;
|
|
"Mod+Shift+Up".action = focus-monitor-up;
|
|
"Mod+Shift+Right".action = focus-monitor-right;
|
|
|
|
"Mod+Shift+H".action = focus-monitor-left;
|
|
"Mod+Shift+J".action = focus-monitor-down;
|
|
"Mod+Shift+K".action = focus-monitor-up;
|
|
"Mod+Shift+L".action = focus-monitor-right;
|
|
|
|
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
|
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
|
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
|
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
|
|
|
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
|
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
|
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
|
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
|
|
|
"Mod+Page_Down".action = focus-workspace-down;
|
|
"Mod+Page_Up".action = focus-workspace-up;
|
|
"Mod+U".action = focus-workspace-down;
|
|
"Mod+I".action = focus-workspace-up;
|
|
|
|
#move a window up and down workspaces
|
|
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
|
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
|
|
|
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
|
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
|
|
|
#does little squeeze thing into the left or right position with another window
|
|
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
|
"Mod+BracketRight".action = consume-or-expel-window-right;
|
|
|
|
"Mod+R".action = switch-preset-column-width;
|
|
"Mod+F".action = maximize-column;
|
|
"Mod+Shift+F".action = fullscreen-window;
|
|
"Mod+C".action = center-column;
|
|
};
|
|
};
|
|
};
|
|
}
|