Difference between revisions of "XDG Base Directory"

From ArchWiki
Jump to navigation Jump to search
(this is very relevant: we are on the ArchWiki (i.e. wiki of Arch Linux), not on a freedesktop.org mirror)
m (Fix urls for dunst to point to official repo since fork doesn't have an issue tracker and broke a link)
 
(480 intermediate revisions by 95 users not shown)
Line 1: Line 1:
[[Category:Dotfiles]]
+
[[Category:Freedesktop.org]]
 +
[[Category:Configuration files]]
 +
[[Category:Development]]
 +
[[ja:XDG Base Directory サポート]]
 +
[[pt:XDG Base Directory]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|dotfiles}}
 
{{Related|dotfiles}}
{{Related|Xdg user directories}}
+
{{Related|XDG user directories}}
 
{{Related articles end}}
 
{{Related articles end}}
This article exists to catalog the growing set of software using the [http://standards.freedesktop.org/basedir-spec/latest/ XDG Base Directory Specification] introduced in 2003.  This is here to demonstrate the viability of this specification by listing commonly found dotfiles and their support status.  For those not currently supporting the Base Directory Specification, workarounds will be demonstrated to emulate it instead.
 
  
The workarounds will be limited to anything not involving patching the source, executing code stored in [[environment variable]]s or compile-time options.  The rationale for this is that configurations should be portable across systems and having compile-time options prevent that.
+
This article summarizes the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory specification] in [[#Specification]] and tracks software support in [[#Support]].
  
Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.
+
== Specification ==
 
 
==The XDG Base Directory specification==
 
 
 
Please read the [http://standards.freedesktop.org/basedir-spec/latest/ full specification]. This section will attempt to break down the essence of what it tries to achieve.
 
  
All paths defined must be absolute and valid.
+
Please read the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html full specification]. This section will attempt to break down the essence of what it tries to achieve.
  
{{Note|On Arch systems, only {{ic|XDG_RUNTIME_DIR}} is set by default (see below): it is up to the user to [[define]] the other variables, see {{Bug|31204}} and [https://lists.archlinux.org/pipermail/arch-general/2013-February/032980.html].}}
+
Only {{ic|XDG_RUNTIME_DIR}} is set by default through [https://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd]. It is up to the user to explicitly [[define]] the other variables according to the specification.
  
===User directories===
+
=== User directories ===
  
 
* {{ic|XDG_CONFIG_HOME}}
 
* {{ic|XDG_CONFIG_HOME}}
 
** Where user-specific configurations should be written (analogous to {{ic|/etc}}).
 
** Where user-specific configurations should be written (analogous to {{ic|/etc}}).
** Should default to {{ic|HOME/.config}}.
+
** Should default to {{ic|$HOME/.config}}.
  
 
* {{ic|XDG_CACHE_HOME}}
 
* {{ic|XDG_CACHE_HOME}}
 
** Where user-specific non-essential (cached) data should be written (analogous to {{ic|/var/cache}}).
 
** Where user-specific non-essential (cached) data should be written (analogous to {{ic|/var/cache}}).
** Should default to {{ic|HOME/.cache}}.
+
** Should default to {{ic|$HOME/.cache}}.
  
 
* {{ic|XDG_DATA_HOME}}
 
* {{ic|XDG_DATA_HOME}}
 
** Where user-specific data files should be written (analogous to {{ic|/usr/share}}).
 
** Where user-specific data files should be written (analogous to {{ic|/usr/share}}).
** Should default to {{ic|HOME/.local/share}}.
+
** Should default to {{ic|$HOME/.local/share}}.
  
 
* {{ic|XDG_RUNTIME_DIR}}
 
* {{ic|XDG_RUNTIME_DIR}}
 
** Used for non-essential, user-specific data files such as sockets, named pipes, etc.
 
** Used for non-essential, user-specific data files such as sockets, named pipes, etc.
** Not required to have a default value; warnings should be issued if not set or equivalents provided. {{Note|This variable is already set by [http://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd] ({{ic|/run/user/$UID}} with {{Pkg|systemd}} 228).}}
+
** Not required to have a default value; warnings should be issued if not set or equivalents provided.
 
** Must be owned by the user with an access mode of {{ic|0700}}.
 
** Must be owned by the user with an access mode of {{ic|0700}}.
 
** Filesystem fully featured by standards of OS.
 
** Filesystem fully featured by standards of OS.
Line 43: Line 42:
 
** Should not store large files as it may be mounted as a tmpfs.
 
** Should not store large files as it may be mounted as a tmpfs.
  
===System directories===
+
=== System directories ===
  
 
* {{ic|XDG_DATA_DIRS}}
 
* {{ic|XDG_DATA_DIRS}}
** List of directories seperated by {{ic|:}} (analogous to {{ic|PATH}}).
+
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).
 
** Should default to {{ic|/usr/local/share:/usr/share}}.
 
** Should default to {{ic|/usr/local/share:/usr/share}}.
  
 
* {{ic|XDG_CONFIG_DIRS}}
 
* {{ic|XDG_CONFIG_DIRS}}
** List of directories seperated by {{ic|:}} (analogous to {{ic|PATH}}).
+
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).
 
** Should default to {{ic|/etc/xdg}}.
 
** Should default to {{ic|/etc/xdg}}.
  
==Exceptions==
+
== Support ==
  
These directories and files are unlikely to ever change, there is far too much historical baggage and most tools written expect these files and directories to exist in these locations.
+
This section exists to catalog the growing set of software using the [https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification] introduced in 2003.  This is here to demonstrate the viability of this specification by listing commonly found dotfiles and their support status.  For those not currently supporting the Base Directory Specification, workarounds will be demonstrated to emulate it instead.
  
While some of these tools are still in active development and maintainence, the developers are unwilling to accommodate for the necessary changes due to the aforementioned reasons.
+
The workarounds will be limited to anything not involving patching the source, executing code stored in [[environment variables]] or compile-time options.  The rationale for this is that configurations should be portable across systems and having compile-time options prevent that.
  
; {{ic|~/.ssh}}
+
Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.
: Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH. [https://bugzilla.mindrot.org/show_bug.cgi?id=2050 OpenSSH Bug 2050]
 
  
; {{ic|~/.pki}}
+
=== Contributing ===
: Part of Mozilla's [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS Project].
 
 
 
; {{ic|~/.netrc}}
 
: Like {{ic|~/.ssh}}, many programs expect this file to be here.  These include projects like curl ({{ic|CURLOPT_NETRC_FILE}}), ftp ({{ic|NETRC}}), s-nail ({{ic|NETRC}}), etc.  While some of them offer alternative configurable locations, many do not such as w3m, wget and lftp.
 
 
 
; {{ic|~/.profile}}
 
: Used by the various shells and display managers, this file is expected to be here much like {{ic|~/.netrc}}.
 
 
 
==Contributing==
 
  
 
When contributing make sure to use the correct section.
 
When contributing make sure to use the correct section.
  
Nothing should require code evaluation (such as [[vim]] and {{ic|VIMINIT}}), patches or compile-time options to gain support and anything which does must be deemed hardcoded.  Additionally if the process is too error prone or difficult, such as [https://www.haskell.org/cabal/ Haskell's cabal] or eclipse, they should also be considered as hardcoded.
+
Nothing should require code evaluation (such as [[vim]] and {{ic|VIMINIT}}), patches or compile-time options to gain support and anything which does must be deemed hardcoded.  Additionally if the process is too error prone or difficult, such as [https://www.haskell.org/cabal/ Haskell's cabal] or Eclipse, they should also be considered as hardcoded.
  
* The first column should be the project name, ideally the command name if it is not ambigious, linked to their website or an appropriate internal wiki article.
+
* The first column should be either a link to an internal article, a [[Template:Pkg]] or a [[Template:AUR]].
 
+
* The second column is for any legacy files and directories the project had (one per line), this is done so people can find them even if they are no longer read.
* The second column is for any legacy files and directories the project had, this is done so people can find them even if they are no longer read.
+
* In the third, try to find the commit or version a project switched to XDG Base Directory or any open discussions and include them in the next two columns (two per line).
 
+
* The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.
* Try to find the commit or version a project switched to XDG Base Directory or any open discussions and include them in the next two columns.
 
 
 
* Finally include any appropriate workarounds or solutions for unsupported projects. Be terse, this article assumes intelligence and good charity from the reader.  If something is unclear then feel free to expend some explanation to clarify it.
 
  
Lastly, and this goes without saying, please verify that your solution is correct and functional.
+
=== Supported ===
 
 
==Supported==
 
  
 
{| class="wikitable sortable" style="width: 100%"
 
{| class="wikitable sortable" style="width: 100%"
Line 96: Line 80:
 
! Notes
 
! Notes
 
|-
 
|-
| [https://github.com/Ryochan7/antimicro/ antimicro]
+
| {{AUR|aerc-git}}
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| {{AUR|antimicro}}{{Broken package link|package not found}}
 
| {{ic|~/.antimicro}}
 
| {{ic|~/.antimicro}}
| [https://github.com/Ryochan7/antimicro/commit/edba864 edba864]
+
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]
| [https://github.com/Ryochan7/antimicro/issues/5]
+
| [https://github.com/Antimicro/antimicro/issues/5]
 
|
 
|
 
|-
 
|-
| [https://github.com/tatsuhiro-t/aria2/ aria2]
+
| [[aria2]]
 
| {{ic|~/.aria2}}
 
| {{ic|~/.aria2}}
 
| [https://github.com/tatsuhiro-t/aria2/commit/8bc1d37 8bc1d37]
 
| [https://github.com/tatsuhiro-t/aria2/commit/8bc1d37 8bc1d37]
Line 108: Line 98:
 
|
 
|
 
|-
 
|-
| [http://www.blender.org/ blender]
+
| {{Pkg|asunder}}
 +
|
 +
{{ic|~/.asunder<br>
 +
~/.asunder_album_artist<br>
 +
~/.asunder_album_genre<br>
 +
~/.asunder_album_title}}
 +
| [https://littlesvr.ca/bugs/show_bug.cgi?id=31 2.9.0]
 +
| [https://littlesvr.ca/bugs/show_bug.cgi?id=52]
 +
| Uses {{ic|XDG_CONFIG_HOME/asunder/asunder}} for {{ic|~/.asunder}} and {{ic|XDG_CACHE_HOME/asunder/asunder_album_...}} for the other 3 files. Legacy paths are not removed after migration, they have to be deleted manually.
 +
|-
 +
| {{Pkg|binwalk}}
 +
| {{ic|~/.binwalk}}
 +
| [https://github.com/ReFirmLabs/binwalk/commit/2051757 2051757]
 +
| [https://github.com/ReFirmLabs/binwalk/issues/216]
 +
| {{ic|$XDG_CONFIG_HOME/binwalk}}<br>
 +
Supported only in Git master branch, there's no updated stable release yet.
 +
|-
 +
| [[Blender]]
 
| {{ic|~/.blender}}
 
| {{ic|~/.blender}}
| [http://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/4293f473 4293f473]
+
| [http://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/4293f47 4293f47]
 
| [https://developer.blender.org/T28943]
 
| [https://developer.blender.org/T28943]
 
|
 
|
 
|-
 
|-
| [https://github.com/falconindy/burp burp]
+
| {{Pkg|calibre}}
 +
|
 
|
 
|
| [https://github.com/falconindy/burp/commit/f2388e9 f2388e9]
 
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[chromium]]
+
| [[Chromium]]
 
| {{ic|~/.chromium}}
 
| {{ic|~/.chromium}}
 
| [https://src.chromium.org/viewvc/chrome?revision=23057&view=revision 23057]
 
| [https://src.chromium.org/viewvc/chrome?revision=23057&view=revision 23057]
| [https://groups.google.com/forum/#!topic/chromium-dev/QekVQxF3nho] [https://code.google.com/p/chromium/issues/detail?id=16976]
+
|
 +
[https://groups.google.com/forum/#!topic/chromium-dev/QekVQxF3nho]
 +
[https://code.google.com/p/chromium/issues/detail?id=16976]
 
|
 
|
 
|-
 
|-
| [https://github.com/falconindy/cower cower]
+
| {{AUR|citra-git}}
|
+
| {{ic|~/.citra-emu}}
| [https://github.com/falconindy/cower/commit/8b70805 8b70805]
+
| [https://github.com/citra-emu/citra/commit/f7c3193 f7c3193]
 +
| [https://github.com/citra-emu/citra/pull/575]
 
|
 
|
 +
|-
 +
| [[Composer]]
 +
| {{ic|~/.composer}}
 +
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]
 +
| [https://github.com/composer/composer/pull/1407]
 
|
 
|
 
|-
 
|-
| [https://wiki.gnome.org/dconf dconf]
+
| {{Pkg|d-feet}}
 +
| {{ic|~/.d-feet}}
 +
| [https://gitlab.gnome.org/GNOME/d-feet/commit/7f6104b 7f6104b]
 
|
 
|
 
|
 
|
 +
|-
 +
| {{Pkg|dconf}}
 
|
 
|
 
|
 
|
|-
 
| [https://wiki.gnome.org/Apps/DFeet d-feet]
 
| {{ic|~/.d-feet}}
 
| [https://git.gnome.org/browse/d-feet/commit/?id==7f6104b 7f6104b]
 
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[Dolphin emulator|dolphin-emu]]
+
| [[Dolphin emulator]]
 
| {{ic|~/.dolphin-emu}}
 
| {{ic|~/.dolphin-emu}}
 
| [https://github.com/dolphin-emu/dolphin/commit/a498c68 a498c68]
 
| [https://github.com/dolphin-emu/dolphin/commit/a498c68 a498c68]
 
| [https://github.com/dolphin-emu/dolphin/pull/2304]
 
| [https://github.com/dolphin-emu/dolphin/pull/2304]
 +
|
 +
|-
 +
| {{AUR|dr14_tmeter}}
 
|  
 
|  
 +
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca 7e777ca]
 +
| [https://github.com/simon-r/dr14_t.meter/pull/30]
 +
| {{ic|XDG_CONFIG_HOME/dr14tmeter/}}
 
|-
 
|-
| [http://www.knopwob.org/dunst/index.html dunst]
+
| {{Pkg|dunst}}
 
|
 
|
| [https://github.com/knopwob/dunst/commit/78b6e2b1 78b6e2b1]
+
| [https://github.com/dunst-project/dunst/commit/78b6e2b 78b6e2b]
| [https://github.com/knopwob/dunst/issues/22]
+
| [https://github.com/dunst-project/dunst/issues/22]
 
|
 
|
 
|-
 
|-
 
| [[dwb]]
 
| [[dwb]]
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| {{Pkg|elixir}}
 +
| {{ic|~/.mix}}
 +
| [https://github.com/elixir-lang/elixir/commit/afaf889 afaf889]
 +
| [https://github.com/elixir-lang/elixir/issues/8818]
 +
|
 +
|-
 +
| [[fish]]
 
|
 
|
 
|
 
|
Line 163: Line 196:
 
|-
 
|-
 
| [[fontconfig]]
 
| [[fontconfig]]
| {{ic|~/.fontconfig}}
 
| [http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb1 8c255fb1]
 
 
|
 
|
 +
{{ic|~/.fontconfig<br>
 +
~/.fonts}}
 +
| [https://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb 8c255fb]
 
|
 
|
 +
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.
 
|-
 
|-
| [http://fontforge.github.io/ fontforge]
+
| {{Pkg|fontforge}}
| {{ic|~/.FontForge}} {{ic|~/.PfaEdit}}
+
|
| [https://github.com/fontforge/fontforge/commit/e4c2cc7432 e4c2cc7432]
+
{{ic|~/.FontForge<br>
| [https://github.com/fontforge/fontforge/issues/847] [https://github.com/fontforge/fontforge/issues/991]
+
~/.PfaEdit}}
 +
| [https://github.com/fontforge/fontforge/commit/e4c2cc7 e4c2cc7]
 +
|
 +
[https://github.com/fontforge/fontforge/issues/847]
 +
[https://github.com/fontforge/fontforge/issues/991]
 
|
 
|
 
|-
 
|-
| [[fontconfig]]
+
| {{Pkg|freerdp}}
| {{ic|~/.fonts}}
+
| {{ic|~/.freerdp}}
 +
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e72 edf6e72]
 
|
 
|
 
|
 
|
| Use {{ic|"$XDG_DATA_HOME"/fonts}} instead.
 
 
|-
 
|-
| [https://projects.gnome.org/gconf gconf]
+
| [[Gajim]]
 +
| {{ic|~/.gajim}}
 +
| [https://dev.gajim.org/gajim/gajim/commit/3e777ea 3e777ea]
 +
| [https://dev.gajim.org/gajim/gajim/issues/2149]
 +
|
 +
|-
 +
| {{AUR|gconf}}
 
| {{ic|~/.gconf}}
 
| {{ic|~/.gconf}}
| [https://git.gnome.org/browse/gconf/commit/?id=fc28caa7 fc28caa7]
+
| [https://gitlab.gnome.org/Archive/gconf/commit/fc28caa fc28caa]
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=674803]
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=674803]
 
|
 
|
 
|-
 
|-
| [[git]]
+
| [[GIMP]]
 +
|
 +
{{ic|~/.gimp-x.y<br>
 +
~/.thumbnails}}
 +
|
 +
[https://gitlab.gnome.org/GNOME/gimp/commit/60e0cfe 60e0cfe]
 +
[https://gitlab.gnome.org/GNOME/gimp/commit/483505f 483505f]
 +
|
 +
[https://bugzilla.gnome.org/show_bug.cgi?id=166643]
 +
[https://bugzilla.gnome.org/show_bug.cgi?id=646644]
 +
|
 +
|-
 +
| [[Git]]
 
| {{ic|~/.gitconfig}}
 
| {{ic|~/.gitconfig}}
| [https://github.com/git/git/commit/0d94427e 0d94427e]
+
| [https://github.com/git/git/commit/0d94427 0d94427]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://gstreamer.freedesktop.org/ gstreamer-1.0]
+
| [[GStreamer]]
|
+
| {{ic|~/.gstreamer-0.10}}
| [http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93924cf 4e36f93924cf]
+
| [https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93 4e36f93]
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=518597]
 
| [https://bugzilla.gnome.org/show_bug.cgi?id=518597]
 
|
 
|
 
|-
 
|-
| [[gtk|gtk3]]
+
| [[GTK]] 3
 
|
 
|
 
|
 
|
Line 204: Line 261:
 
|
 
|
 
|-
 
|-
| [http://hisham.hm/htop/ htop]
+
| {{Pkg|htop}}
 
| {{ic|~/.htoprc}}
 
| {{ic|~/.htoprc}}
| [https://github.com/hishamhm/htop/commit/93233a67 93233a67]
+
| [https://github.com/hishamhm/htop/commit/93233a6 93233a6]
 
|
 
|
 
|
 
|
Line 212: Line 269:
 
| [[i3]]
 
| [[i3]]
 
| {{ic|~/.i3}}
 
| {{ic|~/.i3}}
| [http://code.stapelberg.de/git/i3/commit/?id=7c130fb54 7c130fb54]
+
| [http://code.stapelberg.de/git/i3/commit/?id=7c130fb 7c130fb]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://i3wm.org/i3status/ i3status]
+
| {{Pkg|i3status}}
 
| {{ic|~/.i3status.conf}}
 
| {{ic|~/.i3status.conf}}
| [http://code.stapelberg.de/git/i3status/commit/?id=c3f7fc4994 c3f7fc4994]
+
| [http://code.stapelberg.de/git/i3status/commit/?id=c3f7fc4 c3f7fc4]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://www.imagemagick.org/script/index.php imagemagick]
+
| {{Pkg|imagemagick}}
 
|
 
|
 
|
 
|
Line 228: Line 285:
 
|
 
|
 
|-
 
|-
| [[inkscape]]
+
| [[Inkscape]]
 
| {{ic|~/.inkscape}}
 
| {{ic|~/.inkscape}}
 
| [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Preferences 0.47]
 
| [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Preferences 0.47]
Line 234: Line 291:
 
|
 
|
 
|-
 
|-
| [https://github.com/Sude-/lgogdownloader/ lgogdownloader]
+
| [https://iwd.wiki.kernel.org/ iwd] / iwctl
 +
| {{ic|~/.iwctl_history}}
 +
| [https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=d3e00d7f d3e00d7f]
 +
|
 +
|
 +
|-
 +
| [[Kakoune]]
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| latexmk (in {{Pkg|texlive-core}})
 +
| {{ic|~/.latexmkrc}}
 +
|
 +
|
 +
|
 +
|-
 +
| {{Pkg|lftp}}
 +
| {{ic|~/.lftp}}
 +
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]
 +
| [https://www.mail-archive.com/lftp@uniyar.ac.ru/msg04301.html]
 +
|
 +
|-
 +
| {{AUR|lgogdownloader}}
 
| {{ic|~/.gogdownloader}}
 
| {{ic|~/.gogdownloader}}
| [https://github.com/Sude-/lgogdownloader/commit/d430af63d000 d430af63d000]
+
| [https://github.com/Sude-/lgogdownloader/commit/d430af6 d430af6]
 
| [https://github.com/Sude-/lgogdownloader/issues/4]
 
| [https://github.com/Sude-/lgogdownloader/issues/4]
 
|
 
|
 
|-
 
|-
| [[livestreamer]]
+
| [[LibreOffice]]
 +
|
 +
|
 +
[https://cgit.freedesktop.org/libreoffice/ure/commit/?id=a6f56f7 a6f56f7]
 +
[https://cgit.freedesktop.org/libreoffice/bootstrap/commit/?id=25bd2ee 25bd2ee]
 +
| [https://bugs.documentfoundation.org/show_bug.cgi?id=32263]
 +
|
 +
|-
 +
| [[Streamlink]]
 
| {{ic|~/.livestreamerrc}}
 
| {{ic|~/.livestreamerrc}}
| [https://github.com/chrippa/livestreamer/commit/ea805917 ea805917]
+
| [https://github.com/chrippa/livestreamer/commit/ea80591 ea80591]
 
| [https://github.com/chrippa/livestreamer/pull/106]
 
| [https://github.com/chrippa/livestreamer/pull/106]
 
|
 
|
Line 248: Line 337:
 
| [[llpp]]
 
| [[llpp]]
 
|
 
|
| [http://repo.or.cz/w/llpp.git/commit/3ab86f0cb 3ab86f0cb]
+
| [http://repo.or.cz/w/llpp.git/commit/3ab86f0 3ab86f0]
 
|
 
|
| Currently llpp places the configuration directly under {{ic|XDG_CONFIG_HOME}} instead of creating a directory.
+
| Currently ''llpp'' places the configuration directly under {{ic|XDG_CONFIG_HOME}} instead of creating a directory.
 
|-
 
|-
 
| [[mc]]
 
| [[mc]]
 
| {{ic|~/.mc}}
 
| {{ic|~/.mc}}
| [https://www.midnight-commander.org/changeset/1b9957058 1b9957058] [https://www.midnight-commander.org/changeset/0b7115647 0b7115647] [https://www.midnight-commander.org/changeset/ce401d797 ce401d797]
+
|
 +
[https://github.com/MidnightCommander/mc/commit/1b99570 1b99570]
 +
[https://github.com/MidnightCommander/mc/commit/0b71156 0b71156]
 +
[https://github.com/MidnightCommander/mc/commit/ce401d7 ce401d7]
 
| [https://www.midnight-commander.org/ticket/1851]
 
| [https://www.midnight-commander.org/ticket/1851]
 +
|
 +
|-
 +
| [[Mercurial]]
 +
| {{ic|~/.hgrc}}
 +
|
 +
[https://www.mercurial-scm.org/repo/hg/rev/3540200 3540200]
 +
[https://www.mercurial-scm.org/wiki/Release4.2 4.2]
 +
|
 +
| {{ic|XDG_CONFIG_HOME/hg/hgrc}}.
 +
|-
 +
| [[msmtp]]
 +
| {{ic|~/.msmtprc}}
 +
|
 +
[https://github.com/marlam/msmtp-mirror/commit/af2f409 af2f409]
 +
v1.6.7+
 +
|
 +
| {{ic| $XDG_CONFIG_HOME"/msmtp/config}}.
 +
|-
 +
| {{Pkg|mesa}}
 +
|
 +
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b 87ab26b]
 +
|
 +
| {{ic|XDG_CACHE_HOME/mesa}}
 +
|-
 +
| {{Pkg|milkytracker}}
 +
| {{ic|~/.milkytracker_config}}
 +
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c5 eb487c5]
 +
| [https://github.com/Deltafire/MilkyTracker/issues/12]
 
|
 
|
 
|-
 
|-
 
| [[mpd]]
 
| [[mpd]]
 
| {{ic|~/.mpdconf}}
 
| {{ic|~/.mpdconf}}
| [http://git.musicpd.org/cgit/master/mpd.git/commit/?id=87b73284 87b73284]
+
| [https://github.com/MusicPlayerDaemon/MPD/commit/87b7328 87b7328]
 
|
 
|
 
|
 
|
Line 266: Line 386:
 
| [[mpv]]
 
| [[mpv]]
 
| {{ic|~/.mpv}}
 
| {{ic|~/.mpv}}
| [https://github.com/mpv-player/mpv/commit/cb250d490 cb250d490]
+
| [https://github.com/mpv-player/mpv/commit/cb250d4 cb250d4]
 
| [https://github.com/mpv-player/mpv/pull/864]
 
| [https://github.com/mpv-player/mpv/pull/864]
 
|
 
|
 
|-
 
|-
| [http://mypaint.intilinux.com/ mypaint]
+
| [[mutt]]
 +
| {{ic|~/.mutt}}
 +
| [https://gitlab.com/muttmua/mutt/commit/b17cd67 b17cd67]
 +
| [https://gitlab.com/muttmua/trac-tickets/raw/master/tickets/closed/3207-Conform_to_XDG_Base_Directory_Specification.txt]
 +
|
 +
|-
 +
| {{Pkg|mypaint}}
 
| {{ic|~/.mypaint}}
 
| {{ic|~/.mypaint}}
| [https://github.com/mypaint/mypaint/commit/cf723b74cd cf723b74cd]
+
| [https://github.com/mypaint/mypaint/commit/cf723b7 cf723b7]
 +
|
 +
|
 +
|-
 +
| [[nano]]
 +
|
 +
{{ic|~/.nano/<br>
 +
~/.nanorc}}
 +
| [http://git.savannah.gnu.org/cgit/nano.git/commit/?id=c16e79b c16e79b]
 +
| [https://savannah.gnu.org/patch/?8523]
 +
|
 +
|-
 +
| [[ncmpcpp]]
 +
| {{ic|~/.ncmpcpp}}
 +
|
 +
[https://github.com/arybczak/ncmpcpp/commit/38d9f81 38d9f81]
 +
[https://github.com/arybczak/ncmpcpp/commit/27cd86e 27cd86e]
 +
|
 +
[https://github.com/arybczak/ncmpcpp/issues/79]
 +
[https://github.com/arybczak/ncmpcpp/issues/110]
 +
| {{ic|ncmpcpp_directory}} should be set to avoid an {{ic|error.log}} file in {{ic|~/.ncmpcpp}}.
 +
|-
 +
| [[Neovim]]
 
|
 
|
 +
{{ic|~/.nvim<br>
 +
~/.nvimlog<br>
 +
~/.nviminfo}}
 +
| [https://github.com/neovim/neovim/commit/1ca5646 1ca5646]
 +
|
 +
[https://github.com/neovim/neovim/issues/78]
 +
[https://github.com/neovim/neovim/pull/3198]
 
|
 
|
 
|-
 
|-
 
| [[newsbeuter]]
 
| [[newsbeuter]]
 
| {{ic|~/.newsbeuter}}
 
| {{ic|~/.newsbeuter}}
| [https://github.com/akrennmair/newsbeuter/commit/3c57824c5 3c57824c5]
+
| [https://github.com/akrennmair/newsbeuter/commit/3c57824 3c57824]
 
| [https://github.com/akrennmair/newsbeuter/pull/39]
 
| [https://github.com/akrennmair/newsbeuter/pull/39]
| It is required to create both {{ic|"$XDG_DATA_HOME"/newsbeuter}} and {{ic|"$XDG_CONFIG_HOME"/newsbeuter}} [http://newsbeuter.org/doc/newsbeuter.html#_xdg_base_directory_support]
+
| It is required to create both directories [http://newsbeuter.org/doc/newsbeuter.html#_xdg_base_directory_support]:
 +
 
 +
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter}}
 +
|-
 +
| [https://github.com/nodejs/node-gyp node-gyp]
 +
| {{ic|~/.node-gyp}}
 +
| [https://github.com/nodejs/node-gyp/commit/2b5ce52a 2b5ce52a]
 +
| [https://github.com/nodejs/node-gyp/pull/1570]
 +
| Only available on master as of 2018-12-04.
 +
|-
 +
| {{AUR|np2kai-git}}
 +
|
 +
{{ic|~/.config/np2kai<br>
 +
~/.config/xnp2kai}}
 +
| [https://github.com/AZO234/NP2kai/commit/56a1cc2 56a1cc2]
 +
| [https://github.com/AZO234/NP2kai/pull/50]
 +
|
 +
|-
 +
| {{AUR|nteract-bin}}
 +
|
 +
| [https://github.com/nteract/nteract/commit/4593e72 4593e72]
 +
| [https://github.com/nteract/nteract/issues/180] [https://github.com/nteract/nteract/pull/3870]
 +
| [https://github.com/nteract/nteract/issues/4517 does not recognize workarounds for ipython/jupyter]
 
|-
 
|-
 
| [[OfflineIMAP]]
 
| [[OfflineIMAP]]
Line 288: Line 465:
 
|
 
|
 
|-
 
|-
| [http://pcsx2.net/ pcsx2]
+
| {{AUR|opentyrian}}
 +
| {{ic|~/.opentyrian}}
 +
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]
 +
| [https://web.archive.org/web/20140815181350/http://code.google.com/p/opentyrian/issues/detail?id=125]
 +
|
 +
|-
 +
| {{Pkg|pandoc}}
 +
| {{ic|~/.pandoc/}}
 +
| [https://github.com/jgm/pandoc/commit/0bed0ab5a308f5e72a01fa9bee76488556288862 0bed0ab]
 +
| [https://github.com/jgm/pandoc/issues/3582]
 +
|
 +
|-
 +
| {{Pkg|pcsx2}}
 
| {{ic|~/.pcsx2}}
 
| {{ic|~/.pcsx2}}
| [https://github.com/PCSX2/pcsx2/commit/87f1e8f77 87f1e8f77] [https://github.com/PCSX2/pcsx2/commit/a9020c606 a9020c606] [https://github.com/PCSX2/pcsx2/commit/3b22f0fb0 3b22f0fb0] [https://github.com/PCSX2/pcsx2/commit/0a012aec2 0a012aec2]
+
|
 +
[https://github.com/PCSX2/pcsx2/commit/87f1e8f 87f1e8f]
 +
[https://github.com/PCSX2/pcsx2/commit/a9020c6 a9020c6]
 +
[https://github.com/PCSX2/pcsx2/commit/3b22f0f 3b22f0f]
 +
[https://github.com/PCSX2/pcsx2/commit/0a012ae 0a012ae]
 
| [https://github.com/PCSX2/pcsx2/issues/352] [https://github.com/PCSX2/pcsx2/issues/381]
 
| [https://github.com/PCSX2/pcsx2/issues/352] [https://github.com/PCSX2/pcsx2/issues/381]
 
|
 
|
 
|-
 
|-
| [http://www.ppsspp.org/ ppsspp]
+
| [http://pryrepl.org/ Pry]
 +
| {{ic|~/.pryrc<br>~/.pry_history}}
 +
|
 +
[https://github.com/pry/pry/commit/a0be0cc7b2070edff61c0c7f10fa37fce9b730bd a0be0cc7]
 +
[https://github.com/pry/pry/commit/15e1fc929ed84c161abc5afc9be73488a41df397 15e1fc92]
 +
[https://github.com/pry/pry/commit/e9d1be0e17b294318dbb2f70f74a50486cfa044c e9d1be0e]
 +
| [https://github.com/pry/pry/issues/1316]
 +
|
 +
|-
 +
| {{Pkg|python-pip}}
 +
| {{ic|~/.pip}}
 +
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]
 +
| [https://github.com/pypa/pip/issues/1733]
 +
|
 +
|-
 +
| {{AUR|powershell}}
 +
|
 +
| [https://docs.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-core-60#filesystem 6.0]
 +
|
 +
|
 +
|-
 +
| {{Pkg|ppsspp}}
 
| {{ic|~/.ppsspp}}
 
| {{ic|~/.ppsspp}}
| [https://github.com/hrydgard/ppsspp/commit/132fe47c7d 132fe47c7d]
+
| [https://github.com/hrydgard/ppsspp/commit/132fe47 132fe47]
 
| [https://github.com/hrydgard/ppsspp/issues/4623]
 
| [https://github.com/hrydgard/ppsspp/issues/4623]
 
|
 
|
 
|-
 
|-
| [https://github.com/Cloudef/orbment/ orbment]
+
| {{Pkg|procps-ng}}
 +
| {{ic|~/.toprc}}
 +
| [https://gitlab.com/procps-ng/procps/commit/af53e17 af53e17]
 +
|
 +
[https://gitlab.com/procps-ng/procps/merge_requests/38]
 +
[https://bugzilla.redhat.com/show_bug.cgi?id=1155265]
 +
|
 +
|-
 +
| {{AUR|orbment-git}}
 
|
 
|
 
|
 
|
Line 308: Line 530:
 
| [[pacman]]
 
| [[pacman]]
 
| {{ic|~/.makepkg.conf}}
 
| {{ic|~/.makepkg.conf}}
| [https://projects.archlinux.org/pacman.git/commit/?id=80eca94c8 80eca94c8]
+
| [https://projects.archlinux.org/pacman.git/commit/?id=80eca94 80eca94]
 
| [https://mailman.archlinux.org/pipermail/pacman-dev/2014-July/019178.html]
 
| [https://mailman.archlinux.org/pipermail/pacman-dev/2014-July/019178.html]
 +
|
 +
|-
 +
| {{AUR|panda3d}}
 +
| {{ic|~/.panda3d}}
 +
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]
 +
|
 +
|
 +
|-
 +
| {{AUR|poezio}}
 +
|
 +
|
 +
|
 
|
 
|
 
|-
 
|-
 
| [[PulseAudio]]
 
| [[PulseAudio]]
| {{ic|~/.pulse}} {{ic|~/.pulse-cookie}}
+
|
| [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=59a8618dcd9 59a8618dcd9] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae8307057 87ae8307057] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a6921 9ab510a6921] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bcc9d5 4c195bcc9d5]
+
{{ic|~/.pulse<br>
 +
~/.pulse-cookie}}
 +
|
 +
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=59a8618 59a8618]
 +
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae830 87ae830]
 +
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a 9ab510a]
 +
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bc 4c195bc]
 
| [https://bugzilla.redhat.com/show_bug.cgi?id=845607]
 
| [https://bugzilla.redhat.com/show_bug.cgi?id=845607]
 +
|
 +
|-
 +
| {{AUR|pyroom}}
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
| {{Pkg|quodlibet}}
 +
| {{ic|~/.quodlibet}}
 +
| 3.10.0
 +
| [https://github.com/quodlibet/quodlibet/issues/138]
 
|
 
|
 
|-
 
|-
Line 324: Line 576:
 
|
 
|
 
|-
 
|-
| [[systemd]]
+
| [[qtile]]
|
 
 
|
 
|
 
|
 
|
 +
[https://github.com/qtile/qtile/commit/fd8686e fd8686e]
 +
[https://github.com/qtile/qtile/commit/66d704b 66d704b]
 +
[https://github.com/qtile/qtile/commit/51cff01 51cff01]
 +
| [https://github.com/qtile/qtile/pull/835]
 +
| Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.
 +
|-
 +
| {{Pkg|rclone}}
 +
| {{ic|~/.rclone.conf}}
 +
| [https://github.com/ncw/rclone/commit/9d36258 9d36258]
 +
| [https://github.com/ncw/rclone/issues/868]
 
|
 
|
 
|-
 
|-
| [[termite]]
+
| {{Pkg|retroarch}}
 
|
 
|
 
|
 
|
Line 336: Line 597:
 
|
 
|
 
|-
 
|-
| [[transmission]]
+
| {{AUR|rr}}
| {{ic|~/.transmission}}
+
| {{ic|~/.rr}}
| [https://trac.transmissionbt.com/changeset/5517 5517]
+
| [https://github.com/mozilla/rr/commit/02e7d41 02e7d41]
| [https://trac.transmissionbt.com/ticket/684]
+
| [https://github.com/mozilla/rr/issues/1455]
 +
|
 +
|-
 +
| [https://rspec.info RSpec]
 +
| {{ic|~/.rspec}}
 +
| [https://github.com/rspec/rspec-core/commit/5e395e2016f1da19475e6db2817eb26dae828c4c 5e395e2]
 +
| [https://github.com/rspec/rspec-core/issues/1773]
 
|
 
|
 
|-
 
|-
| [https://www.kernel.org/pub/linux/utils/util-linux/ util-linux]
+
| [[rTorrent]]
 +
| {{ic|~/.rtorrent.rc}}
 +
| [https://github.com/rakshasa/rtorrent/commit/6a8d332 6a8d332]
 
|
 
|
| [http://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=570b32100 570b32100]
 
 
|
 
|
 +
|-
 +
| [https://www.rubocop.org RuboCop]
 +
| {{ic|~/.rubocop.yml}}
 +
| [https://github.com/rubocop-hq/rubocop/commit/6fe5956c177ca369cfaa70bdf748b70020a56bf4 6fe5956]
 +
| [https://github.com/rubocop-hq/rubocop/issues/6662]
 
|
 
|
 
|-
 
|-
|[http://www.freerdp.com/ freerdp]
+
| {{AUR|skypeforlinux-stable-bin}}
|{{ic|~/.freerdp}}
+
| {{ic|~/.Skype}}
|[https://github.com/FreeRDP/FreeRDP/commit/edf6e7258d edf6e7258d]
+
| 8.0
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://beets.radbox.org/ beets]
+
| {{Pkg|snes9x}}
 +
| {{ic|~/.snes9x}}
 +
| [https://github.com/snes9xgit/snes9x/commit/93b5f11 93b5f11]
 +
| [https://github.com/snes9xgit/snes9x/issues/194]
 +
| By default, the configuration file is left blank with intention that the user will fill it at their will (through the gui or manually).
 +
|-
 +
| {{AUR|sublime-text-dev}}
 
|
 
|
 
|
 
|
 
|
 
|
 +
| Cache is placed in {{ic|$XDG_CONFIG_HOME/sublime-text-3/Cache}} instead of expected {{ic|$XDG_CACHE_HOME/sublime-text-3}}.
 
|-
 
|-
| [http://pyroom.org/index.html pyroom]
+
| [[surfraw]]
 
|
 
|
 +
{{ic|~/.surfraw.conf<br>
 +
~/.surfraw.bookmarks}}
 
|
 
|
 +
[https://gitlab.com/surfraw/Surfraw/commit/3e4591d 3e4591d]
 +
[https://gitlab.com/surfraw/Surfraw/commit/bd8c427 bd8c427]
 +
[https://gitlab.com/surfraw/Surfraw/commit/f57fc71 f57fc71]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://citra-emu.org/ citra]
+
| [[sway]]
| {{ic|~/.citra-emu}}
+
| {{ic|~/.sway/config}}
| [https://github.com/citra-emu/citra/commit/f7c3193fec f7c3193fec]
+
| [https://github.com/SirCmpwn/sway/commit/614393c 614393c]
| [https://github.com/citra-emu/citra/pull/575]
+
| [https://github.com/SirCmpwn/sway/issues/5]
 +
|
 +
|-
 +
| [[systemd]]
 +
|
 +
|
 +
|
 
|
 
|
 
|-
 
|-
| [http://www.libretro.com/ retroarch]
+
| [[termite]]
 
|
 
|
 
|
 
|
Line 377: Line 668:
 
|
 
|
 
|-
 
|-
| [http://lftp.yar.ru/ lftp]
+
| {{Pkg|tig}}
| {{ic|~/.lftp}}
+
| {{ic|~/.tigrc}}, {{ic|~/.tig_history}}
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]
+
| [https://github.com/jonas/tig/blob/master/NEWS.adoc#tig-22 2.2]
| [https://www.mail-archive.com/lftp@uniyar.ac.ru/msg04301.html]
+
| [https://github.com/jonas/tig/issues/513]
 +
| {{ic|~/.local/share/tig}} directory must exist, writes to {{ic|~/.tig_history}} otherwise.
 +
|-
 +
| {{AUR|tmuxinator}}
 +
| {{ic|~/.tmuxinator}}
 +
| [https://github.com/tmuxinator/tmuxinator/pull/511/commits/2636923 2636923]
 +
| [https://github.com/tmuxinator/tmuxinator/pull/511]
 
|
 
|
 
|-
 
|-
| [https://github.com/derat/xsettingsd xsettingsd]
+
| [[Transmission]]
| {{ic|~/.xsettingsd}}
+
| {{ic|~/.transmission}}
| [https://github.com/derat/xsettingsd/commit/b4999f5e9e99224caf97d09f25ee731774ecd7be 4ecd7be]
+
| [https://github.com/transmission/transmission/commit/b71a298 b71a298]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[surfraw]]
+
| {{Pkg|util-linux}}
| {{ic|~/.surfraw.conf}} {{ic|~/.surfraw.bookmarks}}
+
|
| [http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=3e4591d8 3e4591d8] [http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=bd8c427d bd8c427d] [http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=f57fc718 f57fc718]
+
| [https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=570b321 570b321]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://milkytracker.org/ milkytracker]
+
| [[Uzbl]]
| {{ic|~/.milkytracker_config}}
+
|
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c55 eb487c55]
+
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]
| [https://github.com/Deltafire/MilkyTracker/issues/12]
+
| [https://github.com/uzbl/uzbl/pull/150]
 
|
 
|
 
|-
 
|-
| [https://github.com/SirCmpwn/sway sway]
+
| {{Pkg|vimb}}
| {{ic|~/.sway/config}}
 
| [https://github.com/SirCmpwn/sway/commit/614393c09 614393c09]
 
| [https://github.com/SirCmpwn/sway/issues/5]
 
 
|
 
|
|-
 
| [[fish]]
 
 
|
 
|
 
|
 
|
 
|
 
|
 +
|-
 +
| [[VirtualBox]]
 +
| {{ic|~/.VirtualBox}}
 +
| [https://www.virtualbox.org/ticket/5099?action=diff&version=7 4.3]
 +
| [https://www.virtualbox.org/ticket/5099]
 
|
 
|
 
|-
 
|-
| [https://bitbucket.org/opentyrian/opentyrian/wiki/Home opentyrian]
+
| {{Pkg|vis}}
| {{ic|~/.opentyrian}}
+
| {{ic|~/.vis}}
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]
+
|
| [https://web.archive.org/web/20140815181350/http://code.google.com/p/opentyrian/issues/detail?id=125]
+
[https://github.com/martanne/vis/commit/68a25c7 68a25c7]
 +
[https://github.com/martanne/vis/commit/d138908 d138908]
 +
| [https://github.com/martanne/vis/pull/303]
 
|
 
|
 
|-
 
|-
| [http://neovim.io/ neovim]
+
| [[VLC]]
| {{ic|~/.nvim}} {{ic|~/.nvimlog}} {{ic|~/.nviminfo}}
+
| {{ic|~/.vlcrc}}
| [https://github.com/neovim/neovim/commit/1ca5646bb 1ca5646bb]
+
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1 16f32e1]
| [https://github.com/neovim/neovim/issues/78] [https://github.com/neovim/neovim/pull/3198]
+
| [https://trac.videolan.org/vlc/ticket/1267]
 
|
 
|
 
|-
 
|-
| [http://rr-project.org/ rr]
+
| {{Pkg|warsow}}
| {{ic|~/.rr}}
+
| {{ic|~/.warsow-2.x}}
| [https://github.com/mozilla/rr/commit/02e7d41e 02e7d41e]
+
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]
| [https://github.com/mozilla/rr/issues/1455]
+
| [https://github.com/Qfusion/qfusion/issues/298]
|  
+
|
 
|-
 
|-
|[[wireshark]]
+
| [[Wireshark]]
|{{ic|~/.wireshark}}
+
| {{ic|~/.wireshark}}
|[https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b0b53fa5937aa7ba258427ca0f3581dba725230d b0b53fa5]
+
| [https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b0b53fa b0b53fa]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [http://fanglingsu.github.io/vimb/ vimb]
+
| {{AUR|xsettingsd-git}}
 +
| {{ic|~/.xsettingsd}}
 +
| [https://github.com/derat/xsettingsd/commit/b4999f5 b4999f5]
 
|
 
|
 
|
 
|
 +
|-
 +
| [[xmonad]]
 +
| {{ic|~/.xmonad}}
 +
| [https://github.com/xmonad/xmonad/commit/40fc10b 40fc10b]
 
|
 
|
 +
[https://github.com/xmonad/xmonad/issues/61]
 +
[https://code.google.com/p/xmonad/issues/detail?id=484]
 +
| Alternatively the environments {{ic|XMONAD_CONFIG_HOME}}, {{ic|XMONAD_DATA_HOME}}, and {{ic|XMONAD_CACHE_HOME}} are also available.
 +
|-
 +
| {{Pkg|xsel}}
 +
| {{ic|~/.xsel.log}}
 +
| [https://github.com/kfish/xsel/commit/ee7b481 ee7b481]
 +
| [https://github.com/kfish/xsel/issues/10]
 +
|
 +
|-
 +
| {{Pkg|yarn}}
 +
|
 +
{{ic|~/.yarnrc<br>
 +
~/.yarn/<br>
 +
~/.yarncache/<br>
 +
~/.yarn-config/}}
 +
| [https://github.com/yarnpkg/yarn/commit/2d454b5 2d454b5]
 +
| [https://github.com/yarnpkg/yarn/pull/5336]
 
|
 
|
 
|}
 
|}
  
==Partial==
+
=== Partial ===
 
{| class="wikitable sortable" style="width: 100%"
 
{| class="wikitable sortable" style="width: 100%"
 
! Application
 
! Application
Line 452: Line 775:
 
! Notes
 
! Notes
 
|-
 
|-
| [http://abook.sourceforge.net/ abook]
+
| {{Pkg|abook}}
 
| {{ic|~/.abook}}
 
| {{ic|~/.abook}}
 
|
 
|
 
|
 
|
| {{ic|$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc \
+
| {{ic|1=$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook}}
--datafile "$XDG_CACHE_HOME"/abook/addressbook}}
 
 
|-
 
|-
| [http://aspell.net/ aspell]
+
| {{Pkg|ack}}
 +
| {{ic|~/.ackrc}}
 +
|
 +
| [https://github.com/beyondgrep/ack2/issues/516]
 +
| {{ic|1=$ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"}}
 +
|-
 +
| [[Anki]]
 +
|
 +
{{ic|~/Anki<br>
 +
~/Documents/Anki}}
 +
|
 +
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]
 +
| {{ic|1=$ anki -b "$XDG_DATA_HOME"/Anki}}
 +
|-
 +
| [[aspell]]
 
| {{ic|~/.aspell.conf}}
 
| {{ic|~/.aspell.conf}}
 
|
 
|
 
|
 
|
 +
| {{ic|1=$ export ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl"}}
 +
|-
 +
| [[Atom]]
 +
| {{ic|~/.atom}}
 +
|
 +
| [https://github.com/atom/atom/issues/8281]
 +
| {{ic|1=$ export ATOM_HOME="$XDG_DATA_HOME"/atom}}
 +
|-
 +
| {{Pkg|aws-cli}}
 +
| {{ic|~/.aws}}
 +
| [https://github.com/aws/aws-cli/commit/fc5961ea2cc0b5976ac9f777e20e4236fd7540f5 1.7.45]
 +
| [https://github.com/aws/aws-cli/issues/2433]
 +
|
 +
{{ic|1=$ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials<br>
 +
$ export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config}}
 +
|-
 +
| {{Pkg|bash-completion}}
 +
| {{ic|~/.bash_completion}}
 +
|
 +
|
 +
| {{ic|1=$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion}}
 +
|-
 +
| [[bazaar]]
 +
|
 +
{{ic|~/.bazaar<br>
 +
~/.bzr.log}}
 +
| [https://bugs.launchpad.net/bzr/+bug/195397/comments/15 2.3.0]
 +
| [https://bugs.launchpad.net/bzr/+bug/195397]
 +
| Discussion in upstream bug states that bazaar will use {{ic|~/.config/bazaar}} if it exists. The logfile {{ic|~/.bzr.log}} might still be written.
 +
|-
 +
| {{Aur|buchhaltung-git}}
 +
|
 +
{{ic|~/.buchhaltung}}
 +
|
 +
| [https://github.com/johannesgerer/buchhaltung/issues/44]
 +
| {{ic|1=$ export BUCHHALTUNG="$XDG_CONFIG_HOME"/buchhaltung}}
 +
|-
 +
| [[Ruby#Bundler]]
 +
| {{ic|~/.bundle}}
 +
|
 +
| [https://github.com/bundler/bundler/pull/6024] [https://github.com/bundler/bundler/issues/4333]
 +
| {{ic|1=$ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle}}
 +
|-
 +
| {{Pkg|calcurse}}
 +
| {{ic|~/.calcurse}}
 
|
 
|
 +
| [https://github.com/lfos/calcurse/pull/254] [https://github.com/lfos/calcurse/issues/252]
 +
| {{ic|1=$ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse}}
 
|-
 
|-
| [http://crates.io/ cargo]
+
| [[Rust#Cargo]]
 
| {{ic|~/.cargo}}
 
| {{ic|~/.cargo}}
 
|
 
|
| [https://github.com/rust-lang/cargo/pull/148] [https://github.com/rust-lang/cargo/issues/1734]
+
| [https://github.com/rust-lang/cargo/issues/1734] [https://github.com/rust-lang/rfcs/pull/1615] [https://github.com/rust-lang/cargo/pull/5183] [https://github.com/rust-lang/cargo/pull/148]
 
| {{ic|1=$ export CARGO_HOME="$XDG_DATA_HOME"/cargo}}
 
| {{ic|1=$ export CARGO_HOME="$XDG_DATA_HOME"/cargo}}
 
|-
 
|-
 
| [[ccache]]
 
| [[ccache]]
 
| {{ic|~/.ccache}}
 
| {{ic|~/.ccache}}
|  
+
|
|  
+
|
| {{ic|1=$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache}}
+
| {{ic|1=$ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config}}<br>
 +
{{ic|1=$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache}}
 +
|-
 +
| {{AUR|chez-scheme}}
 +
| {{ic|~/.chezscheme_history}}
 +
|
 +
|
 +
| {{ic|1=$ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history}}
 
|-
 
|-
 
| [[conky]]
 
| [[conky]]
Line 482: Line 872:
 
| [https://github.com/brndnmtthws/conky/issues/144]
 
| [https://github.com/brndnmtthws/conky/issues/144]
 
| {{ic|1=$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc}}
 
| {{ic|1=$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc}}
 +
|-
 +
| [[coreutils]]
 +
| {{ic|~/.dircolors}}
 +
|
 +
|
 +
| {{ic|1=$ eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)}}
 
|-
 
|-
 
| [http://www.dungeoncrawl.org/ crawl]
 
| [http://www.dungeoncrawl.org/ crawl]
Line 487: Line 883:
 
|
 
|
 
|
 
|
| {{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/ # Trailing '/' is required.}}
+
| The trailing slash is required:
 +
 
 +
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}
 
|-
 
|-
| [https://www.gnu.org/software/coreutils/ coreutils]
+
| {{Pkg|clusterssh}}
| {{ic|~/.dircolors}}
+
| {{ic|~/.clusterssh/}}
 +
|
 +
|
 +
| {{ic|1=$ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'" }}
 +
{{hc|$XDG_CONFIG_HOME/clusterssh/config|2=
 +
extra_cluster_file=$HOME/.config/clusterssh/clusters
 +
extra_tag_file=$HOMe/.config/clusterssh/tags
 +
}}
 +
Despite this, clusterssh will still create {{ic|~/.clusterssh/}}.
 +
|-
 +
| [[CUDA]]
 +
| {{ic|~/.nv}}
 +
|
 +
|
 +
| {{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
 +
|-
 +
| [[dict]]
 +
| {{ic|~/.dictrc}}
 +
|
 +
|
 +
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}
 +
|-
 +
| [[Docker]]
 +
| {{ic|~/.docker}}
 +
|
 +
|
 +
| {{ic|1=$ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker}}
 +
|-
 +
| {{Pkg|docker-machine}}
 +
| {{ic|~/.docker/machine}}
 +
|
 
|
 
|
 +
| {{ic|1=$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine}}
 +
|-
 +
| [[DOSBox]]
 +
| {{ic|~/.dosbox/dosbox-0.74-2.conf}}
 
|
 
|
| {{ic|$ source "$(dircolors "$XDG_CONFIG_HOME"/dircolors)"}}
+
| [https://www.vogons.org/viewtopic.php?t=29599]
 +
| {{ic|1=$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf}}
 
|-
 
|-
 
| [[ELinks]]
 
| [[ELinks]]
Line 501: Line 934:
 
| {{ic|1=$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks}}
 
| {{ic|1=$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks}}
 
|-
 
|-
| [[PulseAudio]]
+
| {{Pkg|emscripten}}
| {{ic|~/.esd_auth}}
+
|
 +
{{ic|~/.emscripten<br>
 +
~/.emscripten_sanity<br>
 +
~/.emscripten_ports<br>
 +
~/.emscripten_cache__last_clear}}
 +
|
 +
| [https://github.com/kripken/emscripten/issues/3624]
 
|
 
|
 +
{{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config<br>
 +
$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache<br>
 +
$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache<br>
 +
$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache}}
 +
|-
 +
| {{AUR|freecad}}
 +
| {{ic|~/.FreeCAD}}
 
|
 
|
| Very likely generated by the {{ic|module-esound-protocol-unix.so}} module.  It can be configured to use a different location but it makes much more sense to just comment out this module in {{ic|/etc/pulse/default.pa}} or {{ic|"$XDG_CONFIG_HOME"/pulse/default.pa}}.
+
| [https://www.freecadweb.org/tracker/view.php?id=2956]
 +
| {{ic|1=$ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg}}
 +
 
 +
Despite these options, {{AUR|freecad}} will still create the file {{ic|.FreeCAD/cookie}} as the web module has it [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Web/Gui/CookieJar.cpp#L55 hard coded]
 
|-
 
|-
| [http://www.gnu.org/software/gdb/ gdb]
+
| [[GDB]]
 
| {{ic|~/.gdbinit}}
 
| {{ic|~/.gdbinit}}
 
|
 
|
 
|
 
|
| {{ic|$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init}}
+
| {{ic|1=$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init}}
 
|-
 
|-
| [[gimp]]
+
| {{AUR|get_iplayer}}
| {{ic|~/.gimp-2.8}}
+
| {{ic|~/.get_iplayer}}
| [https://git.gnome.org/browse/gimp/commit/?id=60e0cfe 60e0cfe]
+
|
| [https://bugzilla.gnome.org/show_bug.cgi?id=166643] [https://mail.gnome.org/archives/gimp-developer-list/2012-October/msg00028.html]
+
|
| {{ic|1=$ export GIMP2_DIRECTORY="$XDG_CONFIG_HOME"/gimp}}
+
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}
 
|-
 
|-
| [http://guichaz.free.fr/gliv/ gliv]
+
| [[getmail]]
 +
| {{ic|~/.getmail/getmailrc}}
 +
|
 +
|
 +
| {{ic|1=$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"}}
 +
|-
 +
| {{AUR|gliv}}
 
| {{ic|~/.glivrc}}
 
| {{ic|~/.glivrc}}
 
|
 
|
Line 525: Line 980:
 
| {{ic|1=$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc}}
 
| {{ic|1=$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc}}
 
|-
 
|-
| [[GPG|gpg]]
+
| [[GnuPG]]
 
| {{ic|~/.gnupg}}
 
| {{ic|~/.gnupg}}
 +
|
 +
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]
 +
|
 +
{{ic|1=$ export GNUPGHOME="$XDG_DATA_HOME"/gnupg<br>
 +
$ gpg2 --homedir "$XDG_DATA_HOME"/gnupg}}
 +
|-
 +
| [[Google Earth]]
 +
| {{ic|~/.googleearth}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export GNUPGHOME="$XDG_CONFIG_HOME"/gnupg}}
+
| Some paths can be changed with the {{ic|KMLPath}} and {{ic|CachePath}} options in {{ic|~/.config/Google/GoogleEarthPlus.conf}}
{{ic|$ gpg2 --homedir "$XDG_CONFIG_HOME"/gnupg}}
 
 
|-
 
|-
| [[gtk|gtk2]]
+
| {{Pkg|gopass}}
| {{ic|~/.gtkrc-2.0}}
+
| {{ic|~/.password-store}}
 +
|
 +
|
 +
| Override settings in {{ic|~/.config/gopass/config.yml}}:
 +
{{hc|~/.config/gopass/config.yml|
 +
root:
 +
path: gpgcli-gitcli-fs+file:///home/<userid>/.config/password-store
 +
}}
 +
|-
 +
| [https://sourceforge.net/projects/gqclient GQ LDAP client]
 +
|
 +
{{ic|~/.gq<br>
 +
~/.gq-state}}
 +
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]
 +
|
 
|
 
|
 +
{{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc<br>
 +
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state<br>
 +
$ mkdir -p "$(dirname "$GQSTATE")"}}
 +
|-
 +
| [[Gradle]]
 +
| {{ic|~/.gradle}}
 
|
 
|
| {{ic|1=$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc}}
+
| [https://discuss.gradle.org/t/be-a-nice-freedesktop-citizen-move-the-gradle-to-the-appropriate-location-in-linux/2199]
 +
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}
 
|-
 
|-
| [[gtk]]
+
| [[GTK]] 1
 
| {{ic|~/.gtkrc}}
 
| {{ic|~/.gtkrc}}
 
|
 
|
Line 544: Line 1,027:
 
| {{ic|1=$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc}}
 
| {{ic|1=$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc}}
 
|-
 
|-
| [http://httpie.org httpie]
+
| [[GTK]] 2
 +
| {{ic|~/.gtkrc-2.0}}
 +
|
 +
|
 +
| {{ic|1=$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc}}
 +
|-
 +
| {{Pkg|hledger}}
 +
| {{ic|~/.hledger.journal}}
 +
|
 +
| [https://github.com/simonmichael/hledger/issues/1081]
 +
| {{ic|1=$ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal}}
 +
|-
 +
| {{Pkg|httpie}}
 
| {{ic|~/.httpie}}
 
| {{ic|~/.httpie}}
 
|
 
|
Line 550: Line 1,045:
 
| {{ic|1=$ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie}}
 
| {{ic|1=$ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie}}
 
|-
 
|-
| [http://ipython.org ipython]/[http://jupyter.org jupyter]
+
| {{AUR|intellij-idea-ce}}
 +
| {{ic|~/.IntelliJIdea*}}
 +
|
 +
| [https://youtrack.jetbrains.com/issue/IDEA-22407]
 +
| {{bc|1=$ mkdir -p "${XDG_CONFIG_HOME}"/intellij-idea
 +
$ cp /opt/intellij-idea-ce/bin/{idea.properties,idea64.vmoptions} "${XDG_CONFIG_HOME}"/intellij-idea/
 +
$ export IDEA_PROPERTIES="${XDG_CONFIG_HOME}"/intellij-idea/idea.properties
 +
$ export IDEA_VM_OPTIONS="${XDG_CONFIG_HOME}"/intellij-idea/idea.vmoptions}}
 +
{{hc|$XDG_CONFIG_HOME/idea.properties|<nowiki>
 +
# these are hardcoded but you get the idea
 +
idea.config.path=${user.home}/.config/intellij-idea
 +
idea.system.path=${user.home}/.cache/intellij-idea
 +
idea.log.path=${user.home}/.cache/intellij-idea/log
 +
idea.plugins.path=${user.home}/.local/share/intellij-idea/plugins
 +
</nowiki>}}
 +
|-
 +
| [http://ipython.org ipython]/[[jupyter]]
 
| {{ic|~/.ipython}}
 
| {{ic|~/.ipython}}
 +
|
 +
| [https://github.com/ipython/ipython/pull/4457 won't fix]
 +
|
 +
{{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter<br>
 +
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}
 +
|-
 +
| [https://ruby-doc.org/stdlib/libdoc/irb/rdoc/IRB.html irb]
 +
| {{ic|~/.irbrc}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter}}{{ic|1=$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}
+
| {{hc|1=~/.profile|2=$ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc}}
 +
{{hc|1="$XDG_CONFIG_HOME"/irb/irbrc|2=IRB.conf[:SAVE_HISTORY] {{!}}{{!}}= 1000
 +
IRB.conf[:HISTORY_FILE] {{!}}{{!}}= File.join(ENV["XDG_DATA_HOME"], "irb", "history")}}
 
|-
 
|-
| [http://isync.sourceforge.net isync]
+
| [[irssi]]
 +
| {{ic|~/.irssi}}
 +
|
 +
| [https://github.com/irssi/irssi/pull/511]
 +
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi}}
 +
|-
 +
| [[isync]]
 
| {{ic|~/.mbsyncrc}}
 
| {{ic|~/.mbsyncrc}}
 
|
 
|
 
|
 
|
| {{ic|$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}
+
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}
 
|-
 
|-
| [ftp://www.x.org/pub/xorg/current/doc/libICE/ice.html libice]
+
| [[Java#OpenJDK]]
| {{ic|~/.ICEauthority}}
+
| {{ic|~/.java/.userPrefs}}
|  
+
|
|  
+
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]
| {{ic|1=$ export ICEAUTHORITY="$XDG_RUNTIME_DIR"/X11/iceauthority}}
+
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}
 +
|-
 +
| [[ledger]]
 +
| {{ic|~/.ledgerrc}}, {{ic|~/.pricedb}}
 +
|
 +
| [https://github.com/ledger/ledger/issues/1820]
 +
| {{ic|1=$ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc}}
 
|-
 
|-
| [http://www.greenwoodsoftware.com/less/ less]
+
| [[Core utilities|less]]
 
| {{ic|~/.lesshst}}
 
| {{ic|~/.lesshst}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}
+
|
 +
{{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less<br>
 +
$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey<br>
 +
$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}
 +
 
 
{{ic|1=$ export LESSHISTFILE=-}} can be used to disable this feature.
 
{{ic|1=$ export LESSHISTFILE=-}} can be used to disable this feature.
 
|-
 
|-
| [http://www.wolfram.com/mathematica/ Mathematica]
+
| {{Pkg|libdvdcss}}
 +
| {{ic|~/.dvdcss}}
 +
|
 +
| [https://mailman.videolan.org/pipermail/libdvdcss-devel/2014-August/001022.html]
 +
| {{ic|1=$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss}}
 +
|-
 +
| {{Pkg|libice}}
 +
| {{ic|~/.ICEauthority}}
 +
|
 +
| [https://gitlab.freedesktop.org/xorg/lib/libice/issues/2]
 +
| {{ic|1=$ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority}}
 +
Make sure {{ic|XDG_CACHE_HOME}} is set beforehand to directory user running [[Xorg]] has write access to.
 +
 
 +
'''Do not''' use {{ic|XDG_RUNTIME_DIR}} as it is available '''after''' login. Display managers that launch [[Xorg]] (like [[GDM]]) will repeatedly fail otherwise.
 +
|-
 +
| [[Xorg|libx11]]
 +
|
 +
{{ic|~/.XCompose<br>
 +
~/.compose-cache}}
 +
|
 +
|
 +
|
 +
{{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose<br>
 +
$ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose}}
 +
|-
 +
| {{Pkg|ltrace}}
 +
| {{ic|~/.ltrace.conf}}
 +
|
 +
|
 +
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}
 +
|-
 +
| {{Pkg|maven}}
 +
| {{ic|~/.m2}}
 +
|
 +
| [https://issues.apache.org/jira/browse/MNG-6603]
 +
| {{ic|1=$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml}}
 +
{{hc|[http://maven.apache.org/settings.html settings.xml]|<nowiki><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
 +
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 +
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
 +
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
 +
  ...
 +
  <localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository>
 +
  ...
 +
</settings></nowiki>}}
 +
|-
 +
| [[Mathematica]]
 
| {{ic|~/.Mathematica}}
 
| {{ic|~/.Mathematica}}
 
|
 
|
Line 581: Line 1,163:
 
| {{ic|1=$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica}}
 
| {{ic|1=$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica}}
 
|-
 
|-
| [http://mednafen.sourceforge.net/ mednafen]
+
| {{Pkg|mednafen}}
 
| {{ic|~/.mednafen}}
 
| {{ic|~/.mednafen}}
 
|
 
|
Line 587: Line 1,169:
 
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}
 
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}
 
|-
 
|-
| [[moc]]
+
| {{Pkg|mitmproxy}}
 +
| {{ic|~/.mitmproxy}}
 +
|
 +
|
 +
|
 +
{{ic|1=$ alias mitmproxy="mitmproxy --set confdir=$XDG_CONFIG_HOME/mitmproxy"<br>
 +
$ alias mitmweb="mitmweb --set confdir=$XDG_CONFIG_HOME/mitmproxy"}}
 +
|-
 +
| [[MOC]]
 
| {{ic|~/.moc}}
 
| {{ic|~/.moc}}
 
|
 
|
 
|
 
|
| {{ic|$ mocp -M "$XDG_CONFIG_HOME"/moc}}
+
|
{{ic|1=$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}
+
{{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc<br>
 +
$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}
 +
|-
 +
| {{Pkg|monero}}
 +
| {{ic|~/.bitmonero}}
 +
|
 +
|
 +
| {{ic|1=$ monerod --data-dir "$XDG_DATA_HOME"/bitmonero}}
 +
|-
 +
| {{Pkg|most}}
 +
| {{ic|~/.mostrc}}
 +
|
 +
|
 +
| {{ic|1=$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc}}
 
|-
 
|-
 
| [[MPlayer]]
 
| [[MPlayer]]
Line 598: Line 1,201:
 
|
 
|
 
|
 
|
| {{ic|1=$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer}}  
+
| {{ic|1=$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer}}
 +
|-
 +
| [[MySQL]]
 +
| {{ic|~/.mysql_history}}
 +
|
 +
|
 +
| {{ic|1=$ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history}}
 
|-
 
|-
| [[mutt]]
+
| {{Pkg|ncurses}}
| {{ic|~/.mutt}}
+
| {{ic|~/.terminfo}}
 +
|
 +
|
 +
| Precludes system path searching:
 +
 
 +
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo<br>
 +
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}
 +
|-
 +
| {{Pkg|ncmpc}}
 +
| {{ic|~/.ncmpc}}
 +
|
 +
|
 +
| {{ic|ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config}}
 +
|-
 +
| [[Netbeans]]
 +
| {{ic|~/.netbeans}}
 
|
 
|
| [http://dev.mutt.org/trac/ticket/3207]
+
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]
| {{ic|$ mutt -F "$XDG_CONFIG_HOME"/mutt/muttrc}}
+
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}
{{hc|muttrc|
 
set header_cache &#61; $XDG_CACHE_HOME/mutt/headers
 
set message_cachedir &#61; $XDG_DATA_HOME/mutt/messages
 
set mailcap_path &#61; $XDG_CONFIG_HOME/mutt/mailcap
 
set record &#61; $XDG_DATA_HOME/mutt/record/sent
 
}}
 
 
|-
 
|-
| [[ncmpcpp]]
+
| [[Node.js]]
| {{ic|~/.ncmpcpp}}
+
| {{ic|~/.node_repl_history}}
 
|
 
|
 
|
 
|
| {{ic|$ ncmpcpp -c "$XDG_CONFIG_HOME"/ncmpcpp/config}}
+
| {{ic|1=$ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history}} [https://nodejs.org/api/repl.html#repl_environment_variable_options]
 
|-
 
|-
 
| [[notmuch]]
 
| [[notmuch]]
Line 622: Line 1,240:
 
|
 
|
 
| [http://notmuchmail.org/pipermail/notmuch/2011/007007.html]
 
| [http://notmuchmail.org/pipermail/notmuch/2011/007007.html]
| {{ic|1=$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc}}
+
|
{{ic|1=$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}
+
{{ic|1=$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc<br>
 +
$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}
 
|-
 
|-
| {{pkg|ncurses}}
+
| {{Pkg|npm}}
| {{ic|~/.terminfo}}
+
|
 +
{{ic|~/.npm<br>
 +
~/.npmrc}}
 
|
 
|
 +
| [https://github.com/npm/cli/issues/654]
 +
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}
 +
{{hc|npmrc|<nowiki>
 +
prefix=${XDG_DATA_HOME}/npm
 +
cache=${XDG_CACHE_HOME}/npm
 +
tmp=${XDG_RUNTIME_DIR}/npm
 +
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
 +
</nowiki>}}
 +
{{ic|prefix}} is unnecessary (and unsupported) if Node.js is installed by {{AUR|nvm}}.
 +
|-
 +
| {{Pkg|nuget}}
 +
| {{ic|~/.nuget/packages}}
 
|
 
|
| {{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo # Precludes system path searching.}}
+
| [https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders]
{{ic|1=$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}
+
| {{ic|1=$ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages}}
 
|-
 
|-
| [[NVIDIA]], [[CUDA]]
+
| [[NVIDIA]]
 
| {{ic|~/.nv}}
 
| {{ic|~/.nv}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
+
| Uses {{ic|XDG_CACHE_HOME}} if set, otherwise improperly falls back to {{ic|~/.nv}} instead of {{ic|~/.cache}}.
{{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
 
 
|-
 
|-
| [https://pypi.python.org/pypi/setuptools python-setuptools]
+
| {{Pkg|nvidia-settings}}
| {{ic|~/.python-eggs}}
+
| {{ic|~/.nvidia-settings-rc}}
 +
|
 +
|
 +
| {{ic|1=$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings}}
 +
|-
 +
| {{AUR|nvm}}
 +
| {{ic|~/.nvm}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}
+
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}
 
|-
 
|-
| [http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html readline]
+
| [[Octave]]
| {{ic|~/.inputrc}}
+
|
 +
{{ic|~/octave<br>
 +
~/.octave_packages<br>
 +
~/.octave_hist}}
 +
|
 
|
 
|
 
|
 
|
| {{ic|1=$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc}}
+
{{ic|1=$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"<br>
 +
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"}}
 +
 
 +
{{hc|$XDG_CONFIG_HOME/octave/octaverc|<nowiki>
 +
source /usr/share/octave/site/m/startup/octaverc;
 +
pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;
 +
pkg local_list /home/<your username>/.local/share/octave/octave_packages;
 +
</nowiki>}}
 +
The {{ic|local_list}} option must be given an absolute path.
 
|-
 
|-
| [[screen]]
+
| {{Pkg|openscad}}
| {{ic|~/.screenrc}}
+
| {{ic|~/.OpenSCAD}}
|  
+
| [https://github.com/openscad/openscad/commit/7c3077b0f 7c3077b0f]
|  
+
| [https://github.com/openscad/openscad/issues/125]
| {{ic|1=$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc}}
+
| Does not fully honour XDG Base Directory Specification, see [https://github.com/openscad/openscad/issues/373]
 +
 
 +
Currently it [https://github.com/openscad/openscad/blob/master/src/PlatformUtils-posix.cc#L20 hard-codes] {{ic|~/.local/share}}.
 
|-
 
|-
| [[tmux]]
+
| [[OpenSSL]]
| {{ic|~/.tmux.conf}}
+
| {{ic|~/.rnd}}
 +
|
 
|
 
|
| [http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/6013] [http://sourceforge.net/p/tmux/mailman/message/30619546/]
+
| Seeding file {{ic|.rnd}}'s location can be set with {{ic|RANDFILE}} environment variable per [https://www.openssl.org/docs/faq.html FAQ].
| {{ic|$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf}}
 
{{ic|1= $ export TMUX_TMPDIR="$XDG_RUNTIME_DIR"/tmux}}
 
 
|-
 
|-
| [[Rxvt-unicode#Daemon-client|urxvtd]]
+
| {{Pkg|parallel}}
| {{ic|~/.urxvt/urxvtd-hostname}}
+
| {{ic|~/.parallel}}
 +
| [https://git.savannah.gnu.org/cgit/parallel.git/commit/?id=685018f532f4e2d24b84eb28d5de3d759f0d1af1 20170422]
 
|
 
|
 +
| {{ic|1=$ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel}}
 +
|-
 +
| [[Pass]]
 +
| {{ic|~/.password-store}}
 
|
 
|
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvt/urxvt-"$(hostname)"}}
 
|-
 
| [[WeeChat]]
 
| {{ic|~/.weechat}}
 
 
|
 
|
| [http://savannah.nongnu.org/task/?10934]
+
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}
| {{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat}}
 
{{ic|$ weechat -d "$XDG_CONFIG_HOME"/weechat}}
 
 
|-
 
|-
| [[wine]]
+
| [[Pidgin]]
| {{ic|~/.wine}}
+
| {{ic|~/.purple}}
 
|
 
|
| [https://bugs.winehq.org/show_bug.cgi?id=20888]
+
| [https://developer.pidgin.im/ticket/4911]
| {{ic|1=$ export WINEPREFIX="$XDG_DATA_HOME"/wine}}
+
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}
 
|-
 
|-
| {{pkg|xorg-xauth}}
+
| [[PostgreSQL]]
| {{ic|~/.Xauthority}}
 
 
|
 
|
 +
{{ic|~/.psqlrc<br>
 +
~/.psql_history<br>
 +
~/.pgpass<br>
 +
~/.pg_service.conf}}
 +
| 9.2
 +
| [https://www.postgresql.org/docs/current/static/app-psql.html] [https://www.postgresql.org/docs/current/static/libpq-envars.html]
 
|
 
|
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/X11/xauthority}}
+
{{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"<br>
 +
$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"<br>
 +
$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"<br>
 +
$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"}}
 +
 
 +
It is required to create both directories: {{ic|1=$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"}}
 
|-
 
|-
| [http://www.x.org/wiki/ libx11]
+
| [[PulseAudio]]
| {{ic|~/.XCompose}}
+
| {{ic|~/.esd_auth}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose}}
+
| Very likely generated by the {{ic|module-esound-protocol-unix.so}} module.  It can be configured to use a different location but it makes much more sense to just comment out this module in {{ic|/etc/pulse/default.pa}} or {{ic|"$XDG_CONFIG_HOME"/pulse/default.pa}}.
 
|-
 
|-
| {{pkg|xorg-xinit}}
+
| {{aur|python-azure-cli}}
| {{ic|~/.xinitrc}}
+
| {{ic|~/.azure}}
 
|
 
|
 
|
 
|
| {{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc}}  
+
| {{ic|1=$ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure}}
 
|-
 
|-
| {{pkg|xorg-xrdb}}
+
| {{Pkg|python-setuptools}}
| {{ic|~/.Xresources}} {{ic|~/.Xdefaults}}
+
| {{ic|~/.python-eggs}}
 
|
 
|
 
|
 
|
| Ultimately you [http://superuser.com/questions/243914/xresources-or-xdefaults should be] using {{ic|Xresources}} and since these resources are loaded via {{ic|xrdb}} you can specify a path such as {{ic|xrdb -load ~/.config/X11/xresources}}.
+
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}
 
|-
 
|-
| [http://www.openscad.org/ openscad]
+
| {{Pkg|python-pylint}}
| {{ic|~/.OpenSCAD}}
+
| {{ic|~/.pylint.d}}
| [https://github.com/openscad/openscad/commit/7c3077b0f 7c3077b0f]
+
|
| [https://github.com/openscad/openscad/issues/125]
+
| [https://github.com/PyCQA/pylint/issues/1364 won't fix]
| Does not fully honour XDG Base Directory Specification, see [https://github.com/openscad/openscad/issues/373]
+
| {{ic|1=$ export PYLINTHOME="$XDG_CACHE_HOME"/pylint}}
 
 
Currently it [https://github.com/openscad/openscad/blob/master/src/PlatformUtils-posix.cc#L20 hard-codes] {{ic|~/.local/share}}.
 
 
|-
 
|-
|[http://www.videolan.org/developers/libdvdcss.html libdvdcss]
+
| {{Pkg|racket}}
|{{ic|~/.dvdcss}}
+
| {{ic|~/.racketrc<br>
 +
~/.racket}}
 
|
 
|
|[https://mailman.videolan.org/pipermail/libdvdcss-devel/2014-August/001022.html]
+
| [https://github.com/racket/racket/issues/2740]
|{{ic|1=$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss}}
+
| {{ic|1=$ export PLTUSERHOME="$XDG_DATA_HOME"/racket}}
 
|-
 
|-
| [http://jonas.nitro.dk/tig/ tig]
+
| [[readline]]
| {{ic|~/.tigrc}}
+
| {{ic|~/.inputrc}}
|  
+
|
|  
+
|
| {{ic|1=$ export TIGRC_USER="$XDG_CONFIG_HOME"/tig/tigrc}}
+
| {{ic|1=$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc}}
 
|-
 
|-
| [http://utopia.knoware.nl/~hlub/uck/rlwrap/ rlwrap]
+
| {{Pkg|rlwrap}}
 
| {{ic|~/.*_history}}
 
| {{ic|~/.*_history}}
 
|
 
|
Line 733: Line 1,392:
 
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}
 
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}
 
|-
 
|-
| [https://github.com/bengardner/uncrustify uncrustify]
+
| [[Ruby#RubyGems]]
| {{ic|~/.uncrustify.cfg}}
+
| {{ic|~/.gem}}
 +
|
 +
|
 
|
 
|
 +
{{ic|1=$ export GEM_HOME="$XDG_DATA_HOME"/gem<br>
 +
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem}}
 +
 +
Make sure to remove {{ic|gem: --user-install}} from {{ic|/etc/gemrc}}
 +
|-
 +
| [[Rust#Rustup]]
 +
| {{ic|~/.rustup}}
 
|
 
|
| {{ic|1=$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg}}
+
| [https://github.com/rust-lang-nursery/rustup.rs/issues/247]
 +
| {{ic|1=$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup}}
 
|-
 
|-
| [http://www.vergenet.net/~conrad/software/xsel/ xsel]
+
| {{Pkg|sbt}}
| {{ic|~/.xsel.log}}
+
| {{ic|~/.sbt}}
|  
+
{{ic|~/.ivy2}}
| [https://github.com/kfish/xsel/issues/10]
+
|
| {{ic|1=$ xsel --logfile "$XDG_CACHE_HOME"/xsel/xsel.log}}
+
| [https://github.com/sbt/sbt/issues/3681]
 +
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}} (beware [https://github.com/sbt/sbt/issues/3598])
 
|-
 
|-
| [http://kripken.github.io/emscripten-site/ emscripten]
+
| [[GNU Screen]]
| {{ic|~/.emscripten}} {{ic|~/.emscripten_sanity}} {{ic|~/.emscripten_ports}} {{ic|~/.emscripten_cache__last_clear}}
+
| {{ic|~/.screenrc}}
|  
+
|
| [https://github.com/kripken/emscripten/issues/3624 3624]
+
|
| {{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config}}
+
| {{ic|1=$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc}}
{{ic|1=$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache}}
 
{{ic|1=$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache}}
 
{{ic|$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache}}
 
 
|-
 
|-
| [https://www.stackage.org/ stack]
+
| [[Haskell#Stack]]
 
| {{ic|~/.stack}}
 
| {{ic|~/.stack}}
 
|
 
|
Line 763: Line 1,430:
 
| {{ic|~/.subversion}}
 
| {{ic|~/.subversion}}
 
|
 
|
| [https://mail-archives.apache.org/mod_mbox/subversion-users/201204.mbox/%3c4F8FBCC6.4080205@ritsuka.org%3e][http://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3c20150917222954.GA20331@teapot%3e]
+
| [https://issues.apache.org/jira/browse/SVN-4599] [https://mail-archives.apache.org/mod_mbox/subversion-users/201204.mbox/%3c4F8FBCC6.4080205@ritsuka.org%3e][http://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3c20150917222954.GA20331@teapot%3e]
| {{ic|$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}
+
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}
 +
|-
 +
| {{Pkg|task}}
 +
|
 +
{{ic|~/.task<br>
 +
~/.taskrc}}
 +
|
 +
|
 +
|
 +
{{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task<br>
 +
$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}
 
|-
 
|-
| [http://ltrace.org/ ltrace]
+
| {{AUR|tiptop}}
| {{ic|~/.ltrace.conf}}
+
| {{ic|~/.tiptoprc}}
 +
|
 +
|
 +
| This will still expect the {{ic|.tiptoprc}} file.
 +
{{ic|$ tiptop -W "$XDG_CONFIG_HOME"/tiptop}}
 +
|-
 +
| [[tmux]]
 +
| {{ic|~/.tmux.conf}}
 +
|
 +
| [https://github.com/tmux/tmux/issues/142]
 +
| {{ic|1=$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf}}
 +
 
 +
{{ic|1=$ export TMUX_TMPDIR="$XDG_RUNTIME_DIR"}}
 +
|-
 +
| {{Pkg|uncrustify}}
 +
| {{ic|~/.uncrustify.cfg}}
 +
|
 +
|
 +
| {{ic|1=$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg}}
 +
|-
 +
| [[Unison]]
 +
| {{ic|~/.unison}}
 +
|
 +
|
 +
| {{ic|1=$ export UNISON="$XDG_DATA_HOME"/unison}}
 +
|-
 +
| [[Rxvt-unicode/Tips_and_tricks#Daemon-client|urxvtd]]
 +
| {{ic|~/.urxvt/urxvtd-hostname}}
 +
|
 +
|
 +
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd}}
 +
|-
 +
| [[Vagrant]]
 +
|
 +
{{ic|~/.vagrant.d<br>
 +
~/.vagrant.d/aliases}}
 +
|
 +
| [https://www.vagrantup.com/docs/other/environmental-variables.html]
 +
|
 +
{{ic|1=$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant<br>
 +
$ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases}}
 +
|-
 +
| [[Visual Studio Code]]
 +
| {{ic|~/.vscode-oss/argv.json}}
 +
|
 +
| [https://github.com/Microsoft/vscode/issues/3884]
 +
|
 +
|-
 +
| [[WeeChat]]
 +
| {{ic|~/.weechat}}
 +
|
 +
| [http://savannah.nongnu.org/task/?10934] [https://github.com/ipython/ipython/pull/4457]
 +
|
 +
{{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat<br>
 +
$ weechat -d "$XDG_CONFIG_HOME"/weechat}}
 +
|-
 +
| [[wget]]
 +
|
 +
{{ic|~/.wgetrc<br>
 +
~/.wget-hsts}}
 +
|
 +
|
 +
|
 +
{{ic|1=$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"<br>
 +
and add the following as an alias for wget:<br>
 +
$ wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"<br>
 +
or set the hsts-file variable with an absolute path as wgetrc does not support environment variables:<br>
 +
$ echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"}}
 +
|-
 +
| [[wine]]
 +
| {{ic|~/.wine}}
 +
|
 +
| [https://bugs.winehq.org/show_bug.cgi?id=20888]
 +
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:
 +
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes<br>
 +
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}
 +
|-
 +
| [[xbindkeys]]
 +
| {{ic|~/.xbindkeysrc}}
 +
|
 +
|
 +
| {{ic|1=$ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config}}
 +
|-
 +
| {{Pkg|xorg-xauth}}
 +
| {{ic|~/.Xauthority}}
 +
|
 +
|
 +
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}
 +
 
 +
Note that [[LightDM]] does not allow you to change this variable. If you change it nonetheless, you will not be able to login. Use [[startx]] instead or [https://askubuntu.com/a/961459 configure LightDM]. According to [https://unix.stackexchange.com/a/175331] [[SLiM]] has {{ic|~/.Xauthority}} hardcoded.
 +
|-
 +
| [[xinit]]
 +
|
 +
{{ic|~/.xinitrc<br>
 +
~/.xserverrc}}
 +
|
 +
| [https://gitlab.freedesktop.org/xorg/app/xinit/issues/14]
 +
|
 +
{{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc<br>
 +
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}
 +
 
 +
Note that these variables are respected by ''xinit'', but not by ''startx''. Instead, specify the filename as an argument:
 +
 
 +
{{ic|1=$ startx "$XDG_CONFIG_HOME/X11/xinitrc" -- "$XDG_CONFIG_HOME/X11/xserverrc" vt1}}
 +
|-
 +
| {{Pkg|xorg-xrdb}}
 +
|
 +
{{ic|~/.Xresources<br>
 +
~/.Xdefaults}}
 +
|
 +
|
 +
| Ultimately you [https://superuser.com/questions/243914/xresources-or-xdefaults should be] using {{ic|Xresources}} and since these resources are loaded via {{ic|xrdb}} you can specify a path such as {{ic|1=$ xrdb -load ~/.config/X11/xresources}}.
 +
|-
 +
| {{Pkg|z}}
 
|
 
|
 +
{{ic|~/.z}}
 
|
 
|
| {{ic|$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}
+
| [https://github.com/rupa/z/issues/267]
 +
| {{ic|1=$ export _Z_DATA="$XDG_DATA_HOME/z"}}
 
|}
 
|}
  
==Hardcoded==
+
=== Hardcoded ===
  
 
{| class="wikitable sortable" style="width: 100%"
 
{| class="wikitable sortable" style="width: 100%"
 
! Application
 
! Application
 
! Legacy Path
 
! Legacy Path
! Supported Since
 
 
! Discussion
 
! Discussion
 
! Notes
 
! Notes
 +
|-
 +
| [[adb]]
 +
| {{ic|~/.android/}}
 +
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]
 +
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}
 +
|-
 +
| [[AMule]]
 +
| {{ic|~/.aMule}}
 +
|
 +
|
 +
|-
 +
| [https://developer.android.com/studio/index.html Android Studio]
 +
|
 +
{{ic|~/.AndroidStudio2.3<br>
 +
~/.android/<br>
 +
~/.java/}}
 +
|
 +
|
 +
|-
 +
| [https://osdn.net/projects/anthy/ anthy]
 +
| {{ic|~/.anthy}}
 +
| [https://osdn.net/ticket/browse.php?group_id=14&tid=28397]
 +
|
 
|-
 
|-
 
| [https://directory.apache.org/studio/ Apache Directory Studio]
 
| [https://directory.apache.org/studio/ Apache Directory Studio]
 
| {{ic|~/.ApacheDirectoryStudio}}
 
| {{ic|~/.ApacheDirectoryStudio}}
 
|
 
|
 +
|
 +
|-
 +
| [https://christian.amsuess.com/tools/arandr/ ARandR]
 +
| {{ic|~/.screenlayout}}
 +
|
 +
|
 +
|-
 +
| [[Arduino]]
 +
|
 +
{{ic|~/.arduino15<br>
 +
~/.jssc}}
 +
| [https://github.com/arduino/Arduino/issues/3915 won't fix]
 +
|
 +
|-
 +
| [https://www.audacityteam.org/ Audacity]
 +
| {{ic|~/.audacity-data/}}
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[AMule]]
+
| [http://fixounet.free.fr/avidemux/ Avidemux]
| {{ic|~/.aMule}}
+
| {{ic|~/.avidemux6}}
 
|
 
|
 
|
 
|
 +
|-
 +
| [[Bash]]
 
|
 
|
 +
{{ic|~/.bashrc<br>
 +
~/.bash_history<br>
 +
~/.bash_profile<br>
 +
~/.bash_login<br>
 +
~/.bash_logout}}
 +
| [http://savannah.gnu.org/support/?108134 won't fix]
 +
| {{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}
 +
A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bash.bashrc}}.
 +
 +
Specify {{ic|--init-file <file>}} as an alternative to {{ic|~/.bashrc}} for interactive shells.
 
|-
 
|-
 
| [https://www.haskell.org/cabal/ cabal]
 
| [https://www.haskell.org/cabal/ cabal]
| {{ic|~/.cabal}}
+
| {{ic|~/.cabal/}}
|
 
 
| [https://github.com/haskell/cabal/issues/680]
 
| [https://github.com/haskell/cabal/issues/680]
 
| See discussion for potential workarounds.  It is not very easy or straightforward but may be possible to emulate Base Directory compliance.
 
| See discussion for potential workarounds.  It is not very easy or straightforward but may be possible to emulate Base Directory compliance.
 
|-
 
|-
| [http://julialang.org/ julia]
+
| {{AUR|chatty}}
| {{ic|~/.juliarc.jl}} {{ic|~/.julia_history}}
+
| {{ic|~/.chatty/}}
 +
| [https://github.com/chatty/chatty/issues/273]
 
|
 
|
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]
+
|-
 +
| {{Pkg|cmake}}
 +
| {{ic|~/.cmake/}}
 
|
 
|
 +
| Used for the user package registry {{ic|~/.cmake/packages/<package>}}, detailed in {{man|7|cmake-packages|User Package Registry}} and [https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/Package-Registry the Package registry wiki page]. Looks like it's hardcoded, for example in [https://gitlab.kitware.com/cmake/cmake/blob/v3.12.1/Source/cmFindPackageCommand.cxx#L1221 cmFindPackageCommand.cxx].
 
|-
 
|-
| [http://www.milkytracker.org/ milkytracker]
+
| [[Cinnamon]]
| {{ic|~/.milkytracker_config}}
+
| {{ic|~/.cinnamon/}}
 +
| [https://github.com/linuxmint/Cinnamon/issues/7807]
 
|
 
|
| [https://github.com/Deltafire/MilkyTracker/issues/12]
+
|-
 +
| {{AUR|cryptomator}}
 +
| {{ic|~/.Cryptomator}}
 +
| [https://github.com/cryptomator/cryptomator/issues/710]
 
|
 
|
 
|-
 
|-
| [[firefox]]
+
| [[CUPS]]
| {{ic|~/.mozilla}}
+
| {{ic|~/.cups/}}
 +
| [https://github.com/apple/cups/issues/4243 won't fix]
 
|
 
|
| [https://bugzil.la/259356]
+
|-
 +
| [[darcs]]
 +
| {{ic|~/.darcs/}}
 +
| [http://bugs.darcs.net/issue2453]
 
|
 
|
 
|-
 
|-
| [http://gstreamer.freedesktop.org/documentation/gstreamer010.html gstreamer-0.10]
+
| [[dbus]]
| {{ic|~/.gstreamer-0.10}}
+
| {{ic|~/.dbus/}}
|  
+
| [https://gitlab.freedesktop.org/dbus/dbus/issues/46]
|  
+
| This should be avoidable with kdbus [citation needed].
| Use [http://gstreamer.freedesktop.org/ gstreamer-1.0] instead.
+
|-
 +
| {{Pkg|devede}}
 +
| {{ic|~/.devedeng}}
 +
|
 +
| Hardcoded [https://gitlab.com/rastersoft/devedeng/blob/f0893b3ff7b14723bd148db35bdfe2d284156d19/src/devedeng/configuration_data.py#L111 here]
 
|-
 
|-
| [[python]]
+
| [https://wiki.gnome.org/Apps/Dia Dia]
| {{ic|~/.python_history}}
+
| {{ic|~/.dia/}}
 
|
 
|
 
|
 
|
| All history from interactive sessions is saved to {{ic|~/.python_history}} by default since [https://bugs.python.org/issue5845 version 3.4], custom path can still be set the same way as in older versions (see [https://docs.python.org/3/library/readline.html?highlight=readline#example this example]).
 
 
|-
 
|-
| {{pkg|procps-ng}}
+
| {{Pkg|dotnet-sdk}}
| {{ic|~/.toprc}}
+
| {{ic|~/.dotnet/}}
 +
| [https://github.com/dotnet/cli/issues/7569]
 
|
 
|
| [https://bugzilla.redhat.com/show_bug.cgi?id=1155265]
+
|-
 +
| [[Eclipse]]
 +
| {{ic|~/.eclipse/}}
 +
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]
 +
| Option {{ic|1=-Dosgi.configuration.area=@user.home/.config/..}} overrides but must be added to {{ic|"$ECLIPSE_HOME"/eclipse.ini"}} rather than command line which means you must have write access to {{ic|$ECLIPSE_HOME}}. (Arch Linux hard-codes {{ic|$ECLIPSE_HOME}} in {{ic|/usr/bin/eclipse}})
 +
|-
 +
| [[Emacs]]
 
|
 
|
 +
{{ic|~/.emacs<br>
 +
~/.emacs.d/}}
 +
| [http://debbugs.gnu.org/cgi/bugreport.cgi?bug=583]
 +
| It's possible to set {{ic|HOME}}, but it has unexpected side effects.  So far the most promising approach is modifying another Emacs environment variable to alter the load path and author your own site file which can manually load up your init file, but it changes the load process significantly.
 
|-
 
|-
| [[vim]]
+
| [http://www.fetchmail.info/ Fetchmail]
| {{ic|~/.vim}} {{ic|~/.vimrc}} {{ic|~/.viminfo}}
+
| {{ic|~/.fetchmailrc}}
 +
|
 
|
 
|
 +
|-
 +
| [[Firefox]]
 +
| {{ic|~/.mozilla/}}
 +
| [https://bugzil.la/259356]
 
|
 
|
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.
 
 
{{hc|~/.vim/vimrc|
 
set undodir&#61;~/.cache/vim/undo " vim will not create this directory.
 
set directory&#61;~/.cache/vim/swap " vim will not create this directory.
 
set backupdir&#61;~/.cache/vim/backup " vim will not create this directory.
 
set viminfo+&#61;n~/.cache/vim/viminfo
 
}}
 
 
* https://tlvince.com/vim-respect-xdg
 
 
|-
 
|-
| {{pkg|xdg-utils}}
+
| [[Flatpak]]
| {{ic|~/.gnome}}
+
| {{ic|~/.var/}}
 +
| [https://github.com/flatpak/flatpak/issues/46] [https://github.com/flatpak/flatpak.github.io/issues/191] [https://github.com/flatpak/flatpak/issues/1651 won't fix]
 
|
 
|
 +
|-
 +
| [https://www.haskell.org/ghc/ GHC]
 +
| {{ic|~/.ghc}}
 +
| [https://ghc.haskell.org/trac/ghc/ticket/6077]
 
|
 
|
| For some reason the script {{ic|xdg-desktop-menu}} hard-codes {{ic|gnome_user_dir&#61;"$HOME/.gnome/apps"}}.  This is used by [[chromium]] amoung others.
 
 
|-
 
|-
| [[SQLite]]
+
| {{Pkg|ghidra}}
| {{ic|~/.sqlite_history}}
 
 
|
 
|
 +
| [https://github.com/NationalSecurityAgency/ghidra/issues/908]
 
|
 
|
 +
|-
 +
| [[Goldendict]]
 +
| {{ic|~/.goldendict/}}
 +
| [https://github.com/goldendict/goldendict/issues/151]
 
|
 
|
 
|-
 
|-
| [http://w1.fi/ wpa_cli]
+
| {{Pkg|gramps}}
| {{ic|~/.wpa_cli_history}}
+
| {{ic|~/.gramps/}}
 +
| [https://gramps-project.org/bugs/view.php?id=8025]
 +
|
 +
|-
 +
| {{Pkg|grsync}}
 +
| {{ic|~/.grsync/}}
 +
| [https://sourceforge.net/p/grsync/feature-requests/15/]
 
|
 
|
 +
|-
 +
| [http://recordmydesktop.sourceforge.net/about.php gtk-recordMyDesktop]
 +
| {{ic|~/.gtk-recordmydesktop}}
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[xmonad]]
+
| {{Pkg|hplip}}
| {{ic|~/.xmonad}}
+
| {{ic|~/.hplip/}}
 +
| [https://bugs.launchpad.net/hplip/+bug/307152]
 
|
 
|
| [https://code.google.com/p/xmonad/issues/detail?id=484]
+
|-
 +
| [http://www.idris-lang.org/ idris]
 +
| {{ic|~/.idris}}
 +
| [https://github.com/idris-lang/Idris-dev/pull/3456]
 
|
 
|
 
|-
 
|-
| [[eclipse]]
+
| [[Java]] OpenJDK
| {{ic|~/.eclipse}}
+
| {{ic|~/.java/fonts}}
|
+
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]
+
|
| Option {{ic|1=-Dosgi.configuration.area=@user.home/.config/..}} overrides but must be added to {{ic|"$ECLIPSE_HOME"/eclipse.ini"}} rather than command line which means you must have write access to {{ic|$ECLIPSE_HOME}}. (Arch Linux hard-codes {{ic|$ECLIPSE_HOME}} in {{ic|/usr/bin/eclipse}})
 
 
|-
 
|-
|[https://perf.wiki.kernel.org/index.php/Main_Page perf]
+
| [[Java]] OpenJFX
|{{ic|~/.debug}}
+
| {{ic|~/.java/webview}}
 
|
 
|
 
|
 
|
|Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L18 tools/perf/util/config.c:18].
 
 
|-
 
|-
| [[zsh]]
+
| [http://julialang.org/ julia]
| {{ic|~/.zshrc}} {{ic|~/.zprofile}} {{ic|~/.zshenv}} {{ic|~/.zlogin}} {{ic|~/.zlogout}} {{ic|~/.zsh_history}} {{ic|~/.zhistory}}
+
|
|
+
{{ic|~/.juliarc.jl<br>
| [http://www.zsh.org/mla/workers/2013/msg00692.html]
+
~/.julia_history}}
| Consider exporting {{ic|1=ZDOTDIR=$HOME/.config/zsh}} in {{ic|~/.zshenv}} (this is hardcoded due to the bootstrap problem).  You could also add this to {{ic|/etc/zsh/zshenv}} and avoid the need for any dotfiles in your {{ic|HOME}}.  Doing this however requires root privilege which may not be viable and is system-wide.
+
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]
{{ic|1=export HISTFILE="$XDG_DATA_HOME"/zsh/history}}
+
|
 
|-
 
|-
| [[bash]]
+
| [http://www.linux-pam.org/ Linux PAM]
| {{ic|~/.bashrc}} {{ic|~/.bash_history}} {{ic|~/.bash_profile}} {{ic|~/.bash_login}} {{ic|~/.bash_logout}}
+
| {{ic|~/.pam_environment}}
|
+
| [https://github.com/linux-pam/linux-pam/issues/7]
| [http://savannah.gnu.org/support/?108134]
+
| Hardcoded in [https://github.com/linux-pam/linux-pam/blob/master/modules/pam_env/pam_env.c modules/pam_env/pam_env.c]
| {{ic|1=export HISTFILE="$XDG_DATA_HOME"/bash/history}}
 
 
|-
 
|-
 
| [http://lldb.llvm.org/ lldb]
 
| [http://lldb.llvm.org/ lldb]
| {{ic|~/.lldb}} {{ic|~/.lldbinit}}
 
|
 
|
 
 
|
 
|
 +
{{ic|~/.lldb<br>
 +
~/.lldbinit}}
 
|
 
|
|-
 
| [https://www.gnu.org/software/emacs/ emacs]
 
| {{ic|~/.emacs}} {{ic|~/.emacs.d}}
 
 
|
 
|
| [http://debbugs.gnu.org/cgi/bugreport.cgi?bug=583]
 
| It's possible to set {{ic|HOME}}, but it has unexpected side effects.  So far the most promising approach is modifying another Emacs environment variable to alter the load path and author your own site file which can manually load up your init file, but it changes the load process significantly.
 
 
|-
 
|-
 
| [http://www.mathomatic.org/ mathomatic]
 
| [http://www.mathomatic.org/ mathomatic]
| {{ic|~/.mathomaticrc}} {{ic|~/.matho_history}}
 
 
|
 
|
 +
{{ic|~/.mathomaticrc<br>
 +
~/.matho_history}}
 
|
 
|
 
| History can be moved by using {{ic|rlwrap mathomatic -r}} with the {{ic|RLWRAP_HOME}} environment set appropriately.
 
| History can be moved by using {{ic|rlwrap mathomatic -r}} with the {{ic|RLWRAP_HOME}} environment set appropriately.
 +
|-
 +
| [[Minecraft]]
 +
| {{ic|~/.minecraft/}}
 +
| [https://bugs.mojang.com/browse/MCL-2563]
 +
|
 +
|-
 +
| [[Minetest]]
 +
| {{ic|~/.minetest/}}
 +
| [https://github.com/minetest/minetest/issues/864 won't fix] [https://github.com/minetest/minetest/issues/8151]
 +
|
 
|-
 
|-
 
| [https://www.mongodb.org/ mongodb]
 
| [https://www.mongodb.org/ mongodb]
| {{ic|~/.mongorc.js}} {{ic|~/.dbshell}}
 
 
|
 
|
 +
{{ic|~/.mongorc.js<br>
 +
~/.dbshell}}
 
| [https://jira.mongodb.org/browse/DOCS-5652?jql=text%20~%20%22.mongorc.js%22]
 
| [https://jira.mongodb.org/browse/DOCS-5652?jql=text%20~%20%22.mongorc.js%22]
| [http://stackoverflow.com/a/22349050/4200039 This Stack Overflow] thread suggests a partial workaround using command-line switch {{ic|--norc}}.
+
| [https://stackoverflow.com/questions/22348604/the-mongorc-js-is-not-found-but-there-is-one/22349050#22349050 This Stack Overflow thread] suggests a partial workaround using command-line switch {{ic|--norc}}.
 +
|-
 +
| [http://0ldsk00l.ca/nestopia/ Nestopia UE]
 +
| {{ic|~/.nestopia/}}
 +
| [https://github.com/0ldsk00l/nestopia/pull/292 won't fix]
 +
|
 
|-
 
|-
| [https://opensource.conformal.com/wiki/xombrero xombrero]
 
| {{ic|~/.xombrero}}
 
 
|
 
|
| [https://github.com/conformal/xombrero/issues/74]
+
| {{ic|~/.netrc}}
 +
|
 +
| Like {{ic|~/.ssh}}, many programs expect this file to be here.  These include projects like curl ({{ic|CURLOPT_NETRC_FILE}}), ftp ({{ic|NETRC}}), s-nail ({{ic|NETRC}}), etc.  While some of them offer alternative configurable locations, many do not such as w3m, wget and lftp.
 +
|-
 +
| [[Networkmanager-openvpn]]
 +
| {{ic|~/.cert/nm-openvpn}}
 +
| [https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/issues/35]
 +
|
 +
|-
 +
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]
 +
| {{ic|~/.pki}}
 +
| [https://bugzilla.mozilla.org/show_bug.cgi?id=818686]
 +
|
 +
|-
 +
| [[OpenSSH]]
 +
| {{ic|~/.ssh}}
 +
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050 won't fix]
 +
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.
 +
|-
 +
| [https://www.palemoon.org/ palemoon]
 +
| {{ic|~/.moonchild productions}}
 +
| [https://forum.palemoon.org/viewtopic.php?f=5&t=9639]
 +
|
 +
|-
 +
| {{AUR|parsec-bin}}
 +
| {{ic|~/.parsec}}
 +
|
 +
|
 +
|-
 +
| {{AUR|pcsxr}}
 +
| {{ic|~/.pcsxr}}
 +
|
 +
| A {{ic|-cfg}} flag exists, but can only be set relative to {{ic|~/.pcsxr}}.
 +
|-
 +
| [https://perf.wiki.kernel.org/index.php/Main_Page perf]
 +
| {{ic|~/.debug}}
 +
|
 +
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L29 tools/perf/util/config.c:29].
 +
|-
 +
| [[perl]]
 +
| {{ic|~/.cpan}}
 +
|
 +
| Perl5's [https://github.com/andk/cpanpm CPAN] expects {{ic|~/.cpan}}.
 +
|-
 +
| various [[shell]]s and [[display manager]]s
 +
| {{ic|~/.profile}}
 +
|
 +
|
 +
|-
 +
| [[python]]
 +
| {{ic|~/.python_history}}
 +
|
 +
| All history from interactive sessions is saved to {{ic|~/.python_history}} by default since [https://bugs.python.org/issue5845 version 3.4], custom path can still be set the same way as in older versions (see [https://docs.python.org/3/library/readline.html?highlight=readline#example this example]).
 +
|-
 +
| [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer]
 +
| {{ic|~/.designer}}
 +
|
 +
|
 +
|-
 +
| [http://rednotebook.sourceforge.net/ RedNotebook]
 +
| {{ic|~/.rednotebook}}
 +
|
 +
|
 +
|-
 +
| [https://remarkableapp.github.io/linux.html Remarkable]
 +
| {{ic|~/.remarkable}}
 +
|
 +
|
 +
|-
 +
| [https://www.renpy.org/ Ren'Py]
 +
| {{ic|~/.renpy}}
 +
| [https://github.com/renpy/renpy/issues/1377]
 +
|
 +
|-
 +
| [[SANE]]
 +
| {{ic|~/.sane/}}
 +
|
 +
| {{ic|scanimage}} creates a {{ic|.cal}} file there
 +
|-
 +
| {{Pkg|scribus}}
 +
| {{ic|~/.scribus}}
 +
|
 +
|
 +
|-
 +
| {{Pkg|sdcv}}
 +
| {{ic|~/.stardict/}}
 +
| [https://github.com/Dushistov/sdcv/issues/51]
 +
| Only workaround is modifying {{ic|HOME}}
 +
|-
 +
| [http://www.seamonkey-project.org/ SeaMonkey]
 +
| {{ic|~/.mozilla/}}
 +
| [https://bugzil.la/726939]
 +
|
 +
|-
 +
| {{Pkg|simplescreenrecorder}}
 +
| {{ic|~/.ssr/}}
 +
| [https://github.com/MaartenBaert/ssr/issues/407]
 +
| Author seems against this feature.
 +
|-
 +
| [https://www.gnu.org/software/solfege/solfege.html Solfege]
 +
|
 +
{{ic|~/.solfege<br>
 +
~/.solfegerc<br>
 +
~/lessonfiles}}
 +
| [https://savannah.gnu.org/bugs/index.php?50251]
 +
|
 +
|-
 +
| [https://spacemacs.org/ spacemacs]
 +
|
 +
{{ic|~/.spacemacs<br>
 +
~/.spacemacs.d}}
 +
| [https://github.com/syl20bnr/spacemacs/issues/3589]
 +
|
 +
|-
 +
| [https://spamassassin.apache.org/ SpamAssassin]
 +
| {{ic|~/.spamassassin}}
 +
|
 
|
 
|
 
|-
 
|-
Line 935: Line 1,940:
 
|
 
|
 
|
 
|
 +
|-
 +
| [[SQLite]]
 
|
 
|
 +
{{ic|~/.sqlite_history<br>
 +
~/.sqliterc}}
 +
| [https://www.sqlite.org/src/info/696e82f7c82d1720]
 +
| {{ic|1=$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history<br>
 +
$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}
 
|-
 
|-
| [http://www.musicpd.org/clients/ncmpc/ ncmpc]
+
| [[Steam]]
| {{ic|~/.ncmpc}}
+
|
 +
{{ic|~/.steam<br>
 +
~/.steampath<br>
 +
~/.steampid}}
 +
| [https://github.com/ValveSoftware/steam-for-linux/issues/1890]
 +
| Many game engines (Unity 3D, Unreal) follow the specification, but then individual game publishers hardcode the paths in [https://www.ctrl.blog/entry/flatpak-steamcloud-xdg Steam Auto-Cloud] causing game-saves to sync to the wrong directory.
 +
|-
 +
| [[TeamSpeak]]
 +
| {{ic|~/.ts3client}}
 +
|
 +
|
 +
|-
 +
| {{pkg|texinfo}}
 +
| {{ic|~/.infokey}}
 +
|
 +
| {{ic|$ info --init-file "$XDG_CONFIG_HOME/infokey"}}
 +
|-
 +
| [http://www.texmacs.org/ TeXmacs]
 +
| {{ic|~/.TeXmacs}}
 
|
 
|
 
|
 
|
 +
|-
 +
| [[Thunderbird]]
 +
| {{ic|~/.thunderbird/}}
 +
| [https://bugzil.la/735285]
 
|
 
|
 
|-
 
|-
| [https://www.palemoon.org/ palemoon]
+
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]
| {{ic|~/.moonchild productions}}
+
| {{ic|~/.texlive}}
 +
|
 
|
 
|
| [https://forum.palemoon.org/viewtopic.php?f=5&t=9639]
+
|-
 +
| [[vim]]
 
|
 
|
 +
{{ic|~/.vim<br>
 +
~/.vimrc<br>
 +
~/.viminfo}}
 +
| [https://github.com/vim/vim/issues/2034]
 +
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.
 +
 +
{{ic|1=<nowiki>$ mkdir -p "$XDG_DATA_HOME"/vim/{undo,swap,backup}</nowiki>}}
 +
 +
{{hc|"$XDG_CONFIG_HOME"/vim/vimrc|
 +
set undodir&#61;$XDG_DATA_HOME/vim/undo
 +
set directory&#61;$XDG_DATA_HOME/vim/swap
 +
set backupdir&#61;$XDG_DATA_HOME/vim/backup
 +
set viminfo+&#61;'1000,n$XDG_DATA_HOME/vim/viminfo
 +
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
 +
}}
 +
 +
{{hc|~/.profile|
 +
export VIMINIT&#61;":source $XDG_CONFIG_HOME"/vim/vimrc
 +
}}
 +
 +
* https://tlvince.com/vim-respect-xdg
 
|-
 
|-
 
| [http://www.vimperator.org/ vimperator]
 
| [http://www.vimperator.org/ vimperator]
 
| {{ic|~/.vimperatorrc}}
 
| {{ic|~/.vimperatorrc}}
|
 
 
| [http://www.mozdev.org/pipermail/vimperator/2009-October/004848.html]
 
| [http://www.mozdev.org/pipermail/vimperator/2009-October/004848.html]
 
| {{ic|1=$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"}}
 
| {{ic|1=$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"}}
 +
 
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}
 
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}
 
|-
 
|-
| [[CUPS]]
+
| {{Pkg|w3m}}
| {{ic|~/.cups}}
+
| {{ic|~/.w3m}}
|  
+
| [https://sourceforge.net/p/w3m/feature-requests/31/]
| [http://www.cups.org/str.php?L4243]
+
|
 +
|-
 +
| [https://w1.fi/ wpa_cli]
 +
| {{ic|~/.wpa_cli_history}}
 +
|
 +
|
 +
|-
 +
| {{Pkg|xdg-utils}}
 +
| {{ic|~/.gnome}}
 +
| [https://bugs.freedesktop.org/show_bug.cgi?id=90775]
 +
| For some reason the script {{ic|xdg-desktop-menu}} hard-codes {{ic|gnome_user_dir&#61;"$HOME/.gnome/apps"}}.  This is used by [[chromium]] among others.
 +
|-
 +
| [https://opensource.conformal.com/wiki/xombrero xombrero]{{Dead link|2020|02|26}}
 +
| {{ic|~/.xombrero}}
 +
| [https://github.com/conformal/xombrero/issues/74]{{Dead link|2020|02|26}}
 +
|
 +
|-
 +
| {{Pkg|xournalpp}}
 +
| {{ic|~/.xournalpp}}
 +
| [https://github.com/xournalpp/xournalpp/issues/1101]
 +
|
 +
|-
 +
| [https://yardoc.org YARD]
 +
| {{ic|~/.yard}}
 +
| [https://github.com/lsegal/yard/issues/1230]
 +
| Would accept Pull Request if anyone want to implement it.
 +
|-
 +
| [https://nmap.org/zenmap/ zenmap] {{Pkg|nmap}}
 +
| {{ic|~/.zenmap}}
 +
| [http://seclists.org/nmap-dev/2012/q2/163] [https://github.com/nmap/nmap/issues/590]
 
|
 
|
 
|-
 
|-
| [[dbus]]
+
| [[zsh]]
| {{ic|~/.dbus}}
+
|
|
+
{{ic|~/.zshrc<br>
| [https://bugs.freedesktop.org/show_bug.cgi?id=35887]
+
~/.zprofile<br>
| This should be avoidable with kdbus [citation needed].
+
~/.zshenv<br>
 +
~/.zlogin<br>
 +
~/.zlogout<br>
 +
~/.histfile<br>
 +
~/.zcompdump}}
 +
| [http://www.zsh.org/mla/workers/2013/msg00692.html]
 +
| Consider exporting {{ic|1=ZDOTDIR=$HOME/.config/zsh}} in {{ic|~/.zshenv}} (this is hardcoded due to the bootstrap problem).  You could also add this to {{ic|/etc/zsh/zshenv}} and avoid the need for any dotfiles in your {{ic|HOME}}.  Doing this however requires root privilege which may not be viable and is system-wide.
 +
 
 +
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/zsh/history}}
 +
 
 +
{{ic| $ compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION}} [https://unix.stackexchange.com/questions/391641/separate-path-for-zcompdump-files] /!\ The folder needs to exist
 +
 
 
|}
 
|}
  
==Library and language support==
+
== Libraries ==
  
 
; C
 
; C
 
: [https://github.com/Cloudef/chck/tree/master/chck/xdg C99: Cloudef's simple implementation].
 
: [https://github.com/Cloudef/chck/tree/master/chck/xdg C99: Cloudef's simple implementation].
 +
 +
; JVM: Java, Kotlin, Clojure, Scala, ...
 +
: [https://github.com/soc/directories-jvm directories-jvm]
 +
 +
; Go
 +
: [https://github.com/ProtonMail/go-appdir go-appdir]
  
 
; Haskell
 
; Haskell
Line 980: Line 2,083:
 
; Perl
 
; Perl
 
: [http://search.cpan.org/dist/File-BaseDir/lib/File/BaseDir.pm File-BaseDir]
 
: [http://search.cpan.org/dist/File-BaseDir/lib/File/BaseDir.pm File-BaseDir]
: [https://github.com/Aerdan/perl-file-xdg perl-file-xdg]
+
: [https://github.com/Aerdan/perl-file-xdg perl-file-xdg]{{Dead link|2020|02|26}}
 +
 
 +
; Ruby
 +
: [https://github.com/rubyworks/xdg rubyworks/xdg]
 +
 
 +
; Rust
 +
: [https://github.com/soc/directories-rs directories-rs]
 +
: [https://github.com/whitequark/rust-xdg rust-xdg]
  
 
; Python
 
; Python
: [http://freedesktop.org/wiki/Software/pyxdg/ pyxdg]
+
: [https://freedesktop.org/wiki/Software/pyxdg/ pyxdg]
  
 
; Vala
 
; Vala
Line 991: Line 2,101:
 
==See also==
 
==See also==
  
* [https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp Rob Pike: "Dotfiles" being hidden is a UNIXv2 mistake].
+
* [https://wiki.gnome.org/Initiatives/GnomeGoals/XDGConfigFolders GNOME Goal: XDG Base Directory Specification Usage]
* [http://www.freedesktop.org/software/systemd/man/systemd-path.html systemd-path(1)]
+
* [https://web.archive.org/web/20180827160401/plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp Rob Pike: "Dotfiles" being hidden is a UNIXv2 mistake].
* [http://www.freedesktop.org/software/systemd/man/file-hierarchy.html file-hierarchy(7)]
+
* {{man|1|systemd-path}}
 +
* {{man|7|file-hierarchy}}
 
* [https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes Grawity's notes on dotfiles].
 
* [https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes Grawity's notes on dotfiles].
 
* [https://github.com/grawity/dotfiles/blob/master/.environ.notes Grawity's notes on environment variables].
 
* [https://github.com/grawity/dotfiles/blob/master/.environ.notes Grawity's notes on environment variables].
 
* [https://ploum.net/207-modify-your-application-to-use-xdg-folders/ ploum.net: Modify Your Application to use XDG Folders].
 
* [https://ploum.net/207-modify-your-application-to-use-xdg-folders/ ploum.net: Modify Your Application to use XDG Folders].
 +
* The [https://pcgamingwiki.com/wiki/Home PCGamingWiki] attempts to document whether or not Linux PC games follow the XDG Base Directory Specification.

Latest revision as of 23:35, 27 February 2020

This article summarizes the XDG Base Directory specification in #Specification and tracks software support in #Support.

Specification

Please read the full specification. This section will attempt to break down the essence of what it tries to achieve.

Only XDG_RUNTIME_DIR is set by default through pam_systemd. It is up to the user to explicitly define the other variables according to the specification.

User directories

  • XDG_CONFIG_HOME
    • Where user-specific configurations should be written (analogous to /etc).
    • Should default to $HOME/.config.
  • XDG_CACHE_HOME
    • Where user-specific non-essential (cached) data should be written (analogous to /var/cache).
    • Should default to $HOME/.cache.
  • XDG_DATA_HOME
    • Where user-specific data files should be written (analogous to /usr/share).
    • Should default to $HOME/.local/share.
  • XDG_RUNTIME_DIR
    • Used for non-essential, user-specific data files such as sockets, named pipes, etc.
    • Not required to have a default value; warnings should be issued if not set or equivalents provided.
    • Must be owned by the user with an access mode of 0700.
    • Filesystem fully featured by standards of OS.
    • Must be on the local filesystem.
    • May be subject to periodic cleanup.
    • Modified every 6 hours or set sticky bit if persistence is desired.
    • Can only exist for the duration of the user's login.
    • Should not store large files as it may be mounted as a tmpfs.

System directories

  • XDG_DATA_DIRS
    • List of directories separated by : (analogous to PATH).
    • Should default to /usr/local/share:/usr/share.
  • XDG_CONFIG_DIRS
    • List of directories separated by : (analogous to PATH).
    • Should default to /etc/xdg.

Support

This section exists to catalog the growing set of software using the XDG Base Directory Specification introduced in 2003. This is here to demonstrate the viability of this specification by listing commonly found dotfiles and their support status. For those not currently supporting the Base Directory Specification, workarounds will be demonstrated to emulate it instead.

The workarounds will be limited to anything not involving patching the source, executing code stored in environment variables or compile-time options. The rationale for this is that configurations should be portable across systems and having compile-time options prevent that.

Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.

Contributing

When contributing make sure to use the correct section.

Nothing should require code evaluation (such as vim and VIMINIT), patches or compile-time options to gain support and anything which does must be deemed hardcoded. Additionally if the process is too error prone or difficult, such as Haskell's cabal or Eclipse, they should also be considered as hardcoded.

  • The first column should be either a link to an internal article, a Template:Pkg or a Template:AUR.
  • The second column is for any legacy files and directories the project had (one per line), this is done so people can find them even if they are no longer read.
  • In the third, try to find the commit or version a project switched to XDG Base Directory or any open discussions and include them in the next two columns (two per line).
  • The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.

Supported

Application Legacy Path Supported Since Discussion Notes
aerc-gitAUR
antimicroAUR[broken link: package not found] ~/.antimicro edba864 [1]
aria2 ~/.aria2 8bc1d37 [2]
asunder

~/.asunder
~/.asunder_album_artist
~/.asunder_album_genre
~/.asunder_album_title

2.9.0 [3] Uses XDG_CONFIG_HOME/asunder/asunder for ~/.asunder and XDG_CACHE_HOME/asunder/asunder_album_... for the other 3 files. Legacy paths are not removed after migration, they have to be deleted manually.
binwalk ~/.binwalk 2051757 [4] $XDG_CONFIG_HOME/binwalk

Supported only in Git master branch, there's no updated stable release yet.

Blender ~/.blender 4293f47 [5]
calibre
Chromium ~/.chromium 23057

[6] [7]

citra-gitAUR ~/.citra-emu f7c3193 [8]
Composer ~/.composer 1.0.0-beta1 [9]
d-feet ~/.d-feet 7f6104b
dconf
Dolphin emulator ~/.dolphin-emu a498c68 [10]
dr14_tmeterAUR 7e777ca [11] XDG_CONFIG_HOME/dr14tmeter/
dunst 78b6e2b [12]
dwb
elixir ~/.mix afaf889 [13]
fish
fontconfig

~/.fontconfig
~/.fonts

8c255fb Use "$XDG_DATA_HOME"/fonts to store fonts instead.
fontforge

~/.FontForge
~/.PfaEdit

e4c2cc7

[14] [15]

freerdp ~/.freerdp edf6e72
Gajim ~/.gajim 3e777ea [16]
gconfAUR ~/.gconf fc28caa [17]
GIMP

~/.gimp-x.y
~/.thumbnails

60e0cfe 483505f

[18] [19]

Git ~/.gitconfig 0d94427
GStreamer ~/.gstreamer-0.10 4e36f93 [20]
GTK 3
htop ~/.htoprc 93233a6
i3 ~/.i3 7c130fb
i3status ~/.i3status.conf c3f7fc4
imagemagick
Inkscape ~/.inkscape 0.47 [21]
iwd / iwctl ~/.iwctl_history d3e00d7f
Kakoune
latexmk (in texlive-core) ~/.latexmkrc
lftp ~/.lftp 21dc400 [22]
lgogdownloaderAUR ~/.gogdownloader d430af6 [23]
LibreOffice

a6f56f7 25bd2ee

[24]
Streamlink ~/.livestreamerrc ea80591 [25]
llpp 3ab86f0 Currently llpp places the configuration directly under XDG_CONFIG_HOME instead of creating a directory.
mc ~/.mc

1b99570 0b71156 ce401d7

[26]
Mercurial ~/.hgrc

3540200 4.2

XDG_CONFIG_HOME/hg/hgrc.
msmtp ~/.msmtprc

af2f409 v1.6.7+

$XDG_CONFIG_HOME"/msmtp/config.
mesa 87ab26b XDG_CACHE_HOME/mesa
milkytracker ~/.milkytracker_config eb487c5 [27]
mpd ~/.mpdconf 87b7328
mpv ~/.mpv cb250d4 [28]
mutt ~/.mutt b17cd67 [29]
mypaint ~/.mypaint cf723b7
nano

~/.nano/
~/.nanorc

c16e79b [30]
ncmpcpp ~/.ncmpcpp

38d9f81 27cd86e

[31] [32]

ncmpcpp_directory should be set to avoid an error.log file in ~/.ncmpcpp.
Neovim

~/.nvim
~/.nvimlog
~/.nviminfo

1ca5646

[33] [34]

newsbeuter ~/.newsbeuter 3c57824 [35] It is required to create both directories [36]:

$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter

node-gyp ~/.node-gyp 2b5ce52a [37] Only available on master as of 2018-12-04.
np2kai-gitAUR

~/.config/np2kai
~/.config/xnp2kai

56a1cc2 [38]
nteract-binAUR 4593e72 [39] [40] does not recognize workarounds for ipython/jupyter
OfflineIMAP ~/.offlineimaprc 5150de5 [41]
opentyrianAUR ~/.opentyrian 8d45ff2 [42]
pandoc ~/.pandoc/ 0bed0ab [43]
pcsx2 ~/.pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

[44] [45]
Pry ~/.pryrc
~/.pry_history

a0be0cc7 15e1fc92 e9d1be0e

[46]
python-pip ~/.pip 6.0 [47]
powershellAUR 6.0
ppsspp ~/.ppsspp 132fe47 [48]
procps-ng ~/.toprc af53e17

[49] [50]

orbment-gitAUR
pacman ~/.makepkg.conf 80eca94 [51]
panda3dAUR ~/.panda3d 2b537d2
poezioAUR
PulseAudio

~/.pulse
~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

[52]
pyroomAUR
quodlibet ~/.quodlibet 3.10.0 [53]
qutebrowser
qtile

fd8686e 66d704b 51cff01

[54] Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.
rclone ~/.rclone.conf 9d36258 [55]
retroarch
rrAUR ~/.rr 02e7d41 [56]
RSpec ~/.rspec 5e395e2 [57]
rTorrent ~/.rtorrent.rc 6a8d332
RuboCop ~/.rubocop.yml 6fe5956 [58]
skypeforlinux-stable-binAUR ~/.Skype 8.0
snes9x ~/.snes9x 93b5f11 [59] By default, the configuration file is left blank with intention that the user will fill it at their will (through the gui or manually).
sublime-text-devAUR Cache is placed in $XDG_CONFIG_HOME/sublime-text-3/Cache instead of expected $XDG_CACHE_HOME/sublime-text-3.
surfraw

~/.surfraw.conf
~/.surfraw.bookmarks

3e4591d bd8c427 f57fc71

sway ~/.sway/config 614393c [60]
systemd
termite
tig ~/.tigrc, ~/.tig_history 2.2 [61] ~/.local/share/tig directory must exist, writes to ~/.tig_history otherwise.
tmuxinatorAUR ~/.tmuxinator 2636923 [62]
Transmission ~/.transmission b71a298
util-linux 570b321
Uzbl c6fd63a [63]
vimb
VirtualBox ~/.VirtualBox 4.3 [64]
vis ~/.vis

68a25c7 d138908

[65]
VLC ~/.vlcrc 16f32e1 [66]
warsow ~/.warsow-2.x 98ece3f [67]
Wireshark ~/.wireshark b0b53fa
xsettingsd-gitAUR ~/.xsettingsd b4999f5
xmonad ~/.xmonad 40fc10b

[68] [69]

Alternatively the environments XMONAD_CONFIG_HOME, XMONAD_DATA_HOME, and XMONAD_CACHE_HOME are also available.
xsel ~/.xsel.log ee7b481 [70]
yarn

~/.yarnrc
~/.yarn/
~/.yarncache/
~/.yarn-config/

2d454b5 [71]

Partial

Application Legacy Path Supported Since Discussion Notes
abook ~/.abook $ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook
ack ~/.ackrc [72] $ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"
Anki

~/Anki
~/Documents/Anki

[73] [74] $ anki -b "$XDG_DATA_HOME"/Anki
aspell ~/.aspell.conf $ export ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl"
Atom ~/.atom [75] $ export ATOM_HOME="$XDG_DATA_HOME"/atom
aws-cli ~/.aws 1.7.45 [76]

$ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials
$ export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config

bash-completion ~/.bash_completion $ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion
bazaar

~/.bazaar
~/.bzr.log

2.3.0 [77] Discussion in upstream bug states that bazaar will use ~/.config/bazaar if it exists. The logfile ~/.bzr.log might still be written.
buchhaltung-gitAUR

~/.buchhaltung

[78] $ export BUCHHALTUNG="$XDG_CONFIG_HOME"/buchhaltung
Ruby#Bundler ~/.bundle [79] [80] $ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
calcurse ~/.calcurse [81] [82] $ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse
Rust#Cargo ~/.cargo [83] [84] [85] [86] $ export CARGO_HOME="$XDG_DATA_HOME"/cargo
ccache ~/.ccache $ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config

$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache

chez-schemeAUR ~/.chezscheme_history $ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history
conky ~/.conkyrc 00481ee [87] $ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
coreutils ~/.dircolors $ eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)
crawl ~/.crawl The trailing slash is required:

$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/

clusterssh ~/.clusterssh/ $ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'"
$XDG_CONFIG_HOME/clusterssh/config
extra_cluster_file=$HOME/.config/clusterssh/clusters
extra_tag_file=$HOMe/.config/clusterssh/tags

Despite this, clusterssh will still create ~/.clusterssh/.

CUDA ~/.nv $ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv
dict ~/.dictrc $ dict -c "$XDG_CONFIG_HOME"/dict/dictrc
Docker ~/.docker $ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
docker-machine ~/.docker/machine $ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine
DOSBox ~/.dosbox/dosbox-0.74-2.conf [88] $ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf
ELinks ~/.elinks $ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks
emscripten

~/.emscripten
~/.emscripten_sanity
~/.emscripten_ports
~/.emscripten_cache__last_clear

[89]

$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config
$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache
$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache
$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache

freecadAUR ~/.FreeCAD [90] $ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg

Despite these options, freecadAUR will still create the file .FreeCAD/cookie as the web module has it hard coded

GDB ~/.gdbinit $ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init
get_iplayerAUR ~/.get_iplayer $ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer
getmail ~/.getmail/getmailrc $ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
glivAUR ~/.glivrc $ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
GnuPG ~/.gnupg [91] [92]

$ export GNUPGHOME="$XDG_DATA_HOME"/gnupg
$ gpg2 --homedir "$XDG_DATA_HOME"/gnupg

Google Earth ~/.googleearth Some paths can be changed with the KMLPath and CachePath options in ~/.config/Google/GoogleEarthPlus.conf
gopass ~/.password-store Override settings in ~/.config/gopass/config.yml:
~/.config/gopass/config.yml
root:
path: gpgcli-gitcli-fs+file:///home/<userid>/.config/password-store
GQ LDAP client

~/.gq
~/.gq-state

1.51

$ export GQRC="$XDG_CONFIG_HOME"/gqrc
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state
$ mkdir -p "$(dirname "$GQSTATE")"

Gradle ~/.gradle [93] $ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
GTK 1 ~/.gtkrc $ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc
GTK 2 ~/.gtkrc-2.0 $ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
hledger ~/.hledger.journal [94] $ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal
httpie ~/.httpie [95] $ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie
intellij-idea-ceAUR ~/.IntelliJIdea* [96]
$ mkdir -p "${XDG_CONFIG_HOME}"/intellij-idea
$ cp /opt/intellij-idea-ce/bin/{idea.properties,idea64.vmoptions} "${XDG_CONFIG_HOME}"/intellij-idea/
$ export IDEA_PROPERTIES="${XDG_CONFIG_HOME}"/intellij-idea/idea.properties
$ export IDEA_VM_OPTIONS="${XDG_CONFIG_HOME}"/intellij-idea/idea.vmoptions
$XDG_CONFIG_HOME/idea.properties
# these are hardcoded but you get the idea
idea.config.path=${user.home}/.config/intellij-idea
idea.system.path=${user.home}/.cache/intellij-idea
idea.log.path=${user.home}/.cache/intellij-idea/log
idea.plugins.path=${user.home}/.local/share/intellij-idea/plugins
ipython/jupyter ~/.ipython won't fix

$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter

irb ~/.irbrc
~/.profile
$ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc
"$XDG_CONFIG_HOME"/irb/irbrc
IRB.conf[:SAVE_HISTORY] ||= 1000
IRB.conf[:HISTORY_FILE] ||= File.join(ENV["XDG_DATA_HOME"], "irb", "history")
irssi ~/.irssi [97] $ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi
isync ~/.mbsyncrc $ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc
Java#OpenJDK ~/.java/.userPrefs [98] $ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
ledger ~/.ledgerrc, ~/.pricedb [99] $ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc
less ~/.lesshst

$ mkdir -p "$XDG_CACHE_HOME"/less
$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey
$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history

$ export LESSHISTFILE=- can be used to disable this feature.

libdvdcss ~/.dvdcss [100] $ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss
libice ~/.ICEauthority [101] $ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority

Make sure XDG_CACHE_HOME is set beforehand to directory user running Xorg has write access to.

Do not use XDG_RUNTIME_DIR as it is available after login. Display managers that launch Xorg (like GDM) will repeatedly fail otherwise.

libx11

~/.XCompose
~/.compose-cache

$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose
$ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose

ltrace ~/.ltrace.conf $ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf
maven ~/.m2 [102] $ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml
settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository>
  ...
</settings>
Mathematica ~/.Mathematica $ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica
mednafen ~/.mednafen $ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen
mitmproxy ~/.mitmproxy

$ alias mitmproxy="mitmproxy --set confdir=$XDG_CONFIG_HOME/mitmproxy"
$ alias mitmweb="mitmweb --set confdir=$XDG_CONFIG_HOME/mitmproxy"

MOC ~/.moc

$ mocp -M "$XDG_CONFIG_HOME"/moc
$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc

monero ~/.bitmonero $ monerod --data-dir "$XDG_DATA_HOME"/bitmonero
most ~/.mostrc $ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc
MPlayer ~/.mplayer $ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer
MySQL ~/.mysql_history $ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history
ncurses ~/.terminfo Precludes system path searching:

$ export TERMINFO="$XDG_DATA_HOME"/terminfo
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo

ncmpc ~/.ncmpc ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config
Netbeans ~/.netbeans [103] $ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js ~/.node_repl_history $ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history [104]
notmuch ~/.notmuch-config [105]

$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc
$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug

npm

~/.npm
~/.npmrc

[106] $ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
npmrc
prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
tmp=${XDG_RUNTIME_DIR}/npm
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js

prefix is unnecessary (and unsupported) if Node.js is installed by nvmAUR.

nuget ~/.nuget/packages [107] $ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
NVIDIA ~/.nv Uses XDG_CACHE_HOME if set, otherwise improperly falls back to ~/.nv instead of ~/.cache.
nvidia-settings ~/.nvidia-settings-rc $ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings
nvmAUR ~/.nvm $ export NVM_DIR="$XDG_DATA_HOME"/nvm
Octave

~/octave
~/.octave_packages
~/.octave_hist

$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"

$XDG_CONFIG_HOME/octave/octaverc
source /usr/share/octave/site/m/startup/octaverc;
pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;
pkg local_list /home/<your username>/.local/share/octave/octave_packages;

The local_list option must be given an absolute path.

openscad ~/.OpenSCAD 7c3077b0f [108] Does not fully honour XDG Base Directory Specification, see [109]

Currently it hard-codes ~/.local/share.

OpenSSL ~/.rnd Seeding file .rnd's location can be set with RANDFILE environment variable per FAQ.
parallel ~/.parallel 20170422 $ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
Pass ~/.password-store $ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
Pidgin ~/.purple [110] $ pidgin --config="$XDG_DATA_HOME"/purple
PostgreSQL

~/.psqlrc
~/.psql_history
~/.pgpass
~/.pg_service.conf

9.2 [111] [112]

$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"
$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"
$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"
$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"

It is required to create both directories: $ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"

PulseAudio ~/.esd_auth Very likely generated by the module-esound-protocol-unix.so module. It can be configured to use a different location but it makes much more sense to just comment out this module in /etc/pulse/default.pa or "$XDG_CONFIG_HOME"/pulse/default.pa.
python-azure-cliAUR ~/.azure $ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure
python-setuptools ~/.python-eggs $ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs
python-pylint ~/.pylint.d won't fix $ export PYLINTHOME="$XDG_CACHE_HOME"/pylint
racket ~/.racketrc

~/.racket

[113] $ export PLTUSERHOME="$XDG_DATA_HOME"/racket
readline ~/.inputrc $ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
rlwrap ~/.*_history [114] $ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap
Ruby#RubyGems ~/.gem

$ export GEM_HOME="$XDG_DATA_HOME"/gem
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem

Make sure to remove gem: --user-install from /etc/gemrc

Rust#Rustup ~/.rustup [115] $ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
sbt ~/.sbt

~/.ivy2

[116] $ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt (beware [117])
GNU Screen ~/.screenrc $ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
Haskell#Stack ~/.stack [118] $ export STACK_ROOT="$XDG_DATA_HOME"/stack
subversion ~/.subversion [119] [120][121] $ svn --config-dir "$XDG_CONFIG_HOME"/subversion
task

~/.task
~/.taskrc

$ export TASKDATA="$XDG_DATA_HOME"/task
$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc

tiptopAUR ~/.tiptoprc This will still expect the .tiptoprc file.

$ tiptop -W "$XDG_CONFIG_HOME"/tiptop

tmux ~/.tmux.conf [122] $ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf

$ export TMUX_TMPDIR="$XDG_RUNTIME_DIR"

uncrustify ~/.uncrustify.cfg $ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg
Unison ~/.unison $ export UNISON="$XDG_DATA_HOME"/unison
urxvtd ~/.urxvt/urxvtd-hostname $ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd
Vagrant

~/.vagrant.d
~/.vagrant.d/aliases

[123]

$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant
$ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases

Visual Studio Code ~/.vscode-oss/argv.json [124]
WeeChat ~/.weechat [125] [126]

$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat
$ weechat -d "$XDG_CONFIG_HOME"/weechat

wget

~/.wgetrc
~/.wget-hsts

$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"
and add the following as an alias for wget:
$ wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"
or set the hsts-file variable with an absolute path as wgetrc does not support environment variables:
$ echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"

wine ~/.wine [127] Winetricks uses XDG-alike location below for WINEPREFIX management:

$ mkdir -p "$XDG_DATA_HOME"/wineprefixes
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default

xbindkeys ~/.xbindkeysrc $ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config
xorg-xauth ~/.Xauthority $ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority

Note that LightDM does not allow you to change this variable. If you change it nonetheless, you will not be able to login. Use startx instead or configure LightDM. According to [128] SLiM has ~/.Xauthority hardcoded.

xinit

~/.xinitrc
~/.xserverrc

[129]

$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc

Note that these variables are respected by xinit, but not by startx. Instead, specify the filename as an argument:

$ startx "$XDG_CONFIG_HOME/X11/xinitrc" -- "$XDG_CONFIG_HOME/X11/xserverrc" vt1

xorg-xrdb

~/.Xresources
~/.Xdefaults

Ultimately you should be using Xresources and since these resources are loaded via xrdb you can specify a path such as $ xrdb -load ~/.config/X11/xresources.
z

~/.z

[130] $ export _Z_DATA="$XDG_DATA_HOME/z"

Hardcoded

Application Legacy Path Discussion Notes
adb ~/.android/ [131] $ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android
AMule ~/.aMule
Android Studio

~/.AndroidStudio2.3
~/.android/
~/.java/

anthy ~/.anthy [132]
Apache Directory Studio ~/.ApacheDirectoryStudio
ARandR ~/.screenlayout
Arduino

~/.arduino15
~/.jssc

won't fix
Audacity ~/.audacity-data/
Avidemux ~/.avidemux6
Bash

~/.bashrc
~/.bash_history
~/.bash_profile
~/.bash_login
~/.bash_logout

won't fix $ export HISTFILE="$XDG_DATA_HOME"/bash/history

A specified bashrc can be sourced from /etc/bash.bashrc.

Specify --init-file <file> as an alternative to ~/.bashrc for interactive shells.

cabal ~/.cabal/ [133] See discussion for potential workarounds. It is not very easy or straightforward but may be possible to emulate Base Directory compliance.
chattyAUR ~/.chatty/ [134]
cmake ~/.cmake/ Used for the user package registry ~/.cmake/packages/<package>, detailed in cmake-packages(7) and the Package registry wiki page. Looks like it's hardcoded, for example in cmFindPackageCommand.cxx.
Cinnamon ~/.cinnamon/ [135]
cryptomatorAUR ~/.Cryptomator [136]
CUPS ~/.cups/ won't fix
darcs ~/.darcs/ [137]
dbus ~/.dbus/ [138] This should be avoidable with kdbus [citation needed].
devede ~/.devedeng Hardcoded here
Dia ~/.dia/
dotnet-sdk ~/.dotnet/ [139]
Eclipse ~/.eclipse/ [140] Option -Dosgi.configuration.area=@user.home/.config/.. overrides but must be added to "$ECLIPSE_HOME"/eclipse.ini" rather than command line which means you must have write access to $ECLIPSE_HOME. (Arch Linux hard-codes $ECLIPSE_HOME in /usr/bin/eclipse)
Emacs

~/.emacs
~/.emacs.d/

[141] It's possible to set HOME, but it has unexpected side effects. So far the most promising approach is modifying another Emacs environment variable to alter the load path and author your own site file which can manually load up your init file, but it changes the load process significantly.
Fetchmail ~/.fetchmailrc
Firefox ~/.mozilla/ [142]
Flatpak ~/.var/ [143] [144] won't fix
GHC ~/.ghc [145]
ghidra [146]
Goldendict ~/.goldendict/ [147]
gramps ~/.gramps/ [148]
grsync ~/.grsync/ [149]
gtk-recordMyDesktop ~/.gtk-recordmydesktop
hplip ~/.hplip/ [150]
idris ~/.idris [151]
Java OpenJDK ~/.java/fonts [152]
Java OpenJFX ~/.java/webview
julia

~/.juliarc.jl
~/.julia_history

[153] [154]
Linux PAM ~/.pam_environment [155] Hardcoded in modules/pam_env/pam_env.c
lldb

~/.lldb
~/.lldbinit

mathomatic

~/.mathomaticrc
~/.matho_history

History can be moved by using rlwrap mathomatic -r with the RLWRAP_HOME environment set appropriately.
Minecraft ~/.minecraft/ [156]
Minetest ~/.minetest/ won't fix [157]
mongodb

~/.mongorc.js
~/.dbshell

[158] This Stack Overflow thread suggests a partial workaround using command-line switch --norc.
Nestopia UE ~/.nestopia/ won't fix
~/.netrc Like ~/.ssh, many programs expect this file to be here. These include projects like curl (CURLOPT_NETRC_FILE), ftp (NETRC), s-nail (NETRC), etc. While some of them offer alternative configurable locations, many do not such as w3m, wget and lftp.
Networkmanager-openvpn ~/.cert/nm-openvpn [159]
NSS ~/.pki [160]
OpenSSH ~/.ssh won't fix Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.
palemoon ~/.moonchild productions [161]
parsec-binAUR ~/.parsec
pcsxrAUR ~/.pcsxr A -cfg flag exists, but can only be set relative to ~/.pcsxr.
perf ~/.debug Hardcoded in tools/perf/util/config.c:29.
perl ~/.cpan Perl5's CPAN expects ~/.cpan.
various shells and display managers ~/.profile
python ~/.python_history All history from interactive sessions is saved to ~/.python_history by default since version 3.4, custom path can still be set the same way as in older versions (see this example).
Qt Designer ~/.designer
RedNotebook ~/.rednotebook
Remarkable ~/.remarkable
Ren'Py ~/.renpy [162]
SANE ~/.sane/ scanimage creates a .cal file there
scribus ~/.scribus
sdcv ~/.stardict/ [163] Only workaround is modifying HOME
SeaMonkey ~/.mozilla/ [164]
simplescreenrecorder ~/.ssr/ [165] Author seems against this feature.
Solfege

~/.solfege
~/.solfegerc
~/lessonfiles

[166]
spacemacs

~/.spacemacs
~/.spacemacs.d

[167]
SpamAssassin ~/.spamassassin
spectrwm ~/.spectrwm
SQLite

~/.sqlite_history
~/.sqliterc

[168] $ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history

$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc

Steam

~/.steam
~/.steampath
~/.steampid

[169] Many game engines (Unity 3D, Unreal) follow the specification, but then individual game publishers hardcode the paths in Steam Auto-Cloud causing game-saves to sync to the wrong directory.
TeamSpeak ~/.ts3client
texinfo ~/.infokey $ info --init-file "$XDG_CONFIG_HOME/infokey"
TeXmacs ~/.TeXmacs
Thunderbird ~/.thunderbird/ [170]
tllocalmgr ~/.texlive
vim

~/.vim
~/.vimrc
~/.viminfo

[171] Since 7.3.1178 vim will search for ~/.vim/vimrc if ~/.vimrc is not found.

$ mkdir -p "$XDG_DATA_HOME"/vim/{undo,swap,backup}

"$XDG_CONFIG_HOME"/vim/vimrc
set undodir=$XDG_DATA_HOME/vim/undo
set directory=$XDG_DATA_HOME/vim/swap
set backupdir=$XDG_DATA_HOME/vim/backup
set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo
set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
~/.profile
export VIMINIT=":source $XDG_CONFIG_HOME"/vim/vimrc
vimperator ~/.vimperatorrc [172] $ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"

$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

w3m ~/.w3m [173]
wpa_cli ~/.wpa_cli_history
xdg-utils ~/.gnome [174] For some reason the script xdg-desktop-menu hard-codes gnome_user_dir="$HOME/.gnome/apps". This is used by chromium among others.
xombrero[dead link 2020-02-26] ~/.xombrero [175][dead link 2020-02-26]
xournalpp ~/.xournalpp [176]
YARD ~/.yard [177] Would accept Pull Request if anyone want to implement it.
zenmap nmap ~/.zenmap [178] [179]
zsh

~/.zshrc
~/.zprofile
~/.zshenv
~/.zlogin
~/.zlogout
~/.histfile
~/.zcompdump

[180] Consider exporting ZDOTDIR=$HOME/.config/zsh in ~/.zshenv (this is hardcoded due to the bootstrap problem). You could also add this to /etc/zsh/zshenv and avoid the need for any dotfiles in your HOME. Doing this however requires root privilege which may not be viable and is system-wide.

$ export HISTFILE="$XDG_DATA_HOME"/zsh/history

$ compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION [181] /!\ The folder needs to exist

Libraries

C
C99: Cloudef's simple implementation.
JVM
Java, Kotlin, Clojure, Scala, ...
directories-jvm
Go
go-appdir
Haskell
Officially in directory since 1.2.3.0 ab9d0810ce.
xdg-basedir
Perl
File-BaseDir
perl-file-xdg[dead link 2020-02-26]
Ruby
rubyworks/xdg
Rust
directories-rs
rust-xdg
Python
pyxdg
Vala
Builtin support via GLib.Environment.
See get_user_cache_dir, get_user_data_dir, get_user_config_dir, etc.

See also