{ config, pkgs, homeDirectory, ... }: { programs.niri = { package = pkgs.niri-unstable; settings = { prefer-no-csd = true; # environment = { # DISPLAY = ":0"; # }; outputs = { "BOE 0x095F Unknown" = { scale = 1.5; }; }; 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) # ":0" # ]; # } ]; 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; }; }; }; }