76 lines
2.2 KiB
Nix
76 lines
2.2 KiB
Nix
|
{
|
||
|
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;
|
||
|
};
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
}
|