Skip to content

Follow XDG Base Directory standard#5588

Merged
thufschmitt merged 1 commit intoNixOS:masterfrom
tweag:balsoft/xdg
Feb 10, 2023
Merged

Follow XDG Base Directory standard#5588
thufschmitt merged 1 commit intoNixOS:masterfrom
tweag:balsoft/xdg

Conversation

@balsoft
Copy link
Member

@balsoft balsoft commented Nov 17, 2021

XDG Base Directory is a standard for locations for storing various
files. Nix has a few files which seem to fit in the standard, but
currently use a custom location directly in the user's ~, polluting
it:

  • ~/.nix-profile
  • ~/.nix-defexpr
  • ~/.nix-channels

This pull request makes new Nix installations follow the XDG spec and
instead use the following locations:

  • $XDG_DATA_HOME/nix/profile
  • $XDG_DATA_HOME/nix/defexpr
  • $XDG_DATA_HOME/nix/channels

If $XDG_DATA_HOME is not set, it is assumed to be ~/.local/share.

Old locations are preferred if they exist, but for new installations
(or after cleaning the home dir) new, XDG-conformant locations are
used by default.

Closes #1079

Checklist for maintainers

  • agreed on idea
  • agreed on implementation strategy
  • unit tests (no substantial change in behavior)
  • functional tests (tests/**.sh)~~ (no substantial change in behavior)
  • documentation in the manual
  • code and comments are self-explanatory
  • commit message explains why the change was made
  • new feature or incompatible change: updated release notes

@kanashimia
Copy link
Member

Just as a note - this is a breaking for tooling that relies on this, like nixos-infect

Also this PR is related: #5226

@Ericson2314
Copy link
Member

Very excited for this and #5226! Before it was argued that "well, nix channel is getting deprecated anyways", but I agree it is better to do this anyways, it's just a good look 😎.

# shellcheck source=./nix-profile.sh.in
. "$nix/etc/profile.d/nix.sh"

NIX_LINK=$HOME/.nix-profile
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is it called "NIX_LINK", instead of something like NIX_PROFILE_DIR?
That's really a nitpick, but you've asked to read it through)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because it was named like that in some other place :)

I suppose this is a good opportunity to rename the var.

@edolstra
Copy link
Member

A few notes:

  • ~/.nix-defexpr and ~/.nix-channels are legacy, so I don't know if we should risk introducing churn/breakage for something that will eventually get replaced anyway. The nix command doesn't use them anymore.
  • nix profile does use ~/.nix-profile, but maybe we should get rid of that as well and use /nix/var/nix/profiles/default or /nix/var/nix/profiles/per-user/$USER/default directly. The only reason why the ~/.nix-profile indirection exists is to support nix-env --switch-profile, but I don't think anybody uses that, and nix profile has no equivalent command.

@balsoft
Copy link
Member Author

balsoft commented Nov 18, 2021

I don't know if we should risk introducing churn/breakage for something that will eventually get replaced anyway

Everything will be replaced eventually. I think channels are still going to be here for a while, so it'd be nice to not pollute user's home directories in the meantime.

nix profile does use ~/.nix-profile, but maybe we should get rid of that as well and use /nix/var/nix/profiles/default or /nix/var/nix/profiles/per-user/$USER/default directly.

Sure! #5226 should handle that. I'll help merge the two together if needed.

@balsoft
Copy link
Member Author

balsoft commented Nov 18, 2021

Note: this PR needs a corresponding nixpkgs change.

NIX_LINK="$NIX_LINK_NEW"
else
if [ -e "$NIX_LINK_NEW" ]; then
warning="\033[1;35mwarning:\033[0m"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if we want to check if the terminal supports those escape sequences but I bet it would be safe to assume it does.


```console
$ nix-store -q --graph ~/.nix-profile | dot -Tps > graph.ps
$ nix-store -q --graph $XDG_DATA_HOME/nix/profile | dot -Tps > graph.ps
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Examples shouldn't use XDG_DATA_HOME because it may not be set (it isn't on my system). It's better to just use ~/.local/share/nix/profile in examples since very few people will use something else.

Maybe the same applies to the documentation, since references to $XDG_DATA_HOME/nix/profile are harder to understand than ~/.local/share/nix/profile.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fully agree for this example here, but for documentation I think it's important to let the people know we're (kinda) following the XDG spec and not just putting things in ~/.local/share.

@Artturin
Copy link
Member

Artturin commented Nov 19, 2021

* `nix profile` does use `~/.nix-profile`, but maybe we should get rid of that as well and use `/nix/var/nix/profiles/default` or `/nix/var/nix/profiles/per-user/$USER/default` directly. The only reason why the `~/.nix-profile` indirection exists is to support `nix-env --switch-profile`, but I don't think anybody uses that, and `nix profile` has no equivalent command.

please don't get rid of *nix-profile many users depend on it
some of them can be seen with my doc-repos script
https://gist.github.com/450c2c81c1d94adb952bcb6f2da322b1
and even more in github search https://github.com/search?q=.nix-profile&type=code

idea: NixOS/nixpkgs#146515 (comment)

balsoft added a commit to tweag/nixpkgs that referenced this pull request Nov 22, 2021
@pasqui23
Copy link
Contributor

Also I would argue that .nix-profile is actually state and it should go somewhere in XDG_STATE_HOME (default: ~/.local/state)

expressions from each subscribed channel in this directory.

- `~/.nix-profile`\
- `$XDG_DATA_HOME/nix/profile`\
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `$XDG_DATA_HOME/nix/profile`\
- `$XDG_STATE_HOME/nix/profile`\

symlink points to `prefix/var/nix/profiles/default`. The `PATH`
environment variable should include `~/.nix-profile/bin` for the
user environment to be visible to the user.
environment variable should include `$XDG_DATA_HOME/nix/bin` for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
environment variable should include `$XDG_DATA_HOME/nix/bin` for
environment variable should include `$XDG_STATE_HOME/nix/bin` for


This operation makes *path* the current profile for the user. That is,
the symlink `~/.nix-profile` is made to point to *path*.
the symlink `$XDG_DATA_HOME/nix/profile` (or `~/.nix-profile`, if it
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the symlink `$XDG_DATA_HOME/nix/profile` (or `~/.nix-profile`, if it
the symlink `$XDG_STATE_HOME/nix/profile` (or `~/.nix-profile`, if it

Location of the Nix profile. Defaults to the target of the symlink
`~/.nix-profile`, if it exists, or `/nix/var/nix/profiles/default`
otherwise.
`~/.nix-profile`, if it exists, or `$XDG_DATA_HOME/nix/profile`,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`~/.nix-profile`, if it exists, or `$XDG_DATA_HOME/nix/profile`,
`~/.nix-profile`, if it exists, or `$XDG_STATE_HOME/nix/profile`,


```console
$ nix-store -q --graph ~/.nix-profile | dot -Tps > graph.ps
$ nix-store -q --graph ~/.local/share/nix/profile | dot -Tps > graph.ps
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
$ nix-store -q --graph ~/.local/share/nix/profile | dot -Tps > graph.ps
$ nix-store -q --graph ~/.local/state/nix/profile | dot -Tps > graph.ps

# Do an install.
nix-env -i dependencies-top
[ -e $TEST_HOME/.nix-profile/foobar ]
[ -e $TEST_HOME/.local/share/nix/profile/foobar ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[ -e $TEST_HOME/.local/share/nix/profile/foobar ]
[ -e $TEST_HOME/.local/state/nix/profile/foobar ]

Comment on lines 56 to 59
ln -s $(readlink $TEST_HOME/.local/share/nix/profile) $TEST_HOME/.nix-profile
cp -r $TEST_HOME/.local/share/nix/defexpr $TEST_HOME/.nix-defexpr
cp -r $TEST_HOME/.local/share/nix/channels $TEST_HOME/.nix-channels
rm -rf $TEST_HOME/.local/share/nix
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ln -s $(readlink $TEST_HOME/.local/share/nix/profile) $TEST_HOME/.nix-profile
cp -r $TEST_HOME/.local/share/nix/defexpr $TEST_HOME/.nix-defexpr
cp -r $TEST_HOME/.local/share/nix/channels $TEST_HOME/.nix-channels
rm -rf $TEST_HOME/.local/share/nix
ln -s $(readlink $TEST_HOME/.local/state/nix/profile) $TEST_HOME/.nix-profile
cp -r $TEST_HOME/.local/state/nix/defexpr $TEST_HOME/.nix-defexpr
cp -r $TEST_HOME/.local/state/nix/channels $TEST_HOME/.nix-channels
rm -rf $TEST_HOME/.local/state/nix

# Do an install.
nix-env -i dependencies-top
[ -e $TEST_HOME/.nix-profile/foobar ]
! [ -e $TEST_HOME/.local/share/nix ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
! [ -e $TEST_HOME/.local/share/nix ]
! [ -e $TEST_HOME/.local/state/nix ]


mkdir -p $TEST_HOME
nix-env --switch-profile $profiles/test
stat $HOME/.local/share/nix/profile
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
stat $HOME/.local/share/nix/profile
stat $HOME/.local/state/nix/profile

Comment on lines 24 to 26
rm -rf $HOME/.local/share/nix/defexpr
mkdir -p $HOME/.local/share/nix
ln -s $(pwd)/user-envs.nix $HOME/.local/share/nix/defexpr
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
rm -rf $HOME/.local/share/nix/defexpr
mkdir -p $HOME/.local/share/nix
ln -s $(pwd)/user-envs.nix $HOME/.local/share/nix/defexpr
rm -rf $HOME/.local/state/nix/defexpr
mkdir -p $HOME/.local/state/nix
ln -s $(pwd)/user-envs.nix $HOME/.local/state/nix/defexpr

@edolstra
Copy link
Member

I hadn't heard of XDG_STATE_HOME. It appears to have been introduced just a few months ago: https://www.reddit.com/r/linux/comments/ny34vs/new_xdg_state_home_in_xdg_base_directory_spec/. It does fill a gap since ~/.local/share always seemed a bit overloaded.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/tweag-nix-dev-update-22/16251/1

@Ericson2314
Copy link
Member

I agree XDG_STATE_HOME is better.

As to ~/.nix-profile seems pretty clear to me that we should keep it for now, but we can make it optional, since we have good defaults to fall back upon. Even if we did want to get rid of it, I think that should be done in a separate PR as a separate change.

That said, I don't think it needs an XDG equivalent. One can always symlink $XDG_STATE_DIR/nix/profile itself to achieve the same effect, right?

@colemickens
Copy link
Member

colemickens commented Mar 8, 2022

Big +1 on this PR -- .ssh (wontfix) and .mozilla (finally getting worked on after 18 years) are my last two standouts besides nix.

By the way, it seems like PipeWire is using the new XDG state dir, too.

~ls -al ~/.local/state
total 2
drwx------ 4 cole cole 4 Mar  4 01:53 .
drwxr-xr-x 4 cole cole 4 Nov 26 22:47 ..
drwx------ 3 cole cole 3 Nov 26 22:47 pipewire
drwx------ 2 cole cole 4 Mar  8 13:17 wireplumber

EDIT: Per Artturin on Matrix, volta is also using the state dir.

@colemickens
Copy link
Member

I don't want to be too greedy, but I'd happily run this on my systems if it were rebased and applied against nixUnstable easily.

@Artturin
Copy link
Member

Artturin commented Mar 8, 2022

rebased and applied @pasqui23 suggestions of switching to $XDG_STATE_HOME
https://github.com/Artturin/nix/commits/rebasedxdg

@Ericson2314
Copy link
Member

Ericson2314 commented Mar 9, 2022

@Artturin perhaps you want to open a fresh PR?

@balsoft
Copy link
Member Author

balsoft commented Mar 9, 2022

Thanks @Artturin , pushed your version here

@Ericson2314
Copy link
Member

Oh good! This is better.

Comment on lines 167 to 168
createDirs(getStateDir() + "/nix");
channelsList = getStateDir() + "/nix/channels";
Copy link
Member

@Ericson2314 Ericson2314 Mar 9, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
createDirs(getStateDir() + "/nix");
channelsList = getStateDir() + "/nix/channels";
auto dir = getStateDir() + "/nix";
createDirs(dir);
channelsList = dir + "/channels";

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied your suggestions in my branch

@cole-h
Copy link
Member

cole-h commented Feb 28, 2023

I think this broke some stuff unintentionally. nix-env doesn't appear to work without the --use-xdg-base-directories flag passed to it in 2.14.0:

image

^ without --use-xdg-base-directories

image

^ with --use-xdg-base-directories

@balsoft
Copy link
Member Author

balsoft commented Feb 28, 2023

Wow, sorry about that. I wonder why the tests passed :/

@balsoft
Copy link
Member Author

balsoft commented Feb 28, 2023

Actually, do you still have ~/.nix-profile/bin in your $PATH?

Could you check the ~/.nix-profile/bin and see if it contains editorchecker-config?

I can't reproduce this with 2.14.0pre20230213_c205d10 (which does include this PR)

@cole-h

@balsoft
Copy link
Member Author

balsoft commented Feb 28, 2023

Can't reproduce with 2.14.0 either:

❯ nix shell nix/2.14.0
❯ nix-env --version
nix-env (Nix) 2.14.0
❯ command -v editorconfig-checker
 ✘ 1
❯ nix-env -iA editorconfig-checker -f '<nixpkgs>' -I nixpkgs=flake:np --extra-experimental-features flakes --no-use-xdg-base-directories
installing 'editorconfig-checker-2.7.0'
❯ command -v editorconfig-checker
/home/balsoft/.nix-profile/bin/editorconfig-checker

This is NixOS, so maybe other distros are broken?

@cole-h
Copy link
Member

cole-h commented Feb 28, 2023

I can confirm editorconfig-checker is in ~/.nix-profile/bin, but that directory is NOT in $PATH. Maybe this was another patch in the 2.14 series, I'll see if I can bisect.

I think this is an issue in the install scripts after all. Sorry for the noise 😅

@balsoft
Copy link
Member Author

balsoft commented Feb 28, 2023

Ah, this might be the problem: https://github.com/NixOS/nix/pull/5588/files#diff-68e663aabb64bc761187fcc02c1e8fc085109072294796a9cd6af4df20205f38R12

If you don't have ~/.nix-profile, the new location will be used. But this doesn't quite make sense for your issue, I would expect it to be broken the other way round :)

@cole-h
Copy link
Member

cole-h commented Feb 28, 2023

For the moment, I plan on putting the fire out with NixOS/nixpkgs#218858 (using nix-shell instead of nix-env) and will continue chasing this down shortly.

EDIT: I haven't tested myself on NixOS, but I reproduced this in an Ubuntu VM and GitHub Actions CI, both of which use the installer scripts, etc.

@cole-h
Copy link
Member

cole-h commented Feb 28, 2023

OK, finished bisecting earlier, and this PR is indeed the culprit:

vin@scadrial ~/w/v/nix ((2384d360)|BISECTING) 48ms> git bisect skip
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
2384d360839e27edb3c928da858ec911415c8b4d
9ebbe35817a7f7becf77d9f0cd76c54d693f6f28
We cannot bisect more!

(where 2384d36 is the actual commit and 9ebbe35 is the merge; I had to skip a few since I was relying on the installer tests action)

Currently in the middle of trying things manually in a VM (which is a bit of a pain, since I'm relying on the installer tests CI stuff to upload the install script and tarball somewhere that I can curl instead of figuring out how to not do that). I hope to have a fix tomorrow (if nobody else has found one by then).

FWIW, directly after installing, these are the PATHs (maybe expected, but figured it wouldn't hurt to know for sure):

2.13.3 PATH: /home/ubuntu/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
2.14.0 PATH: /home/ubuntu/.local/state/nix/profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

full bisect log
git bisect start
# status: waiting for both good and bad commits
# good: [9bf0baa7f4719aa577ee366aeb3e641e6d755f8f] Bump version
git bisect good 9bf0baa7f4719aa577ee366aeb3e641e6d755f8f
# status: waiting for bad commit, 1 good commit known
# bad: [71a619642d634438cde1db6c545cf1d01bc29aa5] Bump version
git bisect bad 71a619642d634438cde1db6c545cf1d01bc29aa5
# good: [deb35c84b30b257fd9ffa4f4450d4d73a35bbdc9] Merge pull request #7612 from edolstra/release-notes
git bisect good deb35c84b30b257fd9ffa4f4450d4d73a35bbdc9
# good: [0d73313c55497f32dcff1546f0f0625391f7a833] Merge pull request #7318 from fricklerhandwerk/doc-instantiate
git bisect good 0d73313c55497f32dcff1546f0f0625391f7a833
# bad: [707ba52f2d1855f2613da3a576488f5040843915] Merge pull request #7830 from yorickvP/fix-writable-etc
git bisect bad 707ba52f2d1855f2613da3a576488f5040843915
# good: [5597d68e2d73a3b89ff36fcfeac82d7fe7d4f384] Merge pull request #7754 from obsidiansystems/narrower-scope-derivation-flag
git bisect good 5597d68e2d73a3b89ff36fcfeac82d7fe7d4f384
# bad: [c18456604601dd233be4ad2462474488ef8f87e3] Merge pull request #7797 from hercules-ci/tests-set-ps4
git bisect bad c18456604601dd233be4ad2462474488ef8f87e3
# good: [bffb76264ee24611de17d4ecf3fb8b625a564652] Merge pull request #7800 from PicoGeyer/patch-1
git bisect good bffb76264ee24611de17d4ecf3fb8b625a564652
# skip: [a21405a4e8a5ca4bfbe8df8de2f76d69c4608a9f] Add regression test
git bisect skip a21405a4e8a5ca4bfbe8df8de2f76d69c4608a9f
# bad: [67451d8ed797d1bd5fb69f6218ea686761ad13b0] Merge pull request #7802 from edolstra/fix-7783
git bisect bad 67451d8ed797d1bd5fb69f6218ea686761ad13b0
# skip: [c49b7472eaa7a6501aa937b40f80702ecf0f43e6] Fix macOS build
git bisect skip c49b7472eaa7a6501aa937b40f80702ecf0f43e6
# bad: [9ebbe35817a7f7becf77d9f0cd76c54d693f6f28] Merge pull request #5588 from tweag/balsoft/xdg
git bisect bad 9ebbe35817a7f7becf77d9f0cd76c54d693f6f28
# skip: [2384d360839e27edb3c928da858ec911415c8b4d] A setting to follow XDG Base Directory standard
git bisect skip 2384d360839e27edb3c928da858ec911415c8b4d
# only skipped commits left to test
# possible first bad commit: [9ebbe35817a7f7becf77d9f0cd76c54d693f6f28] Merge pull request #5588 from tweag/balsoft/xdg
# possible first bad commit: [2384d360839e27edb3c928da858ec911415c8b4d] A setting to follow XDG Base Directory standard

@cole-h
Copy link
Member

cole-h commented Mar 1, 2023

Maybe-not-perfect fix is up: #7925

Copy link

@mikeland73 mikeland73 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When XDG is not set, we set
NIX_LINK_NEW=$HOME/.local/state/nix/profile

but I think it should be

NIX_LINK_NEW=$HOME/.local/state/nix/profiles/profile/ ?

(at least that seems to be where nix is creating profile symlink in 2.14.0)

if [ -n "$XDG_STATE_HOME" ]; then
NIX_LINK_NEW="$XDG_STATE_HOME/nix/profile"
else
NIX_LINK_NEW=$HOME/.local/state/nix/profile

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be NIX_LINK_NEW=$HOME/.local/state/nix/profiles/profile/ ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does make you think we want to profile/profiles? That looks like a bug to me.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SuperSandro2000 I'm not familiar with the nix source code, but when I do a single user install on a fresh docker ubuntu, nix adds the following sym link:

~/.nix-profile -> ~/.local/state/nix/profiles/profile

Do we not want this value to match that?

If ~/.nix-profile doesn't exist and $XDG_STATE_HOME is not set, we end up with NIX_LINK_NEW=$HOME/.local/state/nix/profile but this link target doesn't exist on my install.

Copy link
Member

@ncfavier ncfavier Mar 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like there is both ~/.local/share/nix/profiles/profile and ~/.local/state/nix/profile. The former is the actual profile, the latter is a symlink to it. I think this should be simplified by putting the profiles in state and removing the useless indirection (compatibility is only needed for ~/.nix-profile when not using xdg-base-dirs)

(Or keep the profiles in share, we've had enough breakage already)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this is what I called out in #5588 (comment). I think rather than trying to support 4(!) combinations, we should do all the XDG stuff (this and home directories) together so there are just 2 combinations.

@ncfavier
Copy link
Member

ncfavier commented Mar 1, 2023

Another seemingly related failure in home-manager even after bumping install-nix-action to v20:

error: opening lock file '/nix/var/nix/profiles/per-user/runner/home-manager.lock': No such file or directory

@balsoft
Copy link
Member Author

balsoft commented Mar 1, 2023

@ncfavier I think that might be more related to #5226

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/tweag-nix-dev-update-45/26397/1

@asymmetric
Copy link
Contributor

For those wondering, this landed in 2.14.0.

@balsoft
Copy link
Member Author

balsoft commented Mar 16, 2023

2.14.0 is still broken (although now for different reasons). The current installed still points to 2.13.3.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/nix-team-report-2022-10-2023-03/27486/1

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/intentional-side-effects-of-package-installation/42224/3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Feature request or proposal UX The way in which users interact with Nix. Higher level than UI.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Does nix has a plan to comply with XDG Base Directory Spec?