Commit fbca00b

HPCesia <me@hpcesia.com>
2026-06-21 13:58:11
Add desktop util aspects
1 parent 8adf831
Changed files (5)
modules
modules/desktop/env/utils.nix
@@ -0,0 +1,50 @@
+{lib, ...}: {
+  den.aspects.desktop.env.utils = {user, ...}: {
+    nixos = {pkgs, ...}: {
+      environment.systemPackages = with pkgs; [
+        pkgs.wl-clipboard-rs
+
+        nautilus
+
+        # Thumbnail
+        # Image
+        gdk-pixbuf
+        libheif
+        webp-pixbuf-loader
+        # Video
+        ffmpeg-headless
+        ffmpegthumbnailer
+      ];
+
+      programs.nautilus-open-any-terminal =
+        lib.optionalAttrs
+        (lib.hasAttrByPath ["desktop" "terminal" "default"] user.system.settings)
+        {
+          enable = true;
+          terminal = user.system.settings.desktop.terminal.default;
+        };
+
+      services.tumbler.enable = true; # Thumbnail support
+    };
+
+    homeManager = {pkgs, ...}: {
+      home.packages = with pkgs; [
+        loupe # Image viewer
+      ];
+
+      xdg.mimeApps.defaultApplications = {
+        "image/*" = "org.gnome.Loupe.desktop";
+        "image/jpeg" = "org.gnome.Loupe.desktop";
+        "image/png" = "org.gnome.Loupe.desktop";
+        "image/gif" = "org.gnome.Loupe.desktop";
+        "image/bmp" = "org.gnome.Loupe.desktop";
+        "image/svg+xml" = "org.gnome.Loupe.desktop";
+        "image/webp" = "org.gnome.Loupe.desktop";
+        "image/avif" = "org.gnome.Loupe.desktop";
+      };
+
+      xdg.configFile."mimeapps.list".force = true;
+      xdg.mimeApps.enable = true;
+    };
+  };
+}
modules/desktop/kdeconnect.nix
@@ -0,0 +1,32 @@
+{
+  den.aspects.desktop.kdeconnect = {
+    persistHome = {config, ...}: {
+      directories = [
+        "${config.xdg.configHome}/kdeconnect"
+      ];
+    };
+
+    nixos = {
+      networking.firewall = {
+        allowedTCPPortRanges = [
+          {
+            from = 1714;
+            to = 1764;
+          }
+        ];
+        allowedUDPPortRanges = [
+          {
+            from = 1714;
+            to = 1764;
+          }
+        ];
+      };
+    };
+
+    homeManager = {
+      services.kdeconnect = {
+        enable = true;
+      };
+    };
+  };
+}
modules/desktop/utils.nix
@@ -0,0 +1,9 @@
+{
+  den.aspects.desktop.utils = {
+    nixos = {config, ...}: {
+      services.gvfs.enable = true; # Mount, trash, and other functionalities
+      services.blueman.enable = config.hardware.bluetooth.enable;
+      i18n.extraLocales = "all";
+    };
+  };
+}
modules/roles/desktop.nix
@@ -16,6 +16,7 @@
       desktop.env.polkit
       desktop.env.sddm
       desktop.env.secret-store
+      desktop.env.utils
     ];
   };
 }
modules/users/hpcesia/default.nix
@@ -24,6 +24,7 @@
           desktop.env.wm.niri
           desktop.flatpak
           desktop.gnupg
+          desktop.kdeconnect
           desktop.terminal.foot
         ]));
   };