{ config, ... }: let inherit (config.poz.other.system) username; # https://specifications.freedesktop.org/basedir-spec/latest/ XDG_CACHE_HOME = "$HOME/.cache"; XDG_CONFIG_HOME = "$HOME/.config"; XDG_DATA_HOME = "$HOME/.local/share"; XDG_STATE_HOME = "$HOME/.local/state"; in { # most of the random ass env vars taken from `pkgs.xdg-ninja` environment.sessionVariables = { inherit XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_STATE_HOME ; ANDROID_HOME = "${XDG_DATA_HOME}/android"; CARGO_HOME = "${XDG_DATA_HOME}/cargo"; DOTNET_CLI_HOME = "${XDG_DATA_HOME}/dotnet"; GOPATH = "${XDG_DATA_HOME}/go"; GNUPGHOME = "${XDG_DATA_HOME}/gnupg"; GRADLE_USER_HOME = "${XDG_DATA_HOME}/gradle"; HISTFILE = "${XDG_STATE_HOME}/bash/history"; MYSQL_HISTFILE = "${XDG_STATE_HOME}/mysql/history"; NPM_CONFIG_USERCONFIG = "${XDG_CONFIG_HOME}/npm/npmrc"; NUGET_PACKAGES = "${XDG_CACHE_HOME}/NuGetPackages"; _JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java"; PARALLEL_HOME = "${XDG_CONFIG_HOME}/parallel"; PYTHONSTARTUP = "${XDG_CONFIG_HOME}/python/pythonrc"; RUSTUP_HOME = "${XDG_DATA_HOME}/rustup"; WINEPREFIX = "${XDG_DATA_HOME}/wine"; XAUTHORITY = "\$XDG_RUNTIME_DIR/Xauthority"; }; poz.programs.zsh.extraAliases = { gdb = "gdb -n -x ${XDG_CONFIG_HOME}/gdb/init"; pidgin = "pidgin --config=${XDG_DATA_HOME}/purple"; svn = "svn --config-dir ${XDG_CONFIG_HOME}/subversion"; wget = "wget --hsts-file=\"${XDG_DATA_HOME}/wget-hsts\""; }; home-manager.users.${username} = { xdg = { configFile = { "npm/npmrc".text = '' prefix=${XDG_DATA_HOME}/npm cache=${XDG_CACHE_HOME}/npm tmp=\$XDG_RUNTIME_DIR/npm init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js ''; "python/pythonrc".text = '' import os import atexit import readline history = os.path.join(os.environ['XDG_CACHE_HOME'], 'python_history') try: readline.read_history_file(history) except OSError: pass def write_history(): try: readline.write_history_file(history) except OSError: pass atexit.register(write_history) ''; }; cacheHome = XDG_CACHE_HOME; configHome = XDG_CONFIG_HOME; dataHome = XDG_DATA_HOME; stateHome = XDG_STATE_HOME; mimeApps = { enable = true; defaultApplications = let primary_browser = "firefox-schizo.desktop"; secondary_browser = "firefox-unschizo.desktop"; mail_client = "thunderbird.desktop"; file_manager = "pcmanfm.desktop"; media_player = "mpv.desktop"; image_viewer = "imv.desktop"; text_editor = "nvim.desktop"; in{ "text/html" = [ primary_browser secondary_browser ]; "x-scheme-handler/http" = [ primary_browser secondary_browser ]; "x-scheme-handler/https" = [ primary_browser secondary_browser ]; "x-scheme-handler/about" = [ primary_browser secondary_browser ]; "x-scheme-handler/unknown" = [ primary_browser secondary_browser ]; "x-scheme-handler/mailto" = [ mail_client ]; "message/rfc822" = [ mail_client ]; "x-scheme-handler/mid" = [ mail_client ]; "inode/directory" = [ file_manager ]; "x-scheme-handler/heroic" = [ "heroic.desktop" ]; "audio/mp3" = [ media_player ]; "audio/ogg" = [ media_player ]; "audio/mpeg" = [ media_player ]; "audio/aac" = [ media_player ]; "audio/opus" = [ media_player ]; "audio/wav" = [ media_player ]; "audio/webm" = [ media_player ]; "audio/3gpp" = [ media_player ]; "audio/3gpp2" = [ media_player ]; "video/mp4" = [ media_player ]; "video/x-msvideo" = [ media_player ]; "video/mpeg" = [ media_player ]; "video/ogg" = [ media_player ]; "video/mp2t" = [ media_player ]; "video/webm" = [ media_player ]; "video/3gpp" = [ media_player ]; "video/3gpp2" = [ media_player ]; "image/png" = [ image_viewer ]; "image/jpeg" = [ image_viewer ]; "image/gif" = [ media_player ]; "image/avif" = [ image_viewer ]; "image/bmp" = [ image_viewer ]; "image/vnd.microsoft.icon" = [ image_viewer ]; "image/svg+xml" = [ image_viewer ]; "image/tiff" = [ image_viewer ]; "image/webp" = [ image_viewer ]; "text/plain" = [ text_editor ]; }; }; }; }; }