diff --git a/home/config/xdg/directory-spec-overrides.nix b/home/config/xdg/directory-spec-overrides.nix
index aca8122..fdf1777 100644
--- a/home/config/xdg/directory-spec-overrides.nix
+++ b/home/config/xdg/directory-spec-overrides.nix
@@ -16,10 +16,12 @@
     NODE_REPL_HISTORY = "${dataHome}/node_repl_history";
     GDB_HISTFILE = "${dataHome}/gdb_history";
     PYTHON_HISTORY = "${dataHome}/python_history";
+    HISTFILE = "${dataHome}/bash_history";
 
     GHCUP_USE_XDG_DIRS = "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";
@@ -37,9 +39,10 @@
     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";
+    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";
@@ -50,6 +53,23 @@
     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