diff --git a/features/xdg.nix b/features/xdg.nix new file mode 100644 index 0000000..0b2084f --- /dev/null +++ b/features/xdg.nix @@ -0,0 +1,40 @@ +# Enforce XDG directory spec for configuration files +{ pkgs }: +{ + 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"; +} diff --git a/hosts/shared/darwin.nix b/hosts/shared/darwin.nix index 54b0729..c235709 100644 --- a/hosts/shared/darwin.nix +++ b/hosts/shared/darwin.nix @@ -50,14 +50,8 @@ }; environment = { - variables = rec { - XDG_CACHE_HOME = "$HOME/.cache"; - XDG_CONFIG_HOME = "$HOME/.config"; - XDG_DATA_HOME = "$HOME/.local/share"; - XDG_STATE_HOME = "$HOME/.local/state"; - }; - shellAliases = import ../../features/aliases.nix { inherit pkgs; }; + variables = import ../../features/xdg.nix { inherit pkgs; }; systemPackages = with pkgs; [ wget diff --git a/hosts/shared/nixos-pc.nix b/hosts/shared/nixos-pc.nix index 862bf1a..920dc1c 100644 --- a/hosts/shared/nixos-pc.nix +++ b/hosts/shared/nixos-pc.nix @@ -119,9 +119,6 @@ }; }; - # Completely disable xserver support (RIP X11). - xserver.enable = false; - # Enable KMSCON DRM TTY. kmscon = { enable = true; @@ -346,6 +343,8 @@ nixpkgs = { config.allowUnfree = true; + + # Fix msitools compiling and failing it's test-suite. overlays = [ (final: prev: { msitools = prev.msitools.overrideAttrs (old: { @@ -428,28 +427,7 @@ ]; shellAliases = import ../../features/aliases.nix { inherit pkgs; }; - - sessionVariables = 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_USER_HOME = "$XDG_DATA_HOME/android"; - AZURE_CONFIG_DIR = "$XDG_DATA_HOME/azure"; - 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_OPTIONS = "-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java"; - PYTHON_HISTORY = "$XDG_STATE_HOME/python_history"; - HISTFILE = "$XDG_STATE_HOME/bash/history"; - GTK2_RC_FILES = "$XDG_CONFIG_HOME/gtk-2.0/gtkrc"; - }; + sessionVariables = import ../../features/xdg.nix { inherit pkgs; }; }; system.stateVersion = "26.05"; diff --git a/hosts/shared/nixos-server.nix b/hosts/shared/nixos-server.nix index 33d1f54..305e557 100644 --- a/hosts/shared/nixos-server.nix +++ b/hosts/shared/nixos-server.nix @@ -193,29 +193,7 @@ ]; shellAliases = import ../../features/aliases.nix { inherit pkgs; }; - - sessionVariables = 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}" - ]; - - AZURE_CONFIG_DIR = "$XDG_DATA_HOME/azure"; - 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_OPTIONS = "-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java"; - PYTHON_HISTORY = "$XDG_STATE_HOME/python_history"; - HISTFILE = "$XDG_STATE_HOME/bash/history"; - DOTNET_ROOT = "${pkgs.dotnet-sdk}/share/dotnet"; - DOTNET_CLI_HOME = "$XDG_DATA_HOME/dotnet"; - GTK2_RC_FILES = "$XDG_CONFIG_HOME/gtk-2.0/gtkrc"; - }; + sessionVariables = import ../../features/xdg.nix { inherit pkgs; }; }; nix = {