Files
cnix/modules/home/services/xdg/default.nix

146 lines
4.2 KiB
Nix

{
config,
lib,
osConfig,
...
}:
let
inherit (lib)
mkIf
mkEnableOption
mkForce
elem
;
browser =
if
elem osConfig.networking.hostName [
"kima"
"bunk"
]
then
"zen.desktop"
else
"firefox.desktop";
cfg = config.home.services.xdg;
in
{
options = {
home.services.xdg.enable = mkEnableOption "Enables XDG settings";
};
config = mkIf cfg.enable {
xresources.properties = {
"Xcursor.size" = config.home.pointerCursor.size;
"Xcursor.theme" = config.home.pointerCursor.name;
"XTerm*.foreground" = "#d5c4a1";
"XTerm*.background" = "#282828";
"XTerm*.cursorColor" = "#d5c4a1";
"XTerm*.color0" = "#282828";
"XTerm*.color1" = "#fb4934";
"XTerm*.color2" = "#b8bb26";
"XTerm*.color3" = "#fabd2f";
"XTerm*.color4" = "#83a598";
"XTerm*.color5" = "#d3869b";
"XTerm*.color6" = "#8ec07c";
"XTerm*.color7" = "#d5c4a1";
"XTerm*.color8" = "#665c54";
"XTerm*.color9" = "#fe8019";
"XTerm*.color10" = "#3c3836";
"XTerm*.color11" = "#504945";
"XTerm*.color12" = "#bdae93";
"XTerm*.color13" = "#ebdbb2";
"XTerm*.color14" = "#d65d0e";
"XTerm*.color15" = "#fbf1c7";
};
xdg = {
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/desktop";
documents = "${config.home.homeDirectory}/documents";
download = "${config.home.homeDirectory}/downloads";
music = "${config.home.homeDirectory}/media/music";
pictures = "${config.home.homeDirectory}/media/images";
publicShare = "${config.home.homeDirectory}/documents/share";
templates = "${config.home.homeDirectory}/documents/templates";
videos = "${config.home.homeDirectory}/media/videos";
};
mimeApps = {
enable = true;
defaultApplications = mkForce {
"text/html" = browser;
"text/xml" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/chrome" = browser;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"application/xhtml+xml" = browser;
"application/json" = browser;
"application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop";
"inode/directory" = "thunar.desktop";
"image/apng" = "feh.desktop";
"image/avif" = "feh.desktop";
"image/bmp" = "feh.desktop";
"image/gif" = "feh.desktop";
"image/jpeg" = "feh.desktop";
"image/png" = "feh.desktop";
"image/svg+xml" = "feh.desktop";
"image/tiff" = "feh.desktop";
"image/webp" = "feh.desktop";
"video/H264" = [
"mpv.desktop"
"vlc.desktop"
];
"video/x-msvideo" = [
"mpv.desktop"
"vlc.desktop"
];
"video/mp4" = [
"mpv.desktop"
"vlc.desktop"
];
"video/mpeg" = [
"mpv.desktop"
"vlc.desktop"
];
"video/ogg" = [
"mpv.desktop"
"vlc.desktop"
];
"video/mp2t" = [
"mpv.desktop"
"vlc.desktop"
];
"video/webm" = [
"mpv.desktop"
"vlc.desktop"
];
"video/3gpp" = [
"mpv.desktop"
"vlc.desktop"
];
"video/3gpp2" = [
"mpv.desktop"
"vlc.desktop"
];
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
"application/zip" = "org.gnome.FileRoller.desktop";
"application/vnd.rar" = "org.gnome.FileRoller.desktop";
"application/x-bzip" = "org.gnome.FileRoller.desktop";
"application/x-bzip2" = "org.gnome.FileRoller.desktop";
"application/x-tar" = "org.gnome.FileRoller.desktop";
"application/gzip" = "org.gnome.FileRoller.desktop";
};
};
};
};
}