refactor: fix tty sessions losing paths for env vars

This commit is contained in:
2026-10-23 16:22:25 -04:00
parent 349ab6df42
commit 768d06a190
5 changed files with 50 additions and 34 deletions
+47
View File
@@ -0,0 +1,47 @@
{
config,
lib,
pkgs,
osConfig,
...
}:
let
home = config.home.homeDirectory;
isLinux = pkgs.stdenv.hostPlatform.isLinux;
runtimeDir = "/run/user/${toString osConfig.users.users.${config.home.username}.uid}";
vars = {
XDG_CACHE_HOME = "${home}/.cache";
XDG_CONFIG_HOME = "${home}/.config";
XDG_DATA_HOME = "${home}/.local/share";
XDG_STATE_HOME = "${home}/.local/state";
ANDROID_USER_HOME = "${home}/.local/share/android";
AZURE_CONFIG_DIR = "${home}/.local/share/azure";
NPM_CONFIG_INIT_MODULE = "${home}/.config/npm/config/npm-init.js";
NPM_CONFIG_CACHE = "${home}/.cache/npm";
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${home}/.config/java";
PYTHON_HISTORY = "${home}/.local/state/python_history";
HISTFILE = "${home}/.local/state/bash/history";
DOTNET_ROOT = "${pkgs.dotnet-sdk}/share/dotnet";
DOTNET_CLI_HOME = "${home}/.local/share/dotnet";
GTK2_RC_FILES = "${home}/.config/gtk-2.0/gtkrc";
WINEPREFIX = "${home}/.local/share/wine";
};
linuxVars = {
NPM_CONFIG_TMP = "${runtimeDir}/npm";
};
in
{
home.sessionVariables = vars // lib.optionalAttrs isLinux linuxVars;
systemd.user.sessionVariables = lib.mkIf isLinux (vars // linuxVars);
}
+1
View File
@@ -5,6 +5,7 @@
users.frank = {
isNormalUser = true;
uid = 1000;
description = "Frank LoTurco";
hashedPasswordFile = config.sops.secrets.password_hash.path;
-1
View File
@@ -16,7 +16,6 @@
sessionVariables = {
WINE = "${pkgs.wineWow64Packages.full}/bin/.wine";
WINEPREFIX = "$XDG_DATA_HOME/wine";
WINEDEBUG = "-all";
};
};
+1 -33
View File
@@ -1,40 +1,8 @@
# Enforce XDG directory spec for configuration files
{ pkgs }:
rec {
XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
{
XDG_DATA_DIRS = [
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
];
# Android
ANDROID_USER_HOME = "$XDG_DATA_HOME/android";
# Azure
AZURE_CONFIG_DIR = "$XDG_DATA_HOME/azure";
# NodeJS / npm
NPM_CONFIG_INIT_MODULE = "$XDG_CONFIG_HOME/npm/config/npm-init.js";
NPM_CONFIG_CACHE = "$XDG_CACHE_HOME/npm";
NPM_CONFIG_TMP = "$XDG_RUNTIME_DIR/npm";
# Java
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java";
# Python
PYTHON_HISTORY = "$XDG_STATE_HOME/python_history";
# BASH
HISTFILE = "$XDG_STATE_HOME/bash/history";
# .NET
DOTNET_ROOT = "${pkgs.dotnet-sdk}/share/dotnet";
DOTNET_CLI_HOME = "$XDG_DATA_HOME/dotnet";
# GTK
GTK2_RC_FILES = "$XDG_CONFIG_HOME/gtk-2.0/gtkrc";
}