summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2025-11-18 21:00:16 +0100
committeradikro <adikro@disroot.org>2025-11-18 21:00:16 +0100
commit8498fab8785d08402e2330dfb6f45f1121cd1b2b (patch)
tree12798dedc5ff18ecc8d39d714881e351581cee0e
parentf685be6aea021196ee40d909aab0ab6241eef397 (diff)
configured a bunch of niri features
-rw-r--r--flake.lock217
-rw-r--r--flake.nix14
-rw-r--r--home/wayland/niri/binds.nix66
-rw-r--r--home/wayland/niri/niri.nix30
-rw-r--r--home/wayland/noctalia.nix6
-rw-r--r--hosts/desktop/configuration.nix6
-rw-r--r--modules/niri.nix6
7 files changed, 274 insertions, 71 deletions
diff --git a/flake.lock b/flake.lock
index 78222a8..df4b634 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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",
diff --git a/flake.nix b/flake.nix
index 8ecd2dd..67eee59 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
};
}