Commit 76ff8fe

HPCesia <me@hpcesia.com>
2025-12-04 09:27:25
feat: niri's xdg-desktop-portal-gnome
1 parent fbd09f7
Changed files (2)
modules
desktop
desktop-environment
modules/desktop/desktop-environment/discrete/wm/niri/xdg-portal.nix
@@ -0,0 +1,19 @@
+{lib, ...}: {
+  flake.modules.nixos.wm-niri = {pkgs, ...}: {
+    xdg.portal = {
+      enable = lib.mkDefault true;
+      extraPortals = [
+        pkgs.xdg-desktop-portal-gnome # Recommanded by Niri, default enabled by nixpkgs' option, but not enabled in niri-flake.
+        pkgs.xdg-desktop-portal-wlr # Use wlr portal for screencast
+      ];
+      config.niri = {
+        default = ["gnome"];
+        "org.freedesktop.impl.portal.Access" = "gtk";
+        "org.freedesktop.impl.portal.Notification" = "gtk";
+        "org.freedesktop.impl.portal.ScreenCast" = "wlr";
+      };
+    };
+
+    services.dbus.packages = [pkgs.nautilus]; # Required by xdg-desktop-portal-gnome
+  };
+}
modules/desktop/desktop-environment/discrete/xdg-portal.nix
@@ -1,19 +1,10 @@
 {
-  flake.modules.nixos.de-discrete = {pkgs, ...}: {
+  flake.modules.nixos.de-discrete = _: {
     xdg.portal = {
       enable = true;
-      extraPortals = [
-        # Need for screen record
-        pkgs.xdg-desktop-portal-wlr
-      ];
       config = {
         common = {
-          # Use xdg-desktop-portal-gtk for every portal interface...
-          default = [
-            "gtk"
-            "wlr"
-          ];
-          # except for the secret portal, which is handled by gnome-keyring
+          default = ["gtk"];
           "org.freedesktop.impl.portal.Secret" = [
             "gnome-keyring"
           ];