{ config, lib, pkgs, ... }: let HOME = config.home-manager.users.krizej.home.homeDirectory; XDG_DATA_HOME = "${HOME}/.local/share"; XDG_CONFIG_HOME = "${HOME}/.config"; XDG_STATE_HOME = "${HOME}/.local/state"; XDG_CACHE_HOME = "${HOME}/.cache"; in { xdg.portal = { enable = true; xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; config.common.default = [ "*" ]; }; home-manager.users.krizej = { home.packages = with pkgs; [ xdg-user-dirs xdg-utils ]; home.sessionVariables = { XDG_DATA_HOME = "${HOME}/.local/share"; XDG_CONFIG_HOME = "${HOME}/.config"; XDG_STATE_HOME = "${HOME}/.local/state"; XDG_CACHE_HOME = "${HOME}/.cache"; # xdg crap thx poz ANDROID_USER_HOME = "${XDG_DATA_HOME}/android"; ANDROID_HOME = "${XDG_DATA_HOME}/android/sdk"; GRADLE_USER_HOME = "${XDG_DATA_HOME}/gradle"; PYTHONSTARTUP = "${XDG_CONFIG_HOME}/python/pythonrc"; HISTFILE = "${XDG_CACHE_HOME}/bash/history"; CARGO_HOME = "${XDG_DATA_HOME}/cargo"; _JAVA_OPTIONS = "-Djava.utils.prefs.userRoot=${XDG_CONFIG_HOME}/java"; GNUPGHOME = "${XDG_DATA_HOME}/gnupg"; WINEPREFIX = "${XDG_DATA_HOME}/wine"; RUSTUP_HOME = "${XDG_DATA_HOME}/rustup"; NUGET_PACKAGES = "${XDG_CACHE_HOME}/NuGetPackages"; FCEUX_HOME = "${XDG_CONFIG_HOME}/fceux"; DOTNET_CLI_HOME = "${XDG_CONFIG_HOME}/dotnet"; GTK2_RC_FILES = lib.mkForce "${XDG_CONFIG_HOME}/gtk-2.0/gtkrc"; }; xdg = { dataHome = XDG_DATA_HOME; configHome = XDG_CONFIG_HOME; stateHome = XDG_STATE_HOME; cacheHome = XDG_CACHE_HOME; userDirs = { enable = true; desktop = "${HOME}/desktop"; documents = "${HOME}/documents"; download = "${HOME}/downloads"; music = "${HOME}/music"; pictures = "${HOME}/pictures"; publicShare = "${HOME}/public"; templates = "${HOME}/templates"; videos = "${HOME}/videos"; }; configFile = { "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) ''; }; }; }; }