aboutsummaryrefslogtreecommitdiff
path: root/doc/ref/general/xdg-basedir.texi
blob: 2d3b2972493913faa1bde57729b7667c6a6dab57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
@node XDG Base Directory
@section XDG Base Directory

Implementation of the XDG Base Directory Specification
@url{https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html}, v0.8.

It's recommended to include this module with a symbol prefix:

@example
(use-modules ((xdg basedir) :prefix xdg-)

(xdg-data-dirs)
⇒ ("/usr/local/share" "/usr/share")
@end example

The users home directory is fetched from the environment variable @env{HOME}.


@defun data-home
@findex XDG_DATA_HOME
@env{XDG_DATA_HOME}, usually @file{~/.local/share}.
@end defun

@defun config-home
@findex XDG_CONFIG_HOME
@env{XDG_CONFIG_HOME}, usually @file{~/.config}.
@end defun

@defun state-home
@findex XDG_STATE_HOME
@env{XDG_STATE_HOME}, usually @file{~/.local/state}.
@end defun

@defun data-dirs
@findex XDG_DATA_DIRS
@env{XDG_DATA_DIRS}, split into a list.

Defaults to @code{("/usr/local/share" "/usr/share")}.
@end defun

@defun config-dirs
@findex XDG_CONFIG_DIRS
@env{XDG_CONFIG_DIRS} as a list, usually @code{("/etc/xdg")}.

Defaults to @file{/etc/xdg}.
@end defun

@defun cache-home
@findex XDG_CACHE_HOME
@env{XDG_CACHE_HOME}, usually @file{~/.cache}.
@end defun

@defun runtime-dir
@findex XDG_RUNTIME_DIR
If @env{XDG_RUNTIME_DIR} is set, than that is used. Otherwise a
warning message is printed to stderr and @file{/tmp} is returned.

The standard also stipulates a few things about permissons for this
directory. These are currently not checked.

Systemd usually sets this value to @file{/run/user/$(id -u)}.
@end defun