diff --git a/config/hosts/aspects/doloro-desktop/home.nix b/config/hosts/aspects/doloro-desktop/home.nix index 28ca3ef..aa31199 100644 --- a/config/hosts/aspects/doloro-desktop/home.nix +++ b/config/hosts/aspects/doloro-desktop/home.nix @@ -25,6 +25,7 @@ ( { default = true; }) + modules.niri # Testing modules.stylix modules.quickshell modules.nix-ld diff --git a/config/modules/niri/niri.nix b/config/modules/niri/niri.nix index 77f2cc1..87deb35 100644 --- a/config/modules/niri/niri.nix +++ b/config/modules/niri/niri.nix @@ -1,4 +1,10 @@ -{ modules, den, ... }: +{ + modules, + inputs, + lib, + den, + ... +}: { flake-file.inputs = { niri-flake = { @@ -7,6 +13,115 @@ }; }; modules.niri = { - + nixpkgs.overlays = [ inputs.niri-flake.overlays.niri ]; + nixos = + { pkgs, ... }: + { + programs.niri = { + enable = true; + package = pkgs.niri-unstable; + }; + niri-flake.cache.enable = true; + }; + homeManager = + { pkgs, ... }: + { + imports = [ inputs.niri-flake.homeModules.niri ]; + gtk.enable = lib.mkForce false; + home.packages = with pkgs; [ kickoff ]; + programs = { + niri = { + enable = true; + # package = pkgs.niri-unstable; + settings = { + input = { + keyboard = { + xkb = { + layout = "gb"; + }; + numlock = true; + }; + }; + outputs = { + DP-3 = { + # Philips Consumer Electronics Company PHL 272E1GZ UK02101011104 + mode = { + width = 1920; + height = 1080; + refresh = 165.0; + }; + focus-at-startup = true; + variable-refresh-rate = true; + }; + HDMI-A-1 = { + position = { + x = -1920; + y = 0; + }; + scale = 1; + }; + }; + binds = { + # Navigation + "Mod+Shift+WheelScrollDown" = { + hotkey-overlay.title = "Workspace Down"; + cooldown-ms = 150; + action.focus-workspace-down = [ ]; + }; + "Mod+Shift+WheelScrollUp" = { + hotkey-overlay.title = "Workspace Up"; + cooldown-ms = 150; + action.focus-workspace-up = [ ]; + }; + "Mod+WheelScrollUp" = { + hotkey-overlay.title = "Workspace Left"; + action.focus-column-right = [ ]; + }; + "Mod+WheelScrollDown" = { + hotkey-overlay.title = "Workspace Right"; + action.focus-column-left = [ ]; + }; + "Super+Tab" = { + hotkey-overlay.title = "Overview"; + action.toggle-overview = [ ]; + }; + # -- + # Utility + "Super+S" = { + action.screenshot = [ ]; + }; + "Super+C" = { + action.close-window = [ ]; + }; + "Super+L" = { + action.spawn = "wlogout"; + }; + # Program Spawning + "Mod+E".action.spawn = "helium"; + "Mod+R".action.spawn = "kickoff"; + "Mod+Q".action.spawn = "kitty"; + # -- + }; + window-rules = [ + { + matches = [ ]; + geometry-corner-radius = { + bottom-left = 3.0; + bottom-right = 3.0; + top-left = 3.0; + top-right = 3.0; + }; + clip-to-geometry = true; + draw-border-with-background = false; + focus-ring.width = 2; + } + ]; + xwayland-satellite = { + enable = true; + }; + }; + }; + }; + }; }; } diff --git a/flake.lock b/flake.lock index 509044e..5881e00 100644 --- a/flake.lock +++ b/flake.lock @@ -742,6 +742,64 @@ "type": "github" } }, + "niri-flake": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1773725889, + "narHash": "sha256-htkVJrtaWJS7wQSXg8d26RR6jF3Iab2bYTNfvTgv05Q=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "9987baf8f935a1b3b2aa89a44c13b3239ecc640e", + "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": 1773130184, + "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1772771118, @@ -758,6 +816,22 @@ "type": "github" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1773705440, + "narHash": "sha256-xB30bbAp0e7ogSEYyc126mAJMt4FRFh8wtm6ADE1xuM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1704008649, @@ -925,6 +999,7 @@ "home-manager": "home-manager", "hyprland": "hyprland", "import-tree": "import-tree", + "niri-flake": "niri-flake", "nixpkgs": "nixpkgs_4", "nixpkgs-lib": [ "nixpkgs" @@ -1309,6 +1384,39 @@ "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": 1773622265, + "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "a879e5e0896a326adc79c474bf457b8b99011027", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, "zen-browser": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 1ded5fa..1e03e76 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,5 @@ # You FAGGOT; Do NOT edit this file !!!!, run 'nix run .#write-flake' { - outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config); inputs = { @@ -9,39 +8,42 @@ flake-aspects.url = "github:vic/flake-aspects"; flake-file.url = "github:vic/flake-file"; flake-parts = { - inputs.nixpkgs-lib.follows = "nixpkgs-lib"; url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs-lib"; }; font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher"; heliumFlake = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:vikingnope/helium-browser-nix-flake"; + inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; hyprland.url = "github:hyprwm/Hyprland"; import-tree.url = "github:vic/import-tree"; + niri-flake = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; nixpkgs-lib.follows = "nixpkgs"; nixvim = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; }; raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix"; sops-nix = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { - inputs.nixpkgs.follows = "nixpkgs"; url = "github:youwen5/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; }; }; - }