From 36094dcaed38aa3ca2049346847907039c7945fe Mon Sep 17 00:00:00 2001 From: Superredstone Date: Sun, 26 Apr 2026 07:15:21 +0200 Subject: [PATCH] fix: make portals great again! --- flake.lock | 102 ++++++++++++++++++--------------- flake.nix | 4 +- home/default.nix | 4 +- home/niri.nix | 22 ++++++- modules/nix-config/de.nix | 32 ----------- modules/nix-config/default.nix | 22 ------- modules/programs/default.nix | 5 ++ modules/programs/niri.nix | 34 +++++++++++ 8 files changed, 121 insertions(+), 104 deletions(-) create mode 100644 modules/programs/niri.nix diff --git a/flake.lock b/flake.lock index 138b5ff..17c8d6f 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1776702787, - "narHash": "sha256-qc5uwEWbuubzYthmZcfCapooZGXhoYZWfTQ24TozbCQ=", + "lastModified": 1776876344, + "narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "9a1ca6b8cb4d86a599787a55b78f2ddf809bf945", + "rev": "648a13d0ee1e03a843b3e145b8ece15393058701", "type": "github" }, "original": { @@ -36,11 +36,11 @@ "cachyos-kernel": { "flake": false, "locked": { - "lastModified": 1776608760, - "narHash": "sha256-ehDv8bF7k/2Kf4b8CCoSm51U/MOoFuLsRXqe5wZ57sE=", + "lastModified": 1776881435, + "narHash": "sha256-j8AobLjMzeKJugseObrVC4O5k7/aZCWoft2sCS3jWYs=", "owner": "CachyOS", "repo": "linux-cachyos", - "rev": "7e06e29005853bbaaa3b1c1067f915d6e0db728a", + "rev": "1c61dfd1c3ad7762faa0db8b06c6af6c59cc4340", "type": "github" }, "original": { @@ -52,11 +52,11 @@ "cachyos-kernel-patches": { "flake": false, "locked": { - "lastModified": 1776792814, - "narHash": "sha256-39dlIhz9KxUNQFxGpE9SvCviaOWAivdW0XJM8RnPNmg=", + "lastModified": 1777002108, + "narHash": "sha256-PIZCIf6xUTOUqLFbEGH0mSwu2O/YfeAmYlgdAbP4dhs=", "owner": "CachyOS", "repo": "kernel-patches", - "rev": "d7d558d0b2e239e27b40bcf1af6fe12e323aa391", + "rev": "46476ae2538db486462aef8a9de37d19030cdaf2", "type": "github" }, "original": { @@ -184,11 +184,11 @@ ] }, "locked": { - "lastModified": 1777004352, - "narHash": "sha256-SV+9PgNwZ8jHVCjK6YaCBzaheLSW7cDnm5DpOYrD8Vw=", + "lastModified": 1777151655, + "narHash": "sha256-Th3a5OZyEy4kCoyLfefnt+2dwRIrFQqYgMsayF9qzFw=", "owner": "nix-community", "repo": "home-manager", - "rev": "6012cf1fed3eba66115f3fd117b9be6bd2a15b2f", + "rev": "6f59831b23d03bbf4fbd13ad167ae25da294cc14", "type": "github" }, "original": { @@ -272,11 +272,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1776947531, - "narHash": "sha256-DBE9ECXz4ItAyIZ0NCfccpjFjpLALvDbkLd62xDZPQI=", + "lastModified": 1777151844, + "narHash": "sha256-dd+Xc4VvrLQ2L1nprT9W5GvHBV/+u+0OZT0nvFAQNfg=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "b65714e3b8e123fb2febd507905d25fa6abd0400", + "rev": "b7a3042964a200790c82e8d273d80d9bcf5bb115", "type": "github" }, "original": { @@ -449,11 +449,11 @@ ] }, "locked": { - "lastModified": 1776428866, - "narHash": "sha256-XfRlBolGtjvalTHJp3XvvpYLBjkMhaZLLU0WqZ91Fcg=", + "lastModified": 1777148223, + "narHash": "sha256-PTf7kRFFzCW6rIYxLH2fWfVJmj86FSYe3k6L8B+IM9o=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "eedd60805cd96d4442586f2ba5fe51d549b12674", + "rev": "fa3992be2dfebe4ab06d753c6ca59bea298e798f", "type": "github" }, "original": { @@ -474,11 +474,11 @@ ] }, "locked": { - "lastModified": 1776430932, - "narHash": "sha256-Yv3RPiUvl7CAsJgwIVsqcj7akn1gLyJP1F/mocof5hA=", + "lastModified": 1777148232, + "narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "4c2fcc06dc9722c97dbb54ba649c69b18ce83d2e", + "rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92", "type": "github" }, "original": { @@ -525,11 +525,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1776796985, - "narHash": "sha256-cNFg3H09sBZl1v9ds6PDHfLCUTDJbefGMSv+WxFs+9c=", + "lastModified": 1777140538, + "narHash": "sha256-2y5SwHxTOwEdr8WZv1IGBVoJM47YcomfoxFnZj9TgN0=", "owner": "xddxdd", "repo": "nix-cachyos-kernel", - "rev": "ac5956bbceb022998fc1dd0001322f10ef1e6dda", + "rev": "ce6083d35e50516dd6eb6156d0cbda67baed9117", "type": "github" }, "original": { @@ -541,11 +541,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1776548001, - "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { @@ -572,11 +572,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1776750258, - "narHash": "sha256-jab3OFEK7MpiAolaLBjvIxdf258UWvvusWxPJPE5ito=", + "lastModified": 1777100098, + "narHash": "sha256-m9HxywMUYWroIRrQHKE+wxE17gBfum99i9H5bBdsxYI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8d73c2809cb39eecce6284c38100e69a6064e5d9", + "rev": "370045a56d68e7127ce54e0906ab33c3abd387a5", "type": "github" }, "original": { @@ -588,11 +588,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1776548001, - "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { @@ -603,6 +603,20 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1775403759, + "narHash": "sha256-cGyKiTspHEUx3QwAnV3RfyT+VOXhHLs+NEr17HU34Wo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5e11f7acce6c3469bef9df154d78534fa7ae8b6c", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1770380644, "narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=", @@ -618,7 +632,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1770562336, "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", @@ -635,9 +649,7 @@ "nixvim": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_4", "nixvim": "nixvim_2" }, "locked": { @@ -657,7 +669,7 @@ "nixvim_2": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "systems": "systems_3" }, "locked": { @@ -682,11 +694,11 @@ "noctalia-qs": "noctalia-qs" }, "locked": { - "lastModified": 1776888984, - "narHash": "sha256-Up2F/eoMuPUsZnPVYdH5TMHe1TBP2Ue1QuWd0vWZoxY=", + "lastModified": 1777079905, + "narHash": "sha256-TvYEXwkZnRFQRuFyyqTNSfPnU2tMdhtiBOXSk2AWLJA=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "2c1808f9f8937fc0b82c54af513f7620fec56d71", + "rev": "a50c92167c8d438000270f7eca36f6eea74f388e", "type": "github" }, "original": { @@ -775,7 +787,7 @@ }, "spotiflac-cli": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1771096762, @@ -901,11 +913,11 @@ ] }, "locked": { - "lastModified": 1776608502, - "narHash": "sha256-UH8YoQxx4hFOm6qjMdjRQNRvSejFIR/wBZ8fW1p9sME=", + "lastModified": 1777035886, + "narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4a293523d36dfa367e67ec304cc718ea66a8fec2", + "rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c5042ed..76fb2a8 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,7 @@ }; nixvim = { url = "github:Superredstone/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; + # inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; @@ -59,7 +59,7 @@ email = personalEmail; gamingSystem = true; # Currently supported: plasma, gnome, hyprland and none - desktopEnvironment = "gnome"; + desktopEnvironment = "niri"; enableZram = true; additionalModules = [ ]; diff --git a/home/default.nix b/home/default.nix index 99c3b95..bdf1678 100644 --- a/home/default.nix +++ b/home/default.nix @@ -10,13 +10,13 @@ ./git.nix ./kitty.nix ./mangohud.nix - ./niri.nix ./tmux.nix ./vesktop.nix ./zoxide.nix ] ++ (if currentSystemDe == "hyprland" then [ ./hyprland ] else [ ]) - ++ (if currentSystemDe == "gnome" then [ ./gnome.nix ] else [ ]); + ++ (if currentSystemDe == "gnome" then [ ./gnome.nix ] else [ ]) + ++ (if currentSystemDe == "niri" then [ ./niri.nix ] else [ ]); home = { username = "${currentSystemUser}"; diff --git a/home/niri.nix b/home/niri.nix index 85b2719..99f864d 100644 --- a/home/niri.nix +++ b/home/niri.nix @@ -1,4 +1,4 @@ -{ inputs, ... }: +{ inputs, pkgs, ... }: { imports = [ inputs.noctalia.homeModules.default @@ -15,4 +15,24 @@ enable = true; settings = ../assets/noctalia.json; }; + + gtk = { + enable = true; + colorScheme = "dark"; + gtk4.theme = null; + iconTheme = { + name = "Papirus"; + package = pkgs.papirus-icon-theme; + }; + cursorTheme = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + }; + }; + + # Fix for steam cursor + home.file.".local/share/icons/default" = { + source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic/"; + recursive = true; + }; } diff --git a/modules/nix-config/de.nix b/modules/nix-config/de.nix index f488cd8..448dad8 100644 --- a/modules/nix-config/de.nix +++ b/modules/nix-config/de.nix @@ -11,31 +11,6 @@ let }; in { - programs.niri.enable = true; - services.dbus.packages = [ pkgs.nautilus ]; - services.dbus.implementation = "broker"; - services.xserver.desktopManager.runXdgAutostartIfNone = true; - - # For god's sake, never touch this code again, so much pain has been released on the following lines. - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - extraPortals = lib.mkForce [ - pkgs.xdg-desktop-portal-wlr - pkgs.xdg-desktop-portal-gtk - ]; - config = { - niri = { - default = lib.mkForce [ - "wlr" - "gtk" - ]; - "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ]; - "org.freedesktop.impl.portal.Screenshot" = [ "wlr" ]; - }; - }; - }; - services = { xserver.enable = true; xserver.excludePackages = with pkgs; [ @@ -59,13 +34,6 @@ in gnome.gnome-keyring.enable = true; }; - environment.etc."xdg/autostart/niri.desktop".text = '' - [Desktop Entry] - Name=Niri - Exec=${config.programs.niri.package}/bin/niri-session - Type=Application - X-GDM-SessionRegisters=true - ''; environment.plasma6.excludePackages = with pkgs.kdePackages; [ elisa konsole diff --git a/modules/nix-config/default.nix b/modules/nix-config/default.nix index 00ec9cd..e70ae15 100644 --- a/modules/nix-config/default.nix +++ b/modules/nix-config/default.nix @@ -23,28 +23,6 @@ else [ ] ); - - xdg.portal = { - enable = true; - config = { - common = { - default = [ - "gnome" - "gtk" - ]; - "org.freedesktop.impl.portal.ScreenCast" = "gnome"; - "org.freedesktop.impl.portal.Screenshot" = "gnome"; - "org.freedesktop.impl.portal.RemoteDesktop" = "gnome"; - }; - }; - xdgOpenUsePortal = true; - extraPortals = with pkgs; [ - xdg-desktop-portal - xdg-desktop-portal-gtk - xdg-desktop-portal-gnome - ]; - }; - time.timeZone = "Europe/Rome"; # Select internationalisation properties. diff --git a/modules/programs/default.nix b/modules/programs/default.nix index 8113923..3b7357e 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -5,6 +5,11 @@ ... }: { + imports = [ + + ] + ++ (if currentSystemDe == "niri" then [ ./niri.nix ] else [ ]); + programs = { gamescope = { enable = true; diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix new file mode 100644 index 0000000..aadc303 --- /dev/null +++ b/modules/programs/niri.nix @@ -0,0 +1,34 @@ +{ pkgs, lib, config, ... }: +{ + programs.niri.enable = true; + + services.dbus.packages = [ pkgs.nautilus ]; + services.dbus.implementation = "broker"; + services.xserver.desktopManager.runXdgAutostartIfNone = true; + services.upower.enable = true; + services.displayManager.dms-greeter = { + enable = true; + compositor.name = "niri"; + }; + + # For god's sake, never touch this code again, so much pain has been released on the following lines. + xdg.portal = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = lib.mkForce [ + pkgs.xdg-desktop-portal-wlr + pkgs.xdg-desktop-portal-gtk + ]; + config = { + niri = { + default = lib.mkForce [ + "gtk" + "wlr" + ]; + "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ]; + "org.freedesktop.impl.portal.Screenshot" = [ "wlr" ]; + }; + }; + }; + +}