diff --git a/etcnixos/common.nix b/etcnixos/common.nix index 4509cf9..0f45292 100644 --- a/etcnixos/common.nix +++ b/etcnixos/common.nix @@ -181,6 +181,11 @@ enableSSHSupport = false; }; + programs.steam = { + enable = true; + localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers + }; + #System packages environment.systemPackages = with pkgs; [ mullvad-vpn diff --git a/etcnixos/system-nixos.nix b/etcnixos/system-nixos.nix index 073c7e5..021fc6c 100644 --- a/etcnixos/system-nixos.nix +++ b/etcnixos/system-nixos.nix @@ -107,10 +107,7 @@ }; programs.steam = { - enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - # dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers }; # services.ollama = { diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 9131cd7..fab84f3 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -205,11 +205,11 @@ ] }, "locked": { - "lastModified": 1729184663, - "narHash": "sha256-uNyi5vQrzaLkt4jj6ZEOs4+4UqOAwP6jFG2s7LIDwIk=", + "lastModified": 1729218602, + "narHash": "sha256-KDmYxpkFWa0Go0WnOpkgQOypVaQxbwgpEutET5ey1VQ=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "16fb78d443c1970dda9a0bbb93070c9d8598a925", + "rev": "9051466c82b9b3a6ba9e06be99621ad25423ec94", "type": "github" }, "original": { diff --git a/home-manager/flake.nix b/home-manager/flake.nix index c2d79a2..45a8079 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -73,6 +73,7 @@ optimizeWithFlags ; }; + modules = [ ./system-${hostname}.nix niri.homeModules.config @@ -83,6 +84,7 @@ { nixpkgs.overlays = [ rust-overlay.overlays.default + inputs.niri.overlays.niri ]; # home-manager stuff diff --git a/home-manager/progs/niri.nix b/home-manager/progs/niri.nix index 2acc71a..ddb77c5 100644 --- a/home-manager/progs/niri.nix +++ b/home-manager/progs/niri.nix @@ -2,166 +2,174 @@ config, pkgs, homeDirectory, + ... }: { - prefer-no-csd = true; + programs.niri = { + package = pkgs.niri-unstable; + settings = { + prefer-no-csd = true; - spawn-at-startup = [ - # waybar - { command = [ "${pkgs.waybar}/bin/waybar" ]; } + 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" + # 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" ]; } ]; - } - ]; - 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; + 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; }; - } - { 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; + }; }; } diff --git a/home-manager/system-mreow.nix b/home-manager/system-mreow.nix index 08c9efa..18be137 100644 --- a/home-manager/system-mreow.nix +++ b/home-manager/system-mreow.nix @@ -6,7 +6,10 @@ ... }: { - imports = [ ./gui.nix ]; + imports = [ + ./gui.nix + ./progs/niri.nix + ]; home.packages = with pkgs; [ wdisplays @@ -16,7 +19,7 @@ # manage bluetooth devices blueman - niri + xwayland-satellite-unstable ]; # bluetooth manager @@ -28,11 +31,6 @@ package = pkgs.dunst; }; - # window manager - programs.niri = { - settings = import ./progs/niri.nix { inherit config pkgs homeDirectory; }; - }; - programs.swaylock = { enable = true; settings = import ./progs/swaylock.nix;