Nix/src/libutil
Alexander Bantyev 2384d36083
A setting to follow XDG Base Directory standard
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 commit adds a config option (use-xdg-base-directories) to follow
the XDG spec and instead use the following locations:

- $XDG_STATE_HOME/nix/profile
- $XDG_STATE_HOME/nix/defexpr
- $XDG_STATE_HOME/nix/channels

If $XDG_STATE_HOME is not set, it is assumed to be ~/.local/state.

Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
Co-authored-by: Tim Fenney <kodekata@gmail.com>
Co-authored-by: pasqui23 <pasqui23@users.noreply.github.com>
Co-authored-by: Artturin <Artturin@artturin.com>
Co-authored-by: John Ericson <Ericson2314@Yahoo.com>
2023-02-10 20:14:06 +04:00
..
tests Fix url parsing for urls using file+ 2023-01-20 10:31:26 +01:00
abstract-setting-to-json.hh reproducibility: hide non-reproducible settings from manual 2021-12-01 17:25:58 +01:00
ansicolor.hh Change warnings from yellow to magenta 2021-09-14 10:42:29 +02:00
archive.cc Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
archive.hh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
args.cc Trim option descriptions 2022-09-13 16:58:32 +02:00
args.hh Fix flake input completion for InstallablesCommands 2022-07-11 15:13:51 +02:00
callback.hh Move Callback into its own header 2020-09-21 18:42:21 +02:00
canon-path.cc Add CanonPath wrapper to represent canonicalized paths 2022-12-12 19:57:32 +01:00
canon-path.hh Fix CanonPath::dirOf() returning a string_view of a temporary 2022-12-23 15:32:54 +01:00
cgroup.cc Clean up cgroup handling in getMaxCPU() 2022-12-02 12:59:13 +01:00
cgroup.hh Clean up cgroup handling in getMaxCPU() 2022-12-02 12:59:13 +01:00
chunked-vector.hh Fix the darwin build 2022-04-22 10:56:56 +02:00
closure.hh Extract a generic computeClosure function 2021-05-19 11:44:58 +02:00
comparator.hh Recursively substitute the realisations 2021-05-26 18:44:17 +02:00
compression.cc Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
compression.hh Get rid of std::shared_ptr<std::string> and ref<std::string> 2022-01-18 11:12:30 +01:00
compute-levels.cc Add x86_64 compute levels as additional system types 2021-02-22 09:11:15 +01:00
compute-levels.hh Add x86_64 compute levels as additional system types 2021-02-22 09:11:15 +01:00
config.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
config.hh reproducibility: hide non-reproducible settings from manual 2021-12-01 17:25:58 +01:00
error.cc Revert "Revert "Merge pull request #6204 from layus/coerce-string"" 2023-01-19 13:23:04 +01:00
error.hh Fix 'destructor called on non-final ...' warning 2023-01-24 16:37:50 +01:00
experimental-features.cc unsafeDiscardReferences 2023-01-03 17:19:16 +01:00
experimental-features.hh unsafeDiscardReferences 2023-01-03 17:19:16 +01:00
filesystem.cc createTempDir(): Use std::atomic 2022-11-18 09:37:11 +01:00
finally.hh make Finally more local 2022-03-09 00:16:50 +01:00
fmt.hh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
git.cc Fix the parsing of the sourcehut refs file 2022-05-04 14:38:59 +02:00
git.hh Fix the parsing of the sourcehut refs file 2022-05-04 14:38:59 +02:00
hash.cc don't assume that rev is a SHA1 hash 2022-04-07 19:49:47 +02:00
hash.hh don't assume that rev is a SHA1 hash 2022-04-07 19:49:47 +02:00
hilite.cc Fix incorrect comment in hiliteMatches 2022-06-05 20:30:18 +02:00
hilite.hh Move hiliteMatches into a separate header 2022-04-21 12:06:29 +02:00
json-impls.hh Remove default constructor from OutputsSpec 2023-01-11 19:08:19 -05:00
json-utils.hh Move json stuff out of util.cc 2022-05-04 11:22:06 +02:00
local.mk Remove the explicit c++fs linkage on darwin 2022-08-08 14:34:22 +02:00
logging.cc Introduce AbstractPos 2022-12-13 00:50:43 +01:00
logging.hh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
lru-cache.hh Missing #include <cassert> in lru-cache.hh (#3654) 2020-06-03 10:15:22 +00:00
monitor-fd.hh MonitorFdHup: Make it work on macOS again 2023-01-11 10:48:40 -08:00
pool.hh RemoteStore: Close connection if an exception occurs 2018-10-16 23:36:15 +02:00
ref.hh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
regex-combinators.hh Test store paths, with property tests 2023-01-23 07:05:50 -05:00
serialise.cc Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
serialise.hh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
split.hh Typo 2020-09-17 20:21:04 +02:00
suggestions.cc Implement operator<< for Suggestions 2022-03-07 10:09:10 +01:00
suggestions.hh Merge or-suggestions.hh into suggestions.hh 2022-03-07 17:49:02 +01:00
sync.hh sync.hh: return cv_status instead of dropping it, in case useful. 2018-06-18 17:31:00 -05:00
tarfile.cc tarfile: set directory mode to at least 0500, don't extract fflags 2022-11-01 16:01:38 +01:00
tarfile.hh Revert "TarArchive: Small refactoring" 2022-03-24 22:30:46 +01:00
thread-pool.cc Remove CPU locking 2021-12-22 15:56:25 +01:00
thread-pool.hh Fix extra ; warnings involving MakeError 2019-11-10 11:24:47 -05:00
topo-sort.hh Add missing #pragma once 2020-10-06 10:40:07 +02:00
types.hh Move ChunkedVector to its own header 2022-04-22 10:01:02 +02:00
url-parts.hh Allow empty path segments in urls 2022-04-08 16:09:49 +02:00
url.cc Fix url parsing for urls using file+ 2023-01-20 10:31:26 +01:00
url.hh fetchTree: Allow fetching plain files 2022-05-19 18:24:49 +02:00
util.cc A setting to follow XDG Base Directory standard 2023-02-10 20:14:06 +04:00
util.hh A setting to follow XDG Base Directory standard 2023-02-10 20:14:06 +04:00
xml-writer.cc xml-writer: Remove std aliases 2022-02-25 16:13:02 +01:00
xml-writer.hh xml-writer: Remove std aliases 2022-02-25 16:13:02 +01:00