From 5847641056231f9afc0eb9a9eee4d0008bb4012c Mon Sep 17 00:00:00 2001
From: Freya Murphy <freya@freyacat.org>
Date: Thu, 23 Jan 2025 17:18:33 -0500
Subject: [PATCH] xdg mime and user dirs

---
 nix/home/default.nix | 47 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/nix/home/default.nix b/nix/home/default.nix
index fd7d25a..8a4c35e 100644
--- a/nix/home/default.nix
+++ b/nix/home/default.nix
@@ -61,6 +61,53 @@
       };
     };
 
+    xdg.mimeApps = {
+      enable = true;
+      defaultApplications = {
+        # web
+        "text/html" = "firefox.desktop";
+        "x-scheme-handler/http" = "firefox.desktop";
+        "x-scheme-handler/https" = "firefox.desktop";
+        "x-scheme-handler/about" = "firefox.desktop";
+        "x-scheme-handler/unknown" = "firefox.desktop";
+
+        # images
+        "image/png" = "imv.desktop";
+        "image/jpeg" = "imv.desktop";
+        "image/webp" = "imv.desktop";
+        "image/tga" = "imv.desktop";
+        "image/bmp" = "imv.desktop";
+        "image/gif" = "imv.desktop";
+
+        # audio video
+        "video/mp4" = "mpv.desktop";
+        "video/x-msvideo" = "mpv.desktop";
+        "video/mkv" = "mpv.desktop";
+        "video/webm" = "mpv.desktop";
+        "audio/mp3" = "mpv.desktop";
+        "audio/wav" = "mpv.desktop";
+
+        # other
+        "application/pdf" = "org.pwmt.zathura.desktop";
+        "x-scheme-handler/mspa" = "unofficial-homestuck-collection.desktop";
+        "x-scheme-handler/discord" = "discord.desktop";
+      };
+    };
+
+    xdg.userDirs = {
+      enable = true;
+      createDirectories = false;
+
+      desktop = "${config.homePath}/desktop";
+      documents = "${config.homePath}/documents";
+      download = "${config.homePath}/downloads";
+      music = "${config.homePath}/music";
+      pictures = "${config.homePath}/pictures";
+      publicShare = "${config.homePath}";
+      templates = "${config.homePath}";
+      videos = "${config.homePath}/videos";
+    };
+
     gtk = {
       enable = true;
       gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;