diff options
| author | adikro <adikro@disroot.org> | 2025-11-18 21:00:16 +0100 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2025-11-18 21:00:16 +0100 |
| commit | 8498fab8785d08402e2330dfb6f45f1121cd1b2b (patch) | |
| tree | 12798dedc5ff18ecc8d39d714881e351581cee0e | |
| parent | f685be6aea021196ee40d909aab0ab6241eef397 (diff) | |
configured a bunch of niri features
| -rw-r--r-- | flake.lock | 217 | ||||
| -rw-r--r-- | flake.nix | 14 | ||||
| -rw-r--r-- | home/wayland/niri/binds.nix | 66 | ||||
| -rw-r--r-- | home/wayland/niri/niri.nix | 30 | ||||
| -rw-r--r-- | home/wayland/noctalia.nix | 6 | ||||
| -rw-r--r-- | hosts/desktop/configuration.nix | 6 | ||||
| -rw-r--r-- | modules/niri.nix | 6 |
7 files changed, 274 insertions, 71 deletions
@@ -85,11 +85,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1763246168, - "narHash": "sha256-gUDJZGSOg5syHtQvLImOKL6Eaw4e1ybz4o5pid66kQg=", + "lastModified": 1763413916, + "narHash": "sha256-KOr7YS7n+j9knjA03DUDtk6pRsx0LlFUYGBXjT6Kj3w=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "6476fbdd52621b4a532309d982d468dc08204151", + "rev": "7cdf1116617e30f1e30163c7337907f65bb5309d", "type": "github" }, "original": { @@ -359,11 +359,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1763395181, - "narHash": "sha256-CDFJgg8x5mfOFIE7IdzVcEjGkOSmceLH/iyzVTJbHvg=", + "lastModified": 1763430944, + "narHash": "sha256-tL2I302ZrTeo13D99vg4v/VajVCSHdOx5RncpMcjqa0=", "owner": "helix-editor", "repo": "helix", - "rev": "80530d8642414d562b78efbb4229dc9c5f458718", + "rev": "68c7e8757f0183adeb01ba1fbbabd1cee2885b70", "type": "github" }, "original": { @@ -400,11 +400,11 @@ ] }, "locked": { - "lastModified": 1763389499, - "narHash": "sha256-GuG3PW8U41f8XqROreZQaUvrcjQt+Gh92g16X7zBUck=", + "lastModified": 1763416652, + "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", "owner": "nix-community", "repo": "home-manager", - "rev": "7538d965352d3bfd4c380f5b3aa618bc839a84b4", + "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", "type": "github" }, "original": { @@ -489,11 +489,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1763386497, - "narHash": "sha256-0Cb99eDgyrny8Szmb5+e7OTJxlacM8YiPyCSGpDU+D4=", + "lastModified": 1763427561, + "narHash": "sha256-jARAMSNHOZ5RNYlBZ2wlE2pdujedylA5QDBuaQs3Vrk=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "ad52ba9c1393de717f6b86b9e94c21be9e96e320", + "rev": "edc311544a54a06ce4acb759b4d9a30853695452", "type": "github" }, "original": { @@ -754,6 +754,22 @@ "type": "github" } }, + "libnbtplusplus": { + "flake": false, + "locked": { + "lastModified": 1744811532, + "narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=", + "owner": "PrismLauncher", + "repo": "libnbtplusplus", + "rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78", + "type": "github" + }, + "original": { + "owner": "PrismLauncher", + "repo": "libnbtplusplus", + "type": "github" + } + }, "mnw": { "locked": { "lastModified": 1758834834, @@ -778,11 +794,11 @@ ] }, "locked": { - "lastModified": 1763337828, - "narHash": "sha256-gBf/sNC/u0EztJybm7yP0OfbEKyN3WVi7J7FLbpswX0=", + "lastModified": 1763424377, + "narHash": "sha256-le7Pl92+UgbftZNQH8+nJnERVGTrfKMuQgaJIc4VsB0=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "227971b938a6d83e3b839e5f11991511374020b7", + "rev": "f15729dbae4e51ffa77b62abdd59d555d73b6cfb", "type": "github" }, "original": { @@ -794,11 +810,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1763328107, - "narHash": "sha256-N+Al++BfSq1/JZE3LY1DrefnO+kXm3y1OcqOnKrBGJQ=", + "lastModified": 1763404442, + "narHash": "sha256-2mWXjP4vKxUsfF/UNkfO587fbl7iyXv/ARf6fFv6Gik=", "owner": "neovim", "repo": "neovim", - "rev": "f0294418d65d005d885eabf80eecc7255358b95e", + "rev": "c4ac36bfd9bc9826dde01839d10d0e65a7b3c9e2", "type": "github" }, "original": { @@ -809,17 +825,54 @@ }, "niri": { "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay_4" + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1763466067, + "narHash": "sha256-CHSLUCiWEqUBAmxdXcF16I/G6p59cmsWKFtZDMF4ZSA=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "2d53d3d9375be3c335bf3c5bc4daa792b3149c42", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, "locked": { - "lastModified": 1763370666, - "narHash": "sha256-Y4IYBfaTxffpm6UIbhY1Xfpij+aVh/C+tF9Tdg6nYig=", + "lastModified": 1763461110, + "narHash": "sha256-xbBcNC9+bINP7Do5tgY6AtyEfhuM67nMVQtNzdf9wfw=", "owner": "YaLTeR", "repo": "niri", - "rev": "7f19d268b3563e3683eaca02d9665fed66ce862e", + "rev": "c256842761b8b7eba7c8663cd1b02fcf3ab75ea0", "type": "github" }, "original": { @@ -875,11 +928,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1762977756, - "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", + "lastModified": 1763283776, + "narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", + "rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a", "type": "github" }, "original": { @@ -906,11 +959,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1763049705, - "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=", + "lastModified": 1763334038, + "narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1763334038, + "narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c", + "rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c", "type": "github" }, "original": { @@ -975,7 +1044,7 @@ "type": "github" } }, - "noctalia-shell": { + "noctalia": { "inputs": { "nixpkgs": [ "nixpkgs" @@ -984,11 +1053,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1763393245, - "narHash": "sha256-r3+s1Ii/PO6qkOdZHEFx4i+/namCMnFCskBPAiS8eGs=", + "lastModified": 1763474971, + "narHash": "sha256-PNALwuxJfeKjxxHLxinifeIq9gpZqjC226FjoVKNNTU=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "595ad0bb20045393991c75e85f682ab6ea3dc40d", + "rev": "6b6517cac31c266ae0fafd7fefddaeb0e9baaf95", "type": "github" }, "original": { @@ -1067,10 +1136,31 @@ "type": "github" } }, + "prismlauncher": { + "inputs": { + "libnbtplusplus": "libnbtplusplus", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763413855, + "narHash": "sha256-2nQUqyTLvFxQ7zClFblWtB2aqPwHAuVZAnZ4AgXtkXo=", + "owner": "PrismLauncher", + "repo": "PrismLauncher", + "rev": "4c437a839cb66e59a6dc63d759bd412e6d9e31e3", + "type": "github" + }, + "original": { + "owner": "PrismLauncher", + "repo": "PrismLauncher", + "type": "github" + } + }, "quickshell": { "inputs": { "nixpkgs": [ - "noctalia-shell", + "noctalia", "nixpkgs" ] }, @@ -1102,10 +1192,11 @@ "niri": "niri", "nixcord": "nixcord", "nixpkgs": "nixpkgs_2", - "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs-stable": "nixpkgs-stable_2", "nixvim": "nixvim", - "noctalia-shell": "noctalia-shell", + "noctalia": "noctalia", "nvf": "nvf", + "prismlauncher": "prismlauncher", "satty": "satty", "spicetify-nix": "spicetify-nix", "waybar": "waybar" @@ -1176,27 +1267,6 @@ }, "rust-overlay_4": { "inputs": { - "nixpkgs": [ - "niri", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1757989933, - "narHash": "sha256-9cpKYWWPCFhgwQTww8S94rTXgg8Q8ydFv9fXM6I8xQM=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "8249aa3442fb9b45e615a35f39eca2fe5510d7c3", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_5": { - "inputs": { "nixpkgs": "nixpkgs_3" }, "locked": { @@ -1218,7 +1288,7 @@ "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay_5" + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1763185597, @@ -1421,6 +1491,39 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1762747449, + "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "6338574bc5c036487486acde264f38f39ea15fad", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", @@ -25,11 +25,11 @@ }; niri = { - url = "github:YaLTeR/niri"; + url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; - noctalia-shell = { + noctalia = { url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -84,16 +84,14 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + prismlauncher = { + url = "github:PrismLauncher/PrismLauncher"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs @{ nixpkgs, - # hyprland, - # niri, - # nixvim, - # neovim-nightly-overlay, - # spicetify-nix, - # nixcord, ... }: let mkHost = { hostname, path }: diff --git a/home/wayland/niri/binds.nix b/home/wayland/niri/binds.nix new file mode 100644 index 0000000..1e3e281 --- /dev/null +++ b/home/wayland/niri/binds.nix @@ -0,0 +1,66 @@ +{ config, pkgs, ... }: +{ + programs.niri.settings.binds = with config.lib.niri.actions; + let + set-volume = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@"; + playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; + in + { + "Mod+Slash".action = show-hotkey-overlay; + XF86AudioRaiseVolume.action = set-volume "2%+"; + XF86AudioLowerVolume.action = set-volume "2%-"; + XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; + XF86AudioMicMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; + XF86AudioPlay.action = playerctl "play-pause"; + XF86AudioStop.action = playerctl "pause"; + XF86AudioPrev.action = playerctl "previous"; + XF86AudioNext.action = playerctl "next"; + "Mod+Minus".action = set-column-width "-10%"; + "Mod+Equal".action = set-column-width "+10%"; + + # // Finer height adjustments when in column with other windows. + "Mod+Shift+Minus".action = set-window-height "-10%"; + "Mod+Shift+Equal".action = set-window-height "+10%"; + # "Mod+Shift+V".action = switch-focus-between-floating-and-tiling; + "Mod+Shift+P".action = power-off-monitors; + + # --- System / General --- + "Mod+Return".action = spawn "foot"; + "Mod+D".action = spawn "fuzzel"; + + # The 'quit' action without arguments performs the action with confirmation. + "Mod+Shift+E".action = quit; + + # --- Window Navigation (Focus) --- + "Mod+H".action = focus-column-left; + "Mod+L".action = focus-column-right; + "Mod+J".action = focus-window-down; + "Mod+K".action = focus-window-up; + + # --- Window Management (Move) --- + "Mod+Shift+H".action = move-column-left; + "Mod+Shift+L".action = move-column-right; + "Mod+Shift+J".action = move-window-down; + "Mod+Shift+K".action = move-window-up; + + # --- Window State --- + "Mod+Shift+Q".action = close-window; + "Mod+F".action = maximize-column; + # "Mod+V".action = toggle-window-floating; # Renamed from toggle-floating to match docs}; + + "Mod+1".action = focus-workspace 1; + "Mod+2".action = focus-workspace 2; + "Mod+3".action = focus-workspace 3; + "Mod+4".action = focus-workspace 4; + "Mod+5".action = focus-workspace 5; + "Mod+6".action = focus-workspace 6; + + # The wonky format used here is to work-around https://github.com/sodiboo/niri-flake/issues/944 + "Mod+Ctrl+1".action.move-column-to-workspace = [ 1 ]; + "Mod+Ctrl+2".action.move-column-to-workspace = [ 2 ]; + "Mod+Ctrl+3".action.move-column-to-workspace = [ 3 ]; + "Mod+Ctrl+4".action.move-column-to-workspace = [ 4 ]; + "Mod+Ctrl+5".action.move-column-to-workspace = [ 5 ]; + "Mod+Ctrl+6".action.move-column-to-workspace = [ 6 ]; + }; +} diff --git a/home/wayland/niri/niri.nix b/home/wayland/niri/niri.nix index facb35d..0391699 100644 --- a/home/wayland/niri/niri.nix +++ b/home/wayland/niri/niri.nix @@ -1,4 +1,34 @@ { ... }: { + imports = [ + ./binds.nix + ]; + programs.niri.settings = { + prefer-no-csd = true; + layout.shadow.enable = true; + input = { + mouse = { + accel-profile = "flat"; + accel-speed = -0.5; + middle-emulation = true; + }; + focus-follows-mouse = { + enable = true; + max-scroll-amount = "0%"; + }; + mod-key = "Alt"; + keyboard.xkb.layout = "pl"; + }; + outputs = { + "DP-1" = { + mode = { + width = 2560; + height = 1440; + refresh = null; + }; + scale = 1.0; + }; + }; + }; } diff --git a/home/wayland/noctalia.nix b/home/wayland/noctalia.nix index e0b402d..e51a09a 100644 --- a/home/wayland/noctalia.nix +++ b/home/wayland/noctalia.nix @@ -1,7 +1,11 @@ -{ inputs, ... }: +{ pkgs, inputs, ... }: { imports = [ inputs.noctalia.homeModules.default ]; + programs.noctalia-shell.package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.override { + quickshell = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.quickshell; + }; + programs.noctalia-shell = { enable = true; }; diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 3924e3d..f89c08a 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -113,9 +113,9 @@ xdg.portal = { console = { keyMap = "pl"; - # earlySetup = true; - # font = "Lat2-Terminus32"; - # packages = with pkgs; [ terminus_font ]; + earlySetup = true; + font = "ter-v32n"; + packages = with pkgs; [ terminus_font ]; }; environment.sessionVariables = { diff --git a/modules/niri.nix b/modules/niri.nix index cffe947..7c55687 100644 --- a/modules/niri.nix +++ b/modules/niri.nix @@ -1,7 +1,9 @@ -{ pkgs, inputs, ... }: +{ inputs, pkgs, ... }: { + imports = [ inputs.niri.nixosModules.niri ]; + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; programs.niri = { enable = true; - package = inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.niri; + package = pkgs.niri-unstable; }; } |
