about summary refs log tree commit diff stats
path: root/modules/by-name/xd
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-04-14 17:08:53 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-04-14 17:08:53 +0200
commit89908c69b7819c7c50cdfa7219d9ef77edfdd65e (patch)
tree55c77dab162a921dce2ba1ac468318c6a39b8b94 /modules/by-name/xd
parentmodules/atuin: Use the daemon (diff)
downloadnixos-config-89908c69b7819c7c50cdfa7219d9ef77edfdd65e.zip
modules/xdg: Move the rest of the xdg config here
Diffstat (limited to 'modules/by-name/xd')
-rw-r--r--modules/by-name/xd/xdg/module.nix82
1 files changed, 56 insertions, 26 deletions
diff --git a/modules/by-name/xd/xdg/module.nix b/modules/by-name/xd/xdg/module.nix
index 9ff71ca0..108e0179 100644
--- a/modules/by-name/xd/xdg/module.nix
+++ b/modules/by-name/xd/xdg/module.nix
@@ -47,36 +47,63 @@ in {
   };
 
   config = lib.mkIf cfg.enable {
-    home-manager.users.soispha = {
-      xdg = {
-        configFile."xdg-desktop-portal-termfilechooser/config".source = tfcConfigFile;
-
-        desktopEntries = {
-          url-handler = {
-            name = "url-handler";
-            genericName = "Web Browser";
-            exec = "${lib.getExe url-handler} %u";
-            terminal = false;
-            categories = [
-              "Application"
-              "Network"
-              "WebBrowser"
-            ];
-            mimeType = [
-              "text/html"
-              "text/xml"
-              "x-scheme-handler/http"
-              "x-scheme-handler/https"
-              "x-scheme-handler/about"
-              "x-scheme-handler/unknown"
-            ];
-          };
+    home-manager.users.soispha.xdg = let
+      inherit (config.home-manager.users.soispha.home) homeDirectory;
+    in {
+      enable = true;
+
+      configFile."xdg-desktop-portal-termfilechooser/config".source = tfcConfigFile;
+
+      configHome = "${homeDirectory}/.config";
+      dataHome = "${homeDirectory}/.local/share";
+      stateHome = "${homeDirectory}/.local/state";
+      cacheHome = "${homeDirectory}/.cache";
+
+      userDirs = {
+        enable = true;
+
+        # TODO: We shouldn't build on these variables to exist, but currently my config
+        # might expect them. So let's just keep it. See here for a full explanation:
+        # https://github.com/nix-community/home-manager/pull/7937#issuecomment-3372232126
+        # <2026-04-14>
+        setSessionVariables = true;
+
+        createDirectories = true;
+
+        documents = "${homeDirectory}/documents/general";
+        download = "/tmp/download";
+        music = "${homeDirectory}/media/music";
+        pictures = "${homeDirectory}/media/pictures";
+        videos = "${homeDirectory}/media/videos";
+
+        templates = null;
+        publicShare = null;
+        desktop = null;
+      };
+
+      desktopEntries = {
+        url-handler = {
+          name = "url-handler";
+          genericName = "Web Browser";
+          exec = "${lib.getExe url-handler} %u";
+          terminal = false;
+          categories = [
+            "Application"
+            "Network"
+            "WebBrowser"
+          ];
+          mimeType = [
+            "text/html"
+            "text/xml"
+            "x-scheme-handler/http"
+            "x-scheme-handler/https"
+            "x-scheme-handler/about"
+            "x-scheme-handler/unknown"
+          ];
         };
       };
     };
 
-    services.dbus.enable = true;
-
     xdg = {
       mime = {
         enable = true;
@@ -98,6 +125,7 @@ in {
         wlr = {
           enable = true;
         };
+
         config = {
           common = {
             default = ["wlr"];
@@ -118,6 +146,8 @@ in {
       };
     };
 
+    services.dbus.enable = true;
+
     systemd.user.services.xdg-desktop-portal-termfilechooser = {
       serviceConfig.ExecStart = [
         ""