flake/modules/home/xdg.nix
2024-12-29 08:58:37 +00:00

56 lines
1.9 KiB
Nix

{ pkgs, lib, config, ... }: {
options.mods.xdg.enable = lib.mkEnableOption "enables xdg settings";
config = lib.mkIf config.mods.xdg.enable {
environment.sessionVariables = {
XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_DIRS = "/etc/xdg";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_DIRS = "/usr/local/share/:/usr/share/";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
};
xdg = let
browser = [ "librewolf.desktop" ];
associations = {
"text/html" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/unknown" = browser;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/xhtml+xml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"audio/*" = [ "mpv.desktop" ];
"video/*" = [ "mpv.dekstop" ];
"image/*" = [ "imv.desktop" ];
"application/json" = browser;
# "application/pdf" = ["org.pwmt.zathura.desktop.desktop"];
"x-scheme-handler/tg" = [ "kotatogram-desktop.desktop" ];
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
};
in {
enable = true;
userDirs = {
enable = true;
documents = "$HOME/documents";
download = "$HOME/downloads";
videos = "$HOME/misc/videos";
music = "$HOME/misc/music";
pictures = "$HOME/misc/pictures";
desktop = "$HOME/misc/desktop";
publicShare = "$HOME/misc/public";
templates = "$HOME/misc/templates";
};
mimeApps.enable = true;
mimeApps.associations.added = associations;
mimeApps.defaultApplications = associations;
};
};
}