From c7592b747b332eded1a1728e87abbc6e66b934f4 Mon Sep 17 00:00:00 2001
From: polykernel <81340136+polykernel@users.noreply.github.com>
Date: Wed, 8 Dec 2021 22:02:00 -0500
Subject: [PATCH] treewide: prefer XDG variables over dot directories
Currently, dot directories and XDG base directories are used
inconsistently in the Home Manager option declarations. This creates
ambiguity for the user as to where the location of the file should be
albeit this is rarely encountered in practice as it is sufficient to
read upstream documentation. The rationale is to make declarations
consistent and make a clear distinction between hardcoded and modular
specifications.
References to ~/.config in relevant nixpkgs modules were untouched as
the location is hardcoded upstream[1]. Furthermore, modules of
programs which do not follow XDG specifications were also untouched.
Generalization of tilde(~) expansions to $HOME were also considered,
however there isn't sufficient rationale despite the use of $HOME
being more universal. The expansion is standardized in POSIX[2] and is
essentially portable across all shells, thus there is no pragmatic
value to introducing the change.
[1] https://github.com/nixos/nixpkgs/blob/master/pkgs/top-level/impure.nix
[2] https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01
---
docs/man-home-manager.xml | 4 ++--
modules/misc/gtk.nix | 4 ++--
modules/programs/alacritty.nix | 2 +-
modules/programs/atuin.nix | 2 +-
modules/programs/beets.nix | 2 +-
modules/programs/direnv.nix | 4 ++--
modules/programs/hexchat.nix | 4 ++--
modules/programs/htop.nix | 2 +-
modules/programs/kakoune.nix | 2 +-
modules/programs/kitty.nix | 2 +-
modules/programs/lazygit.nix | 2 +-
modules/programs/lsd.nix | 2 +-
modules/programs/mangohud.nix | 4 ++--
modules/programs/mpv.nix | 6 +++---
modules/programs/ncspot.nix | 2 +-
modules/programs/noti.nix | 2 +-
modules/programs/nushell.nix | 2 +-
modules/programs/rtorrent.nix | 2 +-
modules/programs/sm64ex.nix | 2 +-
modules/programs/starship.nix | 2 +-
modules/programs/topgrade.nix | 2 +-
modules/services/grobi.nix | 4 ++--
22 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/docs/man-home-manager.xml b/docs/man-home-manager.xml
index 9f5374503..5a4f2d5d0 100644
--- a/docs/man-home-manager.xml
+++ b/docs/man-home-manager.xml
@@ -414,7 +414,7 @@
Indicates the path to the Home Manager configuration file. If not given,
- ~/.config/nixpkgs/home.nix is used.
+ $XDG_CONFIG_HOME/nixpkgs/home.nix is used.
@@ -589,7 +589,7 @@
- ~/.local/share/home-manager/news-read-ids
+ $XDG_DATA_HOME/home-manager/news-read-ids
diff --git a/modules/misc/gtk.nix b/modules/misc/gtk.nix
index 669329b7b..0b5a54d5f 100644
--- a/modules/misc/gtk.nix
+++ b/modules/misc/gtk.nix
@@ -123,7 +123,7 @@ in {
};
description = ''
Extra configuration options to add to
- ~/.config/gtk-3.0/settings.ini.
+ $XDG_CONFIG_HOME/gtk-3.0/settings.ini.
'';
};
@@ -132,7 +132,7 @@ in {
default = "";
description = ''
Extra configuration lines to add verbatim to
- ~/.config/gtk-3.0/gtk.css.
+ $XDG_CONFIG_HOME/gtk-3.0/gtk.css.
'';
};
};
diff --git a/modules/programs/alacritty.nix b/modules/programs/alacritty.nix
index d34efb775..c82d9c979 100644
--- a/modules/programs/alacritty.nix
+++ b/modules/programs/alacritty.nix
@@ -37,7 +37,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/alacritty/alacritty.yml. See
+ $XDG_CONFIG_HOME/alacritty/alacritty.yml. See
for the default configuration.
'';
diff --git a/modules/programs/atuin.nix b/modules/programs/atuin.nix
index dcf1232f8..0e5fa071d 100644
--- a/modules/programs/atuin.nix
+++ b/modules/programs/atuin.nix
@@ -60,7 +60,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/atuin/config.toml.
+ $XDG_CONFIG_HOME/atuin/config.toml.
See for the full list
of options.
diff --git a/modules/programs/beets.nix b/modules/programs/beets.nix
index a0b8a346b..fa959669c 100644
--- a/modules/programs/beets.nix
+++ b/modules/programs/beets.nix
@@ -45,7 +45,7 @@ in {
default = { };
description = ''
Configuration written to
- ~/.config/beets/config.yaml
+ $XDG_CONFIG_HOME/beets/config.yaml
'';
};
};
diff --git a/modules/programs/direnv.nix b/modules/programs/direnv.nix
index ad4c49934..5220aaa10 100644
--- a/modules/programs/direnv.nix
+++ b/modules/programs/direnv.nix
@@ -29,7 +29,7 @@ in {
default = { };
description = ''
Configuration written to
- ~/.config/direnv/config.toml.
+ $XDG_CONFIG_HOME/direnv/config.toml.
See
@@ -45,7 +45,7 @@ in {
default = "";
description = ''
Custom stdlib written to
- ~/.config/direnv/direnvrc.
+ $XDG_CONFIG_HOME/direnv/direnvrc.
'';
};
diff --git a/modules/programs/hexchat.nix b/modules/programs/hexchat.nix
index b0836758f..5971bba6e 100644
--- a/modules/programs/hexchat.nix
+++ b/modules/programs/hexchat.nix
@@ -270,7 +270,7 @@ in {
};
}'';
description = ''
- Configures ~/.config/hexchat/servlist.conf.
+ Configures $XDG_CONFIG_HOME/hexchat/servlist.conf.
'';
};
@@ -286,7 +286,7 @@ in {
};
'';
description = ''
- Configuration for ~/.config/hexchat/hexchat.conf, see
+ Configuration for $XDG_CONFIG_HOME/hexchat/hexchat.conf, see
for supported values.
'';
diff --git a/modules/programs/htop.nix b/modules/programs/htop.nix
index 1506aab5b..1c8a59312 100644
--- a/modules/programs/htop.nix
+++ b/modules/programs/htop.nix
@@ -133,7 +133,7 @@ in {
'';
description = ''
Configuration options to add to
- ~/.config/htop/htoprc.
+ $XDG_CONFIG_HOME/htop/htoprc.
'';
};
diff --git a/modules/programs/kakoune.nix b/modules/programs/kakoune.nix
index 49f259d01..d177048b9 100644
--- a/modules/programs/kakoune.nix
+++ b/modules/programs/kakoune.nix
@@ -635,7 +635,7 @@ in {
default = "";
description = ''
Extra configuration lines to add to
- ~/.config/kak/kakrc.
+ $XDG_CONFIG_HOME/kak/kakrc.
'';
};
diff --git a/modules/programs/kitty.nix b/modules/programs/kitty.nix
index 6d3d4d00d..2eefa8ab7 100644
--- a/modules/programs/kitty.nix
+++ b/modules/programs/kitty.nix
@@ -57,7 +57,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/kitty/kitty.conf. See
+ $XDG_CONFIG_HOME/kitty/kitty.conf. See
for the documentation.
'';
diff --git a/modules/programs/lazygit.nix b/modules/programs/lazygit.nix
index f2d516200..87bcdecce 100644
--- a/modules/programs/lazygit.nix
+++ b/modules/programs/lazygit.nix
@@ -32,7 +32,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/lazygit/config.yml on Linux
+ $XDG_CONFIG_HOME/lazygit/config.yml on Linux
or ~/Library/Application Support/lazygit/config.yml on Darwin. See
for supported values.
diff --git a/modules/programs/lsd.nix b/modules/programs/lsd.nix
index b5dd260e0..0b54abe3d 100644
--- a/modules/programs/lsd.nix
+++ b/modules/programs/lsd.nix
@@ -39,7 +39,7 @@ in {
};
description = ''
Configuration written to
- ~/.config/lsd/config.yaml. See
+ $XDG_CONFIG_HOME/lsd/config.yaml. See
for supported values.
'';
diff --git a/modules/programs/mangohud.nix b/modules/programs/mangohud.nix
index 0f14a8c63..ca77c07c6 100644
--- a/modules/programs/mangohud.nix
+++ b/modules/programs/mangohud.nix
@@ -55,7 +55,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/MangoHud/MangoHud.conf. See
+ $XDG_CONFIG_HOME/MangoHud/MangoHud.conf. See
for the default configuration.
'';
@@ -74,7 +74,7 @@ in {
description = ''
Sets MangoHud settings per application.
Configuration written to
- ~/.config/MangoHud/{application_name}.conf. See
+ $XDG_CONFIG_HOME/MangoHud/{application_name}.conf. See
for the default configuration.
'';
diff --git a/modules/programs/mpv.nix b/modules/programs/mpv.nix
index a53f4c40d..b37a2516a 100644
--- a/modules/programs/mpv.nix
+++ b/modules/programs/mpv.nix
@@ -90,7 +90,7 @@ in {
config = mkOption {
description = ''
Configuration written to
- ~/.config/mpv/mpv.conf. See
+ $XDG_CONFIG_HOME/mpv/mpv.conf. See
mpv1
@@ -112,7 +112,7 @@ in {
profiles = mkOption {
description = ''
Sub-configuration options for specific profiles written to
- ~/.config/mpv/mpv.conf. See
+ $XDG_CONFIG_HOME/mpv/mpv.conf. See
for more information.
'';
type = mpvProfiles;
@@ -143,7 +143,7 @@ in {
bindings = mkOption {
description = ''
Input configuration written to
- ~/.config/mpv/input.conf. See
+ $XDG_CONFIG_HOME/mpv/input.conf. See
mpv1
diff --git a/modules/programs/ncspot.nix b/modules/programs/ncspot.nix
index 7acb8d364..3b6d401e6 100644
--- a/modules/programs/ncspot.nix
+++ b/modules/programs/ncspot.nix
@@ -32,7 +32,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/ncspot/config.toml.
+ $XDG_CONFIG_HOME/ncspot/config.toml.
See
for the full list of options.
diff --git a/modules/programs/noti.nix b/modules/programs/noti.nix
index 069d87e64..d8affdd53 100644
--- a/modules/programs/noti.nix
+++ b/modules/programs/noti.nix
@@ -17,7 +17,7 @@ in {
default = { };
description = ''
Configuration written to
- ~/.config/noti/noti.yaml.
+ $XDG_CONFIG_HOME/noti/noti.yaml.
See
diff --git a/modules/programs/nushell.nix b/modules/programs/nushell.nix
index f37b889a1..4d6ab43a7 100644
--- a/modules/programs/nushell.nix
+++ b/modules/programs/nushell.nix
@@ -42,7 +42,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/nushell/config.toml.
+ $XDG_CONFIG_HOME/nushell/config.toml.
See for the full list
of options.
diff --git a/modules/programs/rtorrent.nix b/modules/programs/rtorrent.nix
index 7beeb2e42..95015e2cb 100644
--- a/modules/programs/rtorrent.nix
+++ b/modules/programs/rtorrent.nix
@@ -17,7 +17,7 @@ in {
default = "";
description = ''
Configuration written to
- ~/.config/rtorrent/rtorrent.rc. See
+ $XDG_CONFIG_HOME/rtorrent/rtorrent.rc. See
for explanation about possible values.
'';
diff --git a/modules/programs/sm64ex.nix b/modules/programs/sm64ex.nix
index a5debee18..48c1cb9be 100644
--- a/modules/programs/sm64ex.nix
+++ b/modules/programs/sm64ex.nix
@@ -80,7 +80,7 @@ in {
nullOr (attrsOf (either str (either int (either bool (listOf str)))));
default = null;
description =
- "Settings for sm64ex's ~/.local/share/sm64pc/sm64config.txt file.";
+ "Settings for sm64ex's $XDG_DATA_HOME/sm64pc/sm64config.txt file.";
example = literalExpression ''
{
fullscreen = false;
diff --git a/modules/programs/starship.nix b/modules/programs/starship.nix
index 77a9cad31..85b414130 100644
--- a/modules/programs/starship.nix
+++ b/modules/programs/starship.nix
@@ -51,7 +51,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/starship.toml.
+ $XDG_CONFIG_HOME/starship.toml.
See for the full list
of options.
diff --git a/modules/programs/topgrade.nix b/modules/programs/topgrade.nix
index 1511d4b45..ac88643d0 100644
--- a/modules/programs/topgrade.nix
+++ b/modules/programs/topgrade.nix
@@ -42,7 +42,7 @@ in {
'';
description = ''
Configuration written to
- ~/.config/topgrade.toml.
+ $XDG_CONFIG_HOME/topgrade.toml.
See for the full list
of options.
diff --git a/modules/services/grobi.nix b/modules/services/grobi.nix
index 2f6431099..d90b7244a 100644
--- a/modules/services/grobi.nix
+++ b/modules/services/grobi.nix
@@ -24,7 +24,7 @@ in {
Commands to be run after an output configuration was
changed. The Nix value declared here will be translated to
JSON and written to the key
- in ~/.config/grobi.conf.
+ in $XDG_CONFIG_HOME/grobi.conf.
'';
};
@@ -64,7 +64,7 @@ in {
for more information. The Nix value declared here will be
translated to JSON and written to the
- key in ~/.config/grobi.conf.
+ key in $XDG_CONFIG_HOME/grobi.conf.
'';
};
};