From 3f76d39eb7682b7df800b7a094891f4c2bf0d25a Mon Sep 17 00:00:00 2001 From: punkfairie Date: Fri, 15 Nov 2024 21:55:58 -0800 Subject: [PATCH] feat(home): Xdg profile --- modules/home/base/xdg/default.nix | 75 +++++++++++++++++++++++++++++++ old/home/profile/xdg.nix | 60 ------------------------- 2 files changed, 75 insertions(+), 60 deletions(-) create mode 100644 modules/home/base/xdg/default.nix delete mode 100644 old/home/profile/xdg.nix diff --git a/modules/home/base/xdg/default.nix b/modules/home/base/xdg/default.nix new file mode 100644 index 0000000..156d780 --- /dev/null +++ b/modules/home/base/xdg/default.nix @@ -0,0 +1,75 @@ +{ + config, + namespace, + lib, + pkgs, + ... +}: +let + inherit (lib) mkMerge mkIf; + inherit (config.${namespace}) isDesktop; +in +{ + config = { + home.preferXdgDirectories = true; + + xdg = + let + homeDir = config.home.homeDirectory; + in + mkMerge [ + { + enable = true; + + cacheHome = "${homeDir}/.cache"; + configHome = "${homeDir}/.config"; + dataHome = "${homeDir}/.local/share"; + stateHome = "${homeDir}/.local/state"; + } + (mkIf isDesktop { + userDirs = { + enable = true; + createDirectories = true; + + desktop = "${homeDir}/desktop"; + documents = null; + download = "${homeDir}/downloads"; + music = null; + pictures = "${homeDir}/pictures"; + templates = null; + videos = "${homeDir}/videos"; + }; + + portal = { + enable = true; + xdgOpenUsePortal = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + config.common.default = [ "gtk" ]; + }; + + mimeApps = rec { + enable = true; + + associations.added = { + "application/json" = [ "nvim.desktop" ]; + "application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ]; + "application/xhtml+xml" = [ "zen-alpha.desktop" ]; + "application/x-extension-htm" = [ "zen-alpha.desktop" ]; + "application/x-extension-html" = [ "zen-alpha.desktop" ]; + "application/x-extension-shtml" = [ "zen-alpha.desktop" ]; + "application/x-extension-xhtml" = [ "zen-alpha.desktop" ]; + "application/x-extension-xht" = [ "zen-alpha.desktop" ]; + "image/png" = [ "feh.desktop" ]; + "text/html" = [ "zen-alpha.desktop" ]; + "text/plain" = [ "nvim.desktop" ]; + "x-scheme-handler/chrome" = [ "zen-alpha.desktop" ]; + "x-scheme-handler/http" = [ "zen-alpha.desktop" ]; + "x-scheme-handler/https" = [ "zen-alpha.desktop" ]; + }; + + defaultApplications = associations.added; + }; + }) + ]; + }; +} diff --git a/old/home/profile/xdg.nix b/old/home/profile/xdg.nix deleted file mode 100644 index 178a18d..0000000 --- a/old/home/profile/xdg.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ config, pkgs, ... }: -{ - home.preferXdgDirectories = true; - - xdg = - let - homeDir = config.home.homeDirectory; - in - { - enable = true; - - cacheHome = "${homeDir}/.cache"; - configHome = "${homeDir}/.config"; - dataHome = "${homeDir}/.local/share"; - stateHome = "${homeDir}/.local/state"; - - userDirs = { - enable = true; - createDirectories = true; - - desktop = "${homeDir}/desktop"; - documents = null; - download = "${homeDir}/downloads"; - music = null; - pictures = "${homeDir}/pictures"; - templates = null; - videos = "${homeDir}/videos"; - }; - - portal = { - enable = true; - xdgOpenUsePortal = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - config.common.default = [ "gtk" ]; - }; - - mimeApps = rec { - enable = true; - - associations.added = { - "application/json" = [ "nvim.desktop" ]; - "application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ]; - "application/xhtml+xml" = [ "zen-alpha.desktop" ]; - "application/x-extension-htm" = [ "zen-alpha.desktop" ]; - "application/x-extension-html" = [ "zen-alpha.desktop" ]; - "application/x-extension-shtml" = [ "zen-alpha.desktop" ]; - "application/x-extension-xhtml" = [ "zen-alpha.desktop" ]; - "application/x-extension-xht" = [ "zen-alpha.desktop" ]; - "image/png" = [ "feh.desktop" ]; - "text/html" = [ "zen-alpha.desktop" ]; - "text/plain" = [ "nvim.desktop" ]; - "x-scheme-handler/chrome" = [ "zen-alpha.desktop" ]; - "x-scheme-handler/http" = [ "zen-alpha.desktop" ]; - "x-scheme-handler/https" = [ "zen-alpha.desktop" ]; - }; - - defaultApplications = associations.added; - }; - }; -}