106 lines
3.8 KiB
Nix
106 lines
3.8 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
{
|
|
nix.settings.use-xdg-base-directories = true;
|
|
|
|
home.preferXdgDirectories = true;
|
|
|
|
home.sessionVariables = let
|
|
inherit (config.xdg) dataHome cacheHome configHome userDirs;
|
|
runtimeDir = "/run/user/${toString config.home.uid}";
|
|
in {
|
|
TEXMFHOME = "${dataHome}/texmf";
|
|
TEXMFVAR = "${cacheHome}/texlive";
|
|
TEXMFCONFIG = "${configHome}/texlive";
|
|
|
|
EM_CONFIG = "${configHome}/emscripten/config";
|
|
EM_CACHE = "${cacheHome}/emscripten/cache";
|
|
EM_PORTS = "${dataHome}/emscripten/cache";
|
|
|
|
PSQL_HISTORY = "${dataHome}/psql_history";
|
|
MYSQL_HISTFILE = "${dataHome}/mysql_history";
|
|
NODE_REPL_HISTORY = "${dataHome}/node_repl_history";
|
|
GDB_HISTFILE = "${dataHome}/gdb_history";
|
|
HISTFILE = "${dataHome}/bash_history";
|
|
CALCHISTFILE = "${dataHome}/calc_history";
|
|
|
|
GHCUP_USE_XDG_DIRS = "true";
|
|
MIX_XDG = "true";
|
|
|
|
__GL_SHADER_DISK_CACHE_PATH = "${cacheHome}/nv";
|
|
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${configHome}/java";
|
|
ANDROID_USER_HOME = "${dataHome}/android";
|
|
AZURE_CONFIG_DIR = "${dataHome}/azure";
|
|
BZRPATH = "${configHome}/bazaar";
|
|
BZR_PLUGIN_PATH = "${dataHome}/bazaar";
|
|
BZR_HOME = "${cacheHome}/bazaar";
|
|
CUDA_CACHE_PATH = "${cacheHome}/nv";
|
|
DISCORD_USER_DATA_DIR = "${dataHome}/discord";
|
|
DOCKER_CONFIG = "${configHome}/docker";
|
|
DOTNET_CLI_HOME = "${dataHome}/dotnet";
|
|
DOT_SAGE = "${configHome}/sagemath";
|
|
ELM_HOME = "${configHome}/";
|
|
FFMPEG_DATADIR = "${configHome}/ffmpeg";
|
|
GOCACHE = "${cacheHome}/go/build";
|
|
GOMODCACHE = "${cacheHome}/go/mod";
|
|
GOPATH = "${dataHome}/go";
|
|
GRIPHOME = "${configHome}/grip";
|
|
GRADLE_USER_HOME = "${dataHome}/gradle";
|
|
ICEAUTHORITY = "${cacheHome}/ICEauthority";
|
|
NIMBLE_DIR = "${dataHome}/nimble";
|
|
NLTK_DATA = "${dataHome}/nltk_data";
|
|
NPM_CONFIG_CACHE = "${cacheHome}/npm";
|
|
NPM_CONFIG_INIT_MODULE = "${configHome}/npm/config/npm-init.js";
|
|
NPM_CONFIG_TMP = "${runtimeDir}/npm";
|
|
NODE_COMPILE_CACHE = "${cacheHome}/node-compile-cache";
|
|
NRFUTIL_HOME = "${dataHome}/nrfutil";
|
|
NUGET_PACKAGES = "${cacheHome}/nuget-packages";
|
|
PARALLEL_HOME = "${configHome}/parallel";
|
|
PGPASSFILE = "${configHome}/pg/pgpass";
|
|
PSQLRC = "${configHome}/pg/psqlrc";
|
|
PYENV_ROOT = "${dataHome}/pyenv";
|
|
RUFF_CACHE_DIR = "${cacheHome}/ruff";
|
|
RUSTUP_HOME = "${dataHome}/rustup";
|
|
RYE_HOME = "${dataHome}/rye";
|
|
STACK_ROOT = "${dataHome}/stack";
|
|
W3M_DIR = "${dataHome}/w3m";
|
|
WINEPREFIX = "${dataHome}/wine";
|
|
|
|
SBT_OPTS = lib.concatStringsSep " " [
|
|
"-Dsbt.ivy.home=${cacheHome}/ivy"
|
|
"-Dsbt.boot.directory=${cacheHome}/sbt/boot"
|
|
"-Dsbt.preloaded=${cacheHome}/sbt/preloaded"
|
|
"-Dsbt.global.base=${cacheHome}/sbt"
|
|
"-Dsbt.global.staging=${cacheHome}/sbt/staging"
|
|
"-Dsbt.global.zinc=${cacheHome}/sbt/zinc"
|
|
"-Dsbt.dependency.base=${cacheHome}/sbt/dependency"
|
|
"-Dsbt.repository.config=${configHome}/sbt/repositories"
|
|
"-Dsbt.global.settings=${configHome}/sbt/global"
|
|
"-Dsbt.global.plugins=${configHome}/sbt/plugins"
|
|
"-Dmaven.repo.local=${cacheHome}/maven/repository"
|
|
"-Divy.settings.dir=${configHome}/ivy2"
|
|
"-Divy.home=${cacheHome}/ivy2"
|
|
"-Divy.cache.dir=${cacheHome}/ivy2/cache"
|
|
];
|
|
|
|
# TODO: these needs to be set before the user session has fully initialized
|
|
# XINITRC = "$XDG_CONFIG_HOME/x11/initrc";
|
|
# XAUTHORITY
|
|
# ERRFILE = "${cacheHome}/X11/xsession-errors";
|
|
# USERXSESSION
|
|
# XCOMPOSECACHE="${cacheHome}/X11/xcompose";
|
|
# XCURSOR_PATH
|
|
};
|
|
|
|
xdg.configFile = {
|
|
"npm/npmrc".text = ''
|
|
prefix=${config.xdg.dataHome}/npm
|
|
cache=${config.xdg.cacheHome}/npm
|
|
init-module=${config.xdg.configHome}/npm/config/npm-init.js
|
|
'';
|
|
"bpython/config".text = ''
|
|
[general]
|
|
hist_file = ${config.xdg.dataHome}/bpython_history
|
|
'';
|
|
};
|
|
}
|