Difference between revisions of "XDG Base Directory"

From ArchWiki
Jump to: navigation, search
(Move Gimp from "partial" to "supported", add link to .thumbnail fix)
(Hardcoded: merge Won't fix subsection back into main table, see Talk:XDG Base Directory#Won't fix section)
 
(157 intermediate revisions by 34 users not shown)
Line 1: Line 1:
[[Category:Dotfiles]]
+
[[Category:Freedesktop.org]]
 +
[[Category:Configuration files]]
 +
[[Category:Development]]
 
[[ja:XDG Base Directory サポート]]
 
[[ja: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 ==
  
==XDG Base Directory specification==
+
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.
 
 
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.
 
  
 
Only {{ic|XDG_RUNTIME_DIR}} is set by default through [http://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd]. It is up to the user to explicitly [[define]] the other variables, using absolute paths that point to existing directories.
 
Only {{ic|XDG_RUNTIME_DIR}} is set by default through [http://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd]. It is up to the user to explicitly [[define]] the other variables, using absolute paths that point to existing directories.
  
===User directories===
+
=== User directories ===
  
 
* {{ic|XDG_CONFIG_HOME}}
 
* {{ic|XDG_CONFIG_HOME}}
Line 42: Line 41:
 
** 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}}
Line 52: Line 51:
 
** Should default to {{ic|/etc/xdg}}.
 
** Should default to {{ic|/etc/xdg}}.
  
==Contributing==
+
== Support ==
 +
 
 +
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.
 +
 
 +
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.
 
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 (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).
 
* 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.
 
* The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.
  
==Supported==
+
=== Supported ===
  
 
{| class="wikitable sortable" style="width: 100%"
 
{| class="wikitable sortable" style="width: 100%"
Line 75: Line 79:
 
! Notes
 
! Notes
 
|-
 
|-
| [https://github.com/SirCmpwn/aerc aerc]
+
| {{AUR|aerc-git}}
 
|
 
|
 
|
 
|
Line 81: Line 85:
 
|
 
|
 
|-
 
|-
| [https://github.com/Antimicro/antimicro/ antimicro]
+
| {{AUR|antimicro}}
 
| {{ic|~/.antimicro}}
 
| {{ic|~/.antimicro}}
 
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]
 
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]
Line 93: Line 97:
 
|
 
|
 
|-
 
|-
| [[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.
 +
|-
 +
| [[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]
 
|
 
|
 
|-
 
|-
| [http://citra-emu.org/ citra]
+
| {{AUR|citra-git}}
 
| {{ic|~/.citra-emu}}
 
| {{ic|~/.citra-emu}}
| [https://github.com/citra-emu/citra/commit/f7c3193fec f7c3193fec]
+
| [https://github.com/citra-emu/citra/commit/f7c3193 f7c3193]
 
| [https://github.com/citra-emu/citra/pull/575]
 
| [https://github.com/citra-emu/citra/pull/575]
 
|
 
|
 
|-
 
|-
| [[PHP#Composer|composer]]
+
| [[PHP#Composer|Composer]]
 
| {{ic|~/.composer}}
 
| {{ic|~/.composer}}
 
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]
 
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]
Line 123: Line 139:
 
|
 
|
 
|-
 
|-
| [https://github.com/falconindy/cower cower]
+
| {{AUR|cower}}
 
|
 
|
 
| [https://github.com/falconindy/cower/commit/8b70805 8b70805]
 
| [https://github.com/falconindy/cower/commit/8b70805 8b70805]
Line 129: Line 145:
 
|
 
|
 
|-
 
|-
| [https://wiki.gnome.org/Apps/DFeet d-feet]
+
| {{Pkg|d-feet}}
 
| {{ic|~/.d-feet}}
 
| {{ic|~/.d-feet}}
| [https://git.gnome.org/browse/d-feet/commit/?id==7f6104b 7f6104b]
+
| [https://gitlab.gnome.org/GNOME/d-feet/commit/7f6104b 7f6104b]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [https://wiki.gnome.org/dconf dconf]
+
| {{Pkg|dconf}}
 
|
 
|
 
|
 
|
Line 141: Line 157:
 
|
 
|
 
|-
 
|-
| [[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]
Line 147: Line 163:
 
|
 
|
 
|-
 
|-
| [http://dr14tmeter.sourceforge.net dr14-meter]
+
| {{AUR|dr14_tmeter}}
 
|  
 
|  
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca645298ec898b3c76e3ec472ed6ed43e8a 7e777ca64]
+
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca 7e777ca]
 
| [https://github.com/simon-r/dr14_t.meter/pull/30]
 
| [https://github.com/simon-r/dr14_t.meter/pull/30]
| Hardcoded {{ic|$HOME/.config/dr14meter}}
+
| {{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/knopwob/dunst/commit/78b6e2b 78b6e2b]
 
| [https://github.com/knopwob/dunst/issues/22]
 
| [https://github.com/knopwob/dunst/issues/22]
 
|
 
|
Line 172: Line 188:
 
|-
 
|-
 
| [[fontconfig]]
 
| [[fontconfig]]
| {{ic|~/.fontconfig}}
+
|
 
+
{{ic|~/.fontconfig<br>
{{ic|~/.fonts}}
+
~/.fonts}}
| [http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb1 8c255fb1]
+
| [http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb 8c255fb]
 
|
 
|
 
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.
 
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.
 
|-
 
|-
| [http://fontforge.github.io/ fontforge]
+
| {{Pkg|fontforge}}
| {{ic|~/.FontForge}}
+
|
 
+
{{ic|~/.FontForge<br>
{{ic|~/.PfaEdit}}
+
~/.PfaEdit}}
| [https://github.com/fontforge/fontforge/commit/e4c2cc7432 e4c2cc7432]
+
| [https://github.com/fontforge/fontforge/commit/e4c2cc7 e4c2cc7]
| [https://github.com/fontforge/fontforge/issues/847] [https://github.com/fontforge/fontforge/issues/991]
+
|
 +
[https://github.com/fontforge/fontforge/issues/847]
 +
[https://github.com/fontforge/fontforge/issues/991]
 
|
 
|
 
|-
 
|-
| [http://www.freerdp.com/ freerdp]
+
| {{Pkg|freerdp}}
 
| {{ic|~/.freerdp}}
 
| {{ic|~/.freerdp}}
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e7258d edf6e7258d]
+
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e72 edf6e72]
 +
|
 
|
 
|
 +
|-
 +
| [[Gajim]]
 +
| {{ic|~/.gajim}}
 +
| [https://dev.gajim.org/gajim/gajim/commit/3e777ea 3e777ea]
 +
| [https://dev.gajim.org/gajim/gajim/issues/2149]
 
|
 
|
 
|-
 
|-
| [https://projects.gnome.org/gconf gconf]
+
| {{Pkg|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]
 
|
 
|
 
|-
 
|-
 
| [[GIMP]]
 
| [[GIMP]]
| {{ic|~/.gimp-x.y}}
+
|
{{ic|~/.thumbnails}}
+
{{ic|~/.gimp-x.y<br>
| [https://git.gnome.org/browse/gimp/commit/?id=60e0cfe 60e0cfe] [https://git.gnome.org/browse/gimp/commit/?id=483505f 483505f]
+
~/.thumbnails}}
| [https://bugzilla.gnome.org/show_bug.cgi?id=166643] [https://bugzilla.gnome.org/show_bug.cgi?id=646644]
+
|
 +
[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]]
+
| [[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]
+
| [[GStreamer]]
 
| {{ic|~/.gstreamer-0.10}}
 
| {{ic|~/.gstreamer-0.10}}
| [http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93924cf 4e36f93924cf]
+
| [http://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 224: Line 253:
 
|
 
|
 
|-
 
|-
| [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 232: Line 261:
 
| [[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 248: Line 277:
 
|
 
|
 
|-
 
|-
| [[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 254: Line 283:
 
|
 
|
 
|-
 
|-
| [https://www.ctan.org/pkg/latexmk?lang=en latexmk]
+
| {{AUR|latex-mk}}
 
| {{ic|~/.latexmkrc}}
 
| {{ic|~/.latexmkrc}}
 
|
 
|
Line 260: Line 289:
 
|
 
|
 
|-
 
|-
| [http://lftp.yar.ru/ lftp]
+
| {{Pkg|lftp}}
 
| {{ic|~/.lftp}}
 
| {{ic|~/.lftp}}
 
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]
 
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]
Line 266: Line 295:
 
|
 
|
 
|-
 
|-
| [https://github.com/Sude-/lgogdownloader/ lgogdownloader]
+
| {{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]
 
|
 
|
Line 274: Line 303:
 
| [[LibreOffice]]
 
| [[LibreOffice]]
 
|
 
|
| [https://cgit.freedesktop.org/libreoffice/ure/commit/?id=a6f56f70a4930d3f71bd9c9b90fdd0ba20e4da5f a6f56f70] [https://cgit.freedesktop.org/libreoffice/bootstrap/commit/?id=25bd2eec77ed774a37d1cddd0d72312e23d5e9fd 25bd2eec]
+
|
 +
[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]
 
| [https://bugs.documentfoundation.org/show_bug.cgi?id=32263]
 
|
 
|
 
|-
 
|-
| [[livestreamer]]
+
| [[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 286: Line 317:
 
| [[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.
Line 292: Line 323:
 
| [[mc]]
 
| [[mc]]
 
| {{ic|~/.mc}}
 
| {{ic|~/.mc}}
| [https://www.midnight-commander.org/changeset/1b9957058 1b9957058] [https://www.midnight-commander.org/changeset/0b7115647 0b7115647]
+
|
 
+
[https://github.com/MidnightCommander/mc/commit/1b99570 1b99570]
[https://www.midnight-commander.org/changeset/ce401d797 ce401d797]
+
[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]
 
|
 
|
Line 300: Line 332:
 
| [[Mercurial]]
 
| [[Mercurial]]
 
| {{ic|~/.hgrc}}
 
| {{ic|~/.hgrc}}
| [https://www.mercurial-scm.org/repo/hg/rev/354020079723 354020079723] [https://www.mercurial-scm.org/wiki/Release4.2 4.2]
+
|
 +
[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}}.
 
| {{ic|XDG_CONFIG_HOME/hg/hgrc}}.
 
|-
 
|-
| [https://www.mesa3d.org/ mesa]
+
| {{Pkg|mesa}}
 
|
 
|
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b2ab35a29d446ae66f1795d40c184c0739 87ab26b2ab]
+
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b 87ab26b]
 
|
 
|
 
| {{ic|XDG_CACHE_HOME/mesa}}
 
| {{ic|XDG_CACHE_HOME/mesa}}
 
|-
 
|-
| [http://milkytracker.org/ milkytracker]
+
| {{Pkg|milkytracker}}
 
| {{ic|~/.milkytracker_config}}
 
| {{ic|~/.milkytracker_config}}
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c55 eb487c55]
+
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c5 eb487c5]
 
| [https://github.com/Deltafire/MilkyTracker/issues/12]
 
| [https://github.com/Deltafire/MilkyTracker/issues/12]
 
|
 
|
|-
 
| [https://github.com/mintty/mintty mintty]
 
| {{ic|~/.minttyrc}}
 
| [https://github.com/mintty/mintty/commit/cff1bd8f cff1bd8f] v2.3.7.
 
| [https://github.com/mintty/mintty/issues/525]
 
 
|-
 
|-
 
| [[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 329: Line 358:
 
| [[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]
 
|
 
|
Line 335: Line 364:
 
| [[mutt]]
 
| [[mutt]]
 
| {{ic|~/.mutt}}
 
| {{ic|~/.mutt}}
| [https://dev.mutt.org/trac/changeset/42fee7585f 42fee7585f]
+
| [https://gitlab.com/muttmua/mutt/commit/b17cd67 b17cd67]
| [http://dev.mutt.org/trac/ticket/3207]
+
| [https://gitlab.com/muttmua/trac-tickets/raw/master/tickets/closed/3207-Conform_to_XDG_Base_Directory_Specification.txt]
 
|
 
|
 
|-
 
|-
| [http://mypaint.intilinux.com/ mypaint]
+
| {{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]]
 
| [[ncmpcpp]]
 
| {{ic|~/.ncmpcpp}}
 
| {{ic|~/.ncmpcpp}}
| [https://github.com/arybczak/ncmpcpp/commit/38d9f811de888e512b0115f551a9679eab4607f9 38d9f811] [https://github.com/arybczak/ncmpcpp/commit/27cd86e0638bba3a7a78e44ac40dc98a58d1d90d 27cd86e0]
+
|
| [https://github.com/arybczak/ncmpcpp/issues/79] [https://github.com/arybczak/ncmpcpp/issues/110]
+
[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}}.
 
| {{ic|ncmpcpp_directory}} should be set to avoid an {{ic|error.log}} file in {{ic|~/.ncmpcpp}}.
 
|-
 
|-
| [[neovim]]
+
| {{AUR|np2kai-git}}
| {{ic|~/.nvim}}
+
|
 
+
{{ic|~/.config/np2kai<br>
{{ic|~/.nvimlog}}
+
~/.config/xnp2kai}}
 
+
| [https://github.com/AZO234/NP2kai/commit/56a1cc2 56a1cc2]
{{ic|~/.nviminfo}}
+
| [https://github.com/AZO234/NP2kai/pull/50]
| [https://github.com/neovim/neovim/commit/1ca5646bb 1ca5646bb]
+
|
| [https://github.com/neovim/neovim/issues/78] [https://github.com/neovim/neovim/pull/3198]
+
|-
 +
| [[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 directories [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}}
 
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter}}
 +
|-
 +
| [[NVIDIA]]
 +
| {{ic|~/.nv}}
 +
|
 +
|
 +
|
 
|-
 
|-
 
| [[OfflineIMAP]]
 
| [[OfflineIMAP]]
Line 375: Line 431:
 
|
 
|
 
|-
 
|-
| [https://bitbucket.org/opentyrian/opentyrian/wiki/Home opentyrian]
+
| {{AUR|opentyrian}}
 
| {{ic|~/.opentyrian}}
 
| {{ic|~/.opentyrian}}
 
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]
 
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]
Line 381: Line 437:
 
|
 
|
 
|-
 
|-
| [http://pcsx2.net/ pcsx2]
+
| {{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/87f1e8f 87f1e8f]
[https://github.com/PCSX2/pcsx2/commit/3b22f0fb0 3b22f0fb0] [https://github.com/PCSX2/pcsx2/commit/0a012aec2 0a012aec2]
+
[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]
 
|
 
|
 
|-
 
|-
| [https://pip.pypa.io/ pip]
+
| {{Pkg|python-pip}}
 
| {{ic|~/.pip}}
 
| {{ic|~/.pip}}
 
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]
 
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]
Line 395: Line 453:
 
|
 
|
 
|-
 
|-
| [http://www.ppsspp.org/ ppsspp]
+
| {{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]
 
|
 
|
 
|-
 
|-
| {{pkg|procps-ng}}
+
| {{Pkg|procps-ng}}
 
| {{ic|~/.toprc}}
 
| {{ic|~/.toprc}}
| [https://gitlab.com/procps-ng/procps/commit/af53e170b9 af53e170b9]
+
| [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]
+
|
 +
[https://gitlab.com/procps-ng/procps/merge_requests/38]
 +
[https://bugzilla.redhat.com/show_bug.cgi?id=1155265]
 
|
 
|
 
|-
 
|-
| [https://github.com/Cloudef/orbment/ orbment]
+
| {{AUR|orbment-git}}
 
|
 
|
 
|
 
|
Line 415: Line 481:
 
| [[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]
 
|
 
|
 
|-
 
|-
| [https://github.com/panda3d/panda3d Panda3D]
+
| {{AUR|panda3d}}
 
| {{ic|~/.panda3d}}
 
| {{ic|~/.panda3d}}
 
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]
 
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]
Line 426: Line 492:
 
|-
 
|-
 
| [[PulseAudio]]
 
| [[PulseAudio]]
| {{ic|~/.pulse}}
+
|
 
+
{{ic|~/.pulse<br>
{{ic|~/.pulse-cookie}}
+
~/.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=59a8618 59a8618]
[http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a6921 9ab510a6921] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bcc9d5 4c195bcc9d5]
+
[http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae830 87ae830]
 +
[http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a 9ab510a]
 +
[http://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]
 
|
 
|
 
|-
 
|-
| [http://pyroom.org/index.html pyroom]
+
| {{AUR|pyroom}}
 
|
 
|
 
|
 
|
Line 449: Line 517:
 
| [[qtile]]
 
| [[qtile]]
 
|
 
|
| [https://github.com/qtile/qtile/commit/fd8686e5b4e4fa20bb82039ed8a83768434585ec fd8686e] [https://github.com/qtile/qtile/commit/66d704bce83f631b3326f10a1bc9fc22f8e6a6fd 66d704b]
+
|
 
+
[https://github.com/qtile/qtile/commit/fd8686e fd8686e]
[https://github.com/qtile/qtile/commit/51cff019917b87bda696b381493f969ceb6cc350 51cff01]
+
[https://github.com/qtile/qtile/commit/66d704b 66d704b]
 +
[https://github.com/qtile/qtile/commit/51cff01 51cff01]
 
| [https://github.com/qtile/qtile/pull/835]
 
| [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.
 
| Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.
Line 457: Line 526:
 
| {{Pkg|rclone}}
 
| {{Pkg|rclone}}
 
| {{ic|~/.rclone.conf}}
 
| {{ic|~/.rclone.conf}}
| [https://github.com/ncw/rclone/commit/9d362589 9d362589]
+
| [https://github.com/ncw/rclone/commit/9d36258 9d36258]
 
| [https://github.com/ncw/rclone/issues/868]
 
| [https://github.com/ncw/rclone/issues/868]
 
|
 
|
 
|-
 
|-
| [http://www.libretro.com/ retroarch]
+
| {{Pkg|retroarch}}
 
|
 
|
 
|
 
|
Line 467: Line 536:
 
|
 
|
 
|-
 
|-
| [http://rr-project.org/ rr]
+
| {{AUR|rr}}
 
| {{ic|~/.rr}}
 
| {{ic|~/.rr}}
| [https://github.com/mozilla/rr/commit/02e7d41e 02e7d41e]
+
| [https://github.com/mozilla/rr/commit/02e7d41 02e7d41]
 
| [https://github.com/mozilla/rr/issues/1455]
 
| [https://github.com/mozilla/rr/issues/1455]
 
|
 
|
 
|-
 
|-
| [http://www.snes9x.com/ Snes9x]
+
| [[rTorrent]]
 +
| {{ic|~/.rtorrent.rc}}
 +
| [https://github.com/rakshasa/rtorrent/commit/6a8d332 6a8d332]
 +
|
 +
|
 +
|-
 +
| {{AUR|skypeforlinux-stable-bin}}
 +
| {{ic|~/.Skype}}
 +
| 8.0
 +
|
 +
|
 +
|-
 +
| {{Pkg|snes9x}}
 
| {{ic|~/.snes9x}}
 
| {{ic|~/.snes9x}}
| [https://github.com/snes9xgit/snes9x/commit/93b5f11641fa22d4518f251d6e3db99219864677 19864677]
+
| [https://github.com/snes9xgit/snes9x/commit/93b5f11 93b5f11]
 
| [https://github.com/snes9xgit/snes9x/issues/194]
 
| [https://github.com/snes9xgit/snes9x/issues/194]
 
| By default configuration is blank, is intended that the user fill it at they will (throw the gui or manually) before launch a rom
 
| By default configuration is blank, is intended that the user fill it at they will (throw the gui or manually) before launch a rom
Line 486: Line 567:
 
|-
 
|-
 
| [[surfraw]]
 
| [[surfraw]]
| {{ic|~/.surfraw.conf}}
+
|
 
+
{{ic|~/.surfraw.conf<br>
{{ic|~/.surfraw.bookmarks}}
+
~/.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]
+
|
 
+
[https://gitlab.com/surfraw/Surfraw/commit/3e4591d 3e4591d]
[http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=f57fc718 f57fc718]
+
[https://gitlab.com/surfraw/Surfraw/commit/bd8c427 bd8c427]
 +
[https://gitlab.com/surfraw/Surfraw/commit/f57fc71 f57fc71]
 
|
 
|
 
|
 
|
Line 497: Line 579:
 
| [[sway]]
 
| [[sway]]
 
| {{ic|~/.sway/config}}
 
| {{ic|~/.sway/config}}
| [https://github.com/SirCmpwn/sway/commit/614393c09 614393c09]
+
| [https://github.com/SirCmpwn/sway/commit/614393c 614393c]
 
| [https://github.com/SirCmpwn/sway/issues/5]
 
| [https://github.com/SirCmpwn/sway/issues/5]
 
|
 
|
Line 513: Line 595:
 
|
 
|
 
|-
 
|-
| [[transmission]]
+
| {{AUR|tmuxinator}}
 +
| {{ic|~/.tmuxinator}}
 +
| [https://github.com/tmuxinator/tmuxinator/pull/511/commits/2636923 2636923]
 +
| [https://github.com/tmuxinator/tmuxinator/pull/511]
 +
|
 +
|-
 +
| [[Transmission]]
 
| {{ic|~/.transmission}}
 
| {{ic|~/.transmission}}
| [https://trac.transmissionbt.com/changeset/5517 5517]
+
| [https://github.com/transmission/transmission/commit/b71a298 b71a298]
| [https://trac.transmissionbt.com/ticket/684]
+
|
 
|
 
|
 
|-
 
|-
| [https://www.kernel.org/pub/linux/utils/util-linux/ util-linux]
+
| {{Pkg|util-linux}}
 
|
 
|
| [http://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=570b32100 570b32100]
+
| [http://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=570b321 570b321]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [[uzbl]]
+
| [[Uzbl]]
 
|
 
|
 
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]
 
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]
Line 531: Line 619:
 
|
 
|
 
|-
 
|-
| [http://fanglingsu.github.io/vimb/ vimb]
+
| {{AUR|vimb}}
 
|
 
|
 
|
 
|
Line 543: Line 631:
 
|
 
|
 
|-
 
|-
| [http://martanne.github.io/vis/ vis]
+
| {{Pkg|vis}}
 
| {{ic|~/.vis}}
 
| {{ic|~/.vis}}
 +
|
 +
[https://github.com/martanne/vis/commit/68a25c7 68a25c7]
 +
[https://github.com/martanne/vis/commit/d138908 d138908]
 
| [https://github.com/martanne/vis/pull/303]
 
| [https://github.com/martanne/vis/pull/303]
| [https://github.com/martanne/vis/commit/68a25c751c0219ef5df589a19513e46a08965d5a 68a25c75]
 
[https://github.com/martanne/vis/commit/d138908cf8149eb10120957271cd6979272b4730 d138908c]
 
 
|
 
|
 
|-
 
|-
| [[VLC media player]]
+
| [[VLC]]
 
| {{ic|~/.vlcrc}}
 
| {{ic|~/.vlcrc}}
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1500887c0dcd33cb06ad71759a81a52878 16f32e15]
+
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1 16f32e1]
 
| [https://trac.videolan.org/vlc/ticket/1267]
 
| [https://trac.videolan.org/vlc/ticket/1267]
 
|
 
|
 
|-
 
|-
| [https://www.warsow.gg/ warsow]
+
| {{Pkg|warsow}}
 
| {{ic|~/.warsow-2.x}}
 
| {{ic|~/.warsow-2.x}}
 
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]
 
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]
Line 562: Line 651:
 
|
 
|
 
|-
 
|-
| [[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]
 
|
 
|
 
|
 
|
 
|-
 
|-
| [https://github.com/derat/xsettingsd xsettingsd]
+
| {{AUR|xsettingsd-git}}
 
| {{ic|~/.xsettingsd}}
 
| {{ic|~/.xsettingsd}}
| [https://github.com/derat/xsettingsd/commit/b4999f5e9e99224caf97d09f25ee731774ecd7be 4ecd7be]
+
| [https://github.com/derat/xsettingsd/commit/b4999f5 b4999f5]
 
|
 
|
 
|
 
|
Line 576: Line 665:
 
| [[xmonad]]
 
| [[xmonad]]
 
| {{ic|~/.xmonad}}
 
| {{ic|~/.xmonad}}
| [https://github.com/xmonad/xmonad/commit/40fc10b6a5682ce1d6ba7f0679962926ef6cfade 40fc10b6]
+
| [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]
+
|
 +
[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.
 
| Alternatively the environments {{ic|XMONAD_CONFIG_HOME}}, {{ic|XMONAD_DATA_HOME}}, and {{ic|XMONAD_CACHE_HOME}} are also available.
 
|-
 
|-
| [http://www.vergenet.net/~conrad/software/xsel/ xsel]
+
| {{Pkg|xsel}}
 
| {{ic|~/.xsel.log}}
 
| {{ic|~/.xsel.log}}
| [https://github.com/kfish/xsel/commit/ee7b48111be2e2117b201962e9d1c0e1f9804ed4 ee7b4811]
+
| [https://github.com/kfish/xsel/commit/ee7b481 ee7b481]
 
| [https://github.com/kfish/xsel/issues/10]
 
| [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 599: Line 700:
 
|
 
|
 
|
 
|
| {{ic|1=$ 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}}
 
 
|-
 
|-
 
| [[Anki]]
 
| [[Anki]]
| {{ic|~/Anki}}
+
|
 
+
{{ic|~/Anki<br>
{{ic|~/Documents/Anki}}
+
~/Documents/Anki}}
 
|
 
|
 
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]
 
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]
Line 614: Line 714:
 
|
 
|
 
|
 
|
|
+
| {{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]]
 
| [[Atom]]
Line 621: Line 721:
 
| [https://github.com/atom/atom/issues/8281]
 
| [https://github.com/atom/atom/issues/8281]
 
| {{ic|1=$ export ATOM_HOME="$XDG_DATA_HOME"/atom}}
 
| {{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 wil use {{ic|~/.config/bazaar}} if it exists. The logfile {{ic|~/.bzr.log}} might still be written.
 +
|-
 +
| [[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}}
 
|-
 
|-
 
| [http://crates.io/ cargo]
 
| [http://crates.io/ 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/rfcs/pull/1615]
+
| [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}}
 
|-
 
|-
Line 659: Line 787:
  
 
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}
 
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}
 +
|-
 +
| [[CUDA]]
 +
| {{ic|~/.nv}}
 +
|
 +
|
 +
| {{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
 
|-
 
|-
 
| [[dict]]
 
| [[dict]]
Line 665: Line 799:
 
|
 
|
 
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}
 
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}
 +
|-
 +
| [[Docker]]
 +
| {{ic|~/.docker}}
 +
|
 +
|
 +
| {{ic|1=$ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker}}
 +
|-
 +
| [https://docs.docker.com/machine/overview/ Docker Machine]
 +
| {{ic|~/.docker/machine}}
 +
|
 +
|
 +
| {{ic|1=$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine}}
 +
|-
 +
| [[DOSBox]]
 +
| {{ic|~/.dosbox/dosbox-0.74-2.conf}}
 +
|
 +
| [https://www.vogons.org/viewtopic.php?t=29599]
 +
| {{ic|1=$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf}}
 
|-
 
|-
 
| [[ELinks]]
 
| [[ELinks]]
Line 673: Line 825:
 
|-
 
|-
 
| [http://kripken.github.io/emscripten-site/ emscripten]
 
| [http://kripken.github.io/emscripten-site/ emscripten]
| {{ic|~/.emscripten}}
 
 
{{ic|~/.emscripten_sanity}}
 
 
{{ic|~/.emscripten_ports}}
 
 
{{ic|~/.emscripten_cache__last_clear}}
 
 
|
 
|
| [https://github.com/kripken/emscripten/issues/3624 3624]
+
{{ic|~/.emscripten<br>
| {{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config}}
+
~/.emscripten_sanity<br>
 
+
~/.emscripten_ports<br>
{{ic|1=$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache}}
+
~/.emscripten_cache__last_clear}}
 
+
|
{{ic|1=$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache}}
+
| [https://github.com/kripken/emscripten/issues/3624]
 
+
|
{{ic|1=$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config \
+
{{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config<br>
--em-cache "$XDG_CACHE_HOME"/emscripten/cache}}
+
$ 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}}
 +
|-
 +
| [https://www.freecadweb.org/ freecad]
 +
| {{ic|~/.FreeCAD}}
 +
|
 +
| [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}}
 
|-
 
|-
 
| [http://www.gnu.org/software/gdb/ gdb]
 
| [http://www.gnu.org/software/gdb/ gdb]
Line 702: Line 855:
 
|
 
|
 
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}
 
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}
 +
|-
 +
| [[getmail]]
 +
| {{ic|~/.getmail/getmailrc}}
 +
|
 +
|
 +
| {{ic|1=$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"}}
 
|-
 
|-
 
| [http://guichaz.free.fr/gliv/ gliv]
 
| [http://guichaz.free.fr/gliv/ gliv]
Line 713: Line 872:
 
|
 
|
 
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]
 
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]
| {{ic|1=$ export GNUPGHOME="$XDG_CONFIG_HOME"/gnupg}}
+
|
 
+
{{ic|1=$ export GNUPGHOME="$XDG_CONFIG_HOME"/gnupg<br>
{{ic|1=$ gpg2 --homedir "$XDG_CONFIG_HOME"/gnupg}}
+
$ gpg2 --homedir "$XDG_CONFIG_HOME"/gnupg}}
 
|-
 
|-
 
| [[Google Earth]]
 
| [[Google Earth]]
Line 724: Line 883:
 
|-
 
|-
 
| [https://sourceforge.net/projects/gqclient GQ LDAP client]
 
| [https://sourceforge.net/projects/gqclient GQ LDAP client]
| {{ic|~/.gq}}
+
|
{{ic|~/.gq-state}}
+
{{ic|~/.gq<br>
 +
~/.gq-state}}
 
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]
 
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]
 
|
 
|
| {{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc}}
+
|
 
+
{{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc<br>
{{ic|1=$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state}}
+
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state<br>
 
+
$ mkdir -p "$(dirname "$GQSTATE")"}}
{{ic|1=$ mkdir -p "$(dirname "$GQSTATE")"}}
 
 
|-
 
|-
 
| [https://gradle.org/ gradle]
 
| [https://gradle.org/ gradle]
Line 740: Line 899:
 
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}
 
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}
 
|-
 
|-
| [[gtk]]
+
| [[GTK+]] 1
 
| {{ic|~/.gtkrc}}
 
| {{ic|~/.gtkrc}}
 
|
 
|
Line 746: Line 905:
 
| {{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}}
 
|-
 
|-
| [[gtk|gtk2]]
+
| [[GTK+]] 2
 
| {{ic|~/.gtkrc-2.0}}
 
| {{ic|~/.gtkrc-2.0}}
 
|
 
|
Line 762: Line 921:
 
|
 
|
 
|
 
|
| {{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter}}
+
|
 
+
{{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter<br>
{{ic|1=$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}
+
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}
 +
|-
 +
| [https://ruby-doc.org/stdlib/libdoc/irb/rdoc/IRB.html irb]
 +
| {{ic|~/.irbrc}}
 +
|
 +
|
 +
| {{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")}}
 
|-
 
|-
 
| [[irssi]]
 
| [[irssi]]
Line 770: Line 937:
 
|
 
|
 
| [https://github.com/irssi/irssi/pull/511]
 
| [https://github.com/irssi/irssi/pull/511]
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config \
+
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi}}
--home="$XDG_DATA_HOME"/irssi}}
 
 
|-
 
|-
 
| [[isync]]
 
| [[isync]]
Line 779: Line 945:
 
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}
 
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}
 
|-
 
|-
| [[core utilities#less|less]]
+
| [[Java]] OpenJDK
 +
| {{ic|~/.java/.userPrefs}}
 +
|
 +
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]
 +
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}
 +
|-
 +
| [[Core utilities|less]]
 
| {{ic|~/.lesshst}}
 
| {{ic|~/.lesshst}}
 
|
 
|
 
|
 
|
| {{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less}}
+
|
 
+
{{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less<br>
{{ic|1=$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}
+
$ 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.
 
{{ic|1=$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey}}
 
 
|-
 
|-
 
| [http://www.videolan.org/developers/libdvdcss.html libdvdcss]
 
| [http://www.videolan.org/developers/libdvdcss.html libdvdcss]
Line 801: Line 972:
 
|
 
|
 
| [https://bugs.freedesktop.org/show_bug.cgi?id=49173]
 
| [https://bugs.freedesktop.org/show_bug.cgi?id=49173]
| {{ic|1=$ export ICEAUTHORITY="$XDG_RUNTIME_DIR"/ICEauthority}}
+
| {{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]]
 
| [[Xorg|libx11]]
| {{ic|~/.XCompose}}
 
 
|
 
|
 +
{{ic|~/.XCompose<br>
 +
~/.compose-cache}}
 
|
 
|
| {{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose}}
+
|
 +
|
 +
{{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose<br>
 +
$ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose}}
 
|-
 
|-
 
| [http://ltrace.org/ ltrace]
 
| [http://ltrace.org/ ltrace]
Line 815: Line 993:
 
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}
 
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}
 
|-
 
|-
| {{pkg|maven}}
+
| {{Pkg|maven}}
 
| {{ic|~/.m2}}
 
| {{ic|~/.m2}}
 
|
 
|
Line 841: Line 1,019:
 
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}
 
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}
 
|-
 
|-
| [[moc]]
+
| [[MOC]]
 
| {{ic|~/.moc}}
 
| {{ic|~/.moc}}
 
|
 
|
 
|
 
|
| {{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc}}
+
|
 
+
{{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc<br>
{{ic|1=$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}
+
$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}
 +
|-
 +
| [https://www.jedsoft.org/most/ most]
 +
| {{ic|~/.mostrc}}
 +
|
 +
|
 +
| {{ic|1=$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc}}
 
|-
 
|-
 
| [[MPlayer]]
 
| [[MPlayer]]
Line 861: Line 1,045:
 
| {{ic|1=$ msmtp -C "$XDG_CONFIG_HOME"/msmtp/msmtprc}}
 
| {{ic|1=$ msmtp -C "$XDG_CONFIG_HOME"/msmtp/msmtprc}}
 
|-
 
|-
| {{pkg|ncurses}}
+
| [[MySQL]]
 +
| {{ic|~/.mysql_history}}
 +
|
 +
|
 +
| {{ic|1=$ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history}}
 +
|-
 +
| {{Pkg|ncurses}}
 
| {{ic|~/.terminfo}}
 
| {{ic|~/.terminfo}}
 
|
 
|
Line 867: Line 1,057:
 
| Precludes system path searching:
 
| Precludes system path searching:
  
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo}}
+
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo<br>
 
+
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}
{{ic|1=$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}
 
 
|-
 
|-
 
| [http://www.musicpd.org/clients/ncmpc/ ncmpc]
 
| [http://www.musicpd.org/clients/ncmpc/ ncmpc]
Line 882: Line 1,071:
 
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]
 
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]
 
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}
 
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}
 +
|-
 +
| [[Node.js]]
 +
| {{ic|~/.node_repl_history}}
 +
|
 +
|
 +
| {{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 887: Line 1,082:
 
|
 
|
 
| [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 NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc<br>
{{ic|1=$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}
+
$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}
 
|-
 
|-
| {{pkg|npm}}
+
| {{Pkg|npm}}
| {{ic|~/.npm}}
+
|
 
+
{{ic|~/.npm<br>
{{ic|~/.npmrc}}
+
~/.npmrc}}
 
|
 
|
 
| [https://github.com/npm/npm/issues/6675]
 
| [https://github.com/npm/npm/issues/6675]
 
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}
 
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}
{{hc|npmrc|<nowiki>cache=$XDG_CACHE_HOME/npm
+
{{hc|npmrc|<nowiki>
prefix=$XDG_DATA_HOME/npm</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}}.
 
{{ic|prefix}} is unnecessary (and unsupported) if Node.js is installed by {{AUR|nvm}}.
|-
 
| [[NVIDIA]], [[CUDA]]
 
| {{ic|~/.nv}}
 
|
 
|
 
| {{ic|1=$ export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
 
 
{{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}
 
 
|-
 
|-
 
| [https://github.com/NVIDIA/nvidia-settings nvidia-settings]
 
| [https://github.com/NVIDIA/nvidia-settings nvidia-settings]
Line 921: Line 1,112:
 
|
 
|
 
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}
 
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}
 +
|-
 +
| [[Octave]]
 +
|
 +
{{ic|~/octave<br>
 +
~/.octave_packages<br>
 +
~/.octave_hist}}
 +
|
 +
|
 +
|
 +
{{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.
 
|-
 
|-
 
| [http://www.openscad.org/ openscad]
 
| [http://www.openscad.org/ openscad]
Line 936: Line 1,145:
 
| Seeding file .rnd's location can be set with RANDFILE environment variable per [https://www.openssl.org/docs/faq.html FAQ].
 
| Seeding file .rnd's location can be set with RANDFILE environment variable per [https://www.openssl.org/docs/faq.html FAQ].
 
|-
 
|-
| {{pkg|pass}}
+
| [http://www.gnu.org/software/parallel/ GNU parallel]
 +
| {{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|~/.password-store}}
 
|
 
|
Line 942: Line 1,157:
 
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}
 
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}
 
|-
 
|-
| {{pkg|pidgin}}
+
| [[Pidgin]]
 
| {{ic|~/.purple}}
 
| {{ic|~/.purple}}
 
|
 
|
|
+
| [https://developer.pidgin.im/ticket/4911]
 
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}
 
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}
 
|-
 
|-
 
| [https://www.postgresql.org/ postgresql]
 
| [https://www.postgresql.org/ postgresql]
| {{ic|~/.psqlrc}}
+
|
{{ic|~/.psql_history}}
+
{{ic|~/.psqlrc<br>
 
+
~/.psql_history<br>
{{ic|~/.pgpass}}
+
~/.pgpass<br>
 
+
~/.pg_service.conf}}
{{ic|~/.pg_service.conf}}
 
 
| 9.2
 
| 9.2
| [https://www.postgresql.org/docs/current/static/app-psql.html]
+
| [https://www.postgresql.org/docs/current/static/app-psql.html] [https://www.postgresql.org/docs/current/static/libpq-envars.html]
 
+
|
[https://www.postgresql.org/docs/current/static/libpq-envars.html]
+
{{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"<br>
| {{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"}}
+
$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"<br>
{{ic|1=$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"}}
+
$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"<br>
 
+
$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"}}
{{ic|1=$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"}}
 
 
 
{{ic|1=$ 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"}}
 
It is required to create both directories {{ic|1=$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"}}
Line 979: Line 1,190:
 
|
 
|
 
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}
 
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}
 +
|-
 +
| [https://www.pylint.org/ pylint]
 +
| {{ic|~/.pylint.d}}
 +
|
 +
| [https://github.com/PyCQA/pylint/issues/1364]<sup>won't
 +
| {{ic|1=$ export PYLINTHOME="$XDG_CACHE_HOME"/pylint}}
 
|-
 
|-
 
| [[readline]]
 
| [[readline]]
Line 991: Line 1,208:
 
| [https://github.com/hanslub42/rlwrap/issues/25]
 
| [https://github.com/hanslub42/rlwrap/issues/25]
 
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}
 
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}
 +
|-
 +
| [https://rubygems.org/ RubyGems]
 +
| {{ic|~/.gem}}
 +
|
 +
|
 +
|
 +
{{ic|1=$ export GEM_HOME="$XDG_DATA_HOME"/gem<br>
 +
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem}}
 +
|-
 +
| [https://www.rustup.rs/ rustup]
 +
| {{ic|~/.rustup}}
 +
|
 +
| [https://github.com/rust-lang-nursery/rustup.rs/issues/247]
 +
| {{ic|1=$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup}}
 
|-
 
|-
 
| [http://www.scala-sbt.org/ sbt]
 
| [http://www.scala-sbt.org/ sbt]
Line 996: Line 1,227:
 
{{ic|~/.ivy2}}
 
{{ic|~/.ivy2}}
 
|
 
|
|
+
| [https://github.com/sbt/sbt/issues/3681]
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}}
+
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}} (beware [https://github.com/sbt/sbt/issues/3598])
 
|-
 
|-
 
| [[screen]]
 
| [[screen]]
Line 1,017: Line 1,248:
 
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}
 
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}
 
|-
 
|-
| {{pkg|task}}
+
| {{Pkg|task}}
| {{ic|~/.task}}
+
|
 
+
{{ic|~/.task<br>
{{ic|~/.taskrc}}
+
~/.taskrc}}
 +
|
 
|
 
|
 
|
 
|
| {{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task}}
+
{{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task<br>
 
+
$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}
{{ic|1=$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}
 
 
|-
 
|-
 
| [http://jonas.nitro.dk/tig/ tig]
 
| [http://jonas.nitro.dk/tig/ tig]
Line 1,043: Line 1,274:
 
| {{ic|~/.tmux.conf}}
 
| {{ic|~/.tmux.conf}}
 
|
 
|
| [http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/6013] [http://sourceforge.net/p/tmux/mailman/message/30619546/]
+
| [https://github.com/tmux/tmux/issues/142]
 
| {{ic|1=$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf}}
 
| {{ic|1=$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf}}
  
Line 1,065: Line 1,296:
 
|
 
|
 
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd}}
 
| {{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}}
 
|-
 
|-
 
| [[WeeChat]]
 
| [[WeeChat]]
Line 1,070: Line 1,311:
 
|
 
|
 
| [http://savannah.nongnu.org/task/?10934]
 
| [http://savannah.nongnu.org/task/?10934]
| {{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat}}
+
|
 
+
{{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat<br>
{{ic|1=$ weechat -d "$XDG_CONFIG_HOME"/weechat}}
+
$ weechat -d "$XDG_CONFIG_HOME"/weechat}}
 
|-
 
|-
 
| [[wget]]
 
| [[wget]]
| {{ic|~/.wgetrc}}
 
 
|
 
|
 +
{{ic|~/.wgetrc<br>
 +
~/.wget-hsts}}
 
|
 
|
| {{ic|1=$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"}}
+
|
 +
|
 +
{{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]]
 
| [[wine]]
Line 1,085: Line 1,333:
 
| [https://bugs.winehq.org/show_bug.cgi?id=20888]
 
| [https://bugs.winehq.org/show_bug.cgi?id=20888]
 
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:
 
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes}}
+
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes<br>
 
+
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}
{{ic|1=$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}
 
 
|-
 
|-
| {{pkg|xorg-xauth}}
+
| {{Pkg|xorg-xauth}}
 
| {{ic|~/.Xauthority}}
 
| {{ic|~/.Xauthority}}
 
|
 
|
Line 1,095: Line 1,342:
 
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}
 
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}
 
|-
 
|-
| {{pkg|xorg-xinit}}
+
| [[xinit]]
| {{ic|~/.xinitrc}}
+
|
 
+
{{ic|~/.xinitrc<br>
{{ic|~/.xserverrc}}
+
~/.xserverrc}}
 +
|
 
|
 
|
 
|
 
|
| {{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc}}
+
{{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc<br>
{{ic|1=$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}
+
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}
  
Note that these variables are respected by ''xinit'', but not by ''startx''.
+
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" -- vt1}}
 
|-
 
|-
| {{pkg|xorg-xrdb}}
+
| {{Pkg|xorg-xrdb}}
| {{ic|~/.Xresources}}
+
|
 
+
{{ic|~/.Xresources<br>
{{ic|~/.Xdefaults}}
+
~/.Xdefaults}}
 
|
 
|
 
|
 
|
 
| 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|1=$ xrdb -load ~/.config/X11/xresources}}.
 
| 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|1=$ xrdb -load ~/.config/X11/xresources}}.
|-
 
| {{pkg|Xsession}}
 
| {{ic|~/.xsession-errors}}
 
|
 
|
 
| The log file will be placed in {{ic|$TMPDIR}} if {{ic|$HOME/.xsession-errors}} cannot be opened.
 
 
|}
 
|}
  
==Hardcoded==
+
=== Hardcoded ===
  
 
{| class="wikitable sortable" style="width: 100%"
 
{| class="wikitable sortable" style="width: 100%"
Line 1,130: Line 1,374:
 
|-
 
|-
 
| [[adb]]
 
| [[adb]]
| {{ic|~/.android}}
+
| {{ic|~/.android/}}
 
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]
 
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]
 
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}
 
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}
Line 1,140: Line 1,384:
 
|-
 
|-
 
| [https://developer.android.com/studio/index.html Android Studio]
 
| [https://developer.android.com/studio/index.html Android Studio]
| {{ic|~/.AndroidStudio2.3}}
+
|
 
+
{{ic|~/.AndroidStudio2.3<br>
{{ic|~/.android}}
+
~/.android/<br>
 
+
~/.java/}}
{{ic|~/.java}}
 
 
|
 
|
 
|
 
|
Line 1,155: Line 1,398:
 
| [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]<sup>won't
 
|
 
|
 
|-
 
|-
 
| [https://www.audacityteam.org/ Audacity]
 
| [https://www.audacityteam.org/ Audacity]
| {{ic|~/.audacity-data}}
+
| {{ic|~/.audacity-data/}}
 
|
 
|
 
|
 
|
Line 1,167: Line 1,423:
 
|
 
|
 
|-
 
|-
| [[bash]]
+
| [[Bash]]
| {{ic|~/.bashrc}}
+
|
 
+
{{ic|~/.bashrc<br>
{{ic|~/.bash_history}}
+
~/.bash_history<br>
 
+
~/.bash_profile<br>
{{ic|~/.bash_profile}}
+
~/.bash_login<br>
 
+
~/.bash_logout}}
{{ic|~/.bash_login}}
 
 
 
{{ic|~/.bash_logout}}
 
 
| [http://savannah.gnu.org/support/?108134]<sup>won't
 
| [http://savannah.gnu.org/support/?108134]<sup>won't
| A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bashrc}}
+
| {{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}
+
A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bashrc}}.
|-
 
| [[bazaar]]
 
| {{ic|~/.bazaar}}
 
  
{{ic|~/.bzr.log}}
+
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.
 
|-
 
|-
| [https://calibre-ebook.com/ calibre]
+
| {{AUR|chatty}}
| {{ic|~/Calibre Library}}
+
| {{ic|~/.chatty/}}
 +
| [https://github.com/chatty/chatty/issues/273]
 
|
 
|
 +
|-
 +
| {{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].
 +
|-
 +
| {{AUR|cryptomator}}
 +
| {{ic|~/.Cryptomator}}
 +
| [https://github.com/cryptomator/cryptomator/issues/710]
 
|
 
|
 
|-
 
|-
 
| [[CUPS]]
 
| [[CUPS]]
| {{ic|~/.cups}}
+
| {{ic|~/.cups/}}
 
| [http://www.cups.org/str.php?L4243]<sup>won't
 
| [http://www.cups.org/str.php?L4243]<sup>won't
 
|
 
|
 
|-
 
|-
 
| [[darcs]]
 
| [[darcs]]
| {{ic|~/.darcs}}
+
| {{ic|~/.darcs/}}
 
| [http://bugs.darcs.net/issue2453]
 
| [http://bugs.darcs.net/issue2453]
 
|
 
|
 
|-
 
|-
 
| [[dbus]]
 
| [[dbus]]
| {{ic|~/.dbus}}
+
| {{ic|~/.dbus/}}
 
| [https://bugs.freedesktop.org/show_bug.cgi?id=35887]
 
| [https://bugs.freedesktop.org/show_bug.cgi?id=35887]
 
| This should be avoidable with kdbus [citation needed].
 
| This should be avoidable with kdbus [citation needed].
 +
|-
 +
| {{Pkg|devede}}
 +
| {{ic|~/.devedeng}}
 +
|
 +
| Hardcoded [https://gitlab.com/rastersoft/devedeng/blob/f0893b3ff7b14723bd148db35bdfe2d284156d19/src/devedeng/configuration_data.py#L111 here]
 
|-
 
|-
 
| [https://wiki.gnome.org/Apps/Dia Dia]
 
| [https://wiki.gnome.org/Apps/Dia Dia]
| {{ic|~/.dia}}
+
| {{ic|~/.dia/}}
 +
|
 
|
 
|
 
|-
 
|-
| [[eclipse]]
+
| [[Eclipse]]
| {{ic|~/.eclipse}}
+
| {{ic|~/.eclipse/}}
 
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]
 
| [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}})
 
| 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://www.gnu.org/software/emacs/ emacs]
+
| [[Emacs]]
| {{ic|~/.emacs}}
+
|
 
+
{{ic|~/.emacs<br>
{{ic|~/.emacs.d}}
+
~/.emacs.d/}}
 
| [http://debbugs.gnu.org/cgi/bugreport.cgi?bug=583]
 
| [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.
 
| 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.
Line 1,235: Line 1,499:
 
|-
 
|-
 
| [[Firefox]]
 
| [[Firefox]]
| {{ic|~/.mozilla}}
+
| {{ic|~/.mozilla/}}
 
| [https://bugzil.la/259356]
 
| [https://bugzil.la/259356]
 
|
 
|
Line 1,241: Line 1,505:
 
| [[Flatpak]]
 
| [[Flatpak]]
 
| {{ic|~/.var/}}
 
| {{ic|~/.var/}}
| [https://github.com/flatpak/flatpak/issues/46] [https://github.com/flatpak/flatpak.github.io/issues/191]
+
| [https://github.com/flatpak/flatpak/issues/46] [https://github.com/flatpak/flatpak.github.io/issues/191] [https://github.com/flatpak/flatpak/issues/1651]<sup>won't
 
|
 
|
 
|-
 
|-
Line 1,249: Line 1,513:
 
|
 
|
 
|-
 
|-
| [http://www.gnu.org/software/parallel/ GNU parallel]
+
| [[Goldendict]]
| {{ic|~/.parallel}}
+
| {{ic|~/.goldendict/}}
 +
| [https://github.com/goldendict/goldendict/issues/151]
 
|
 
|
 +
|-
 +
| {{Pkg|gramps}}
 +
| {{ic|~/.gramps/}}
 +
| [https://gramps-project.org/bugs/view.php?id=8025]
 +
|
 +
|-
 +
| {{Pkg|grsync}}
 +
| {{ic|~/.grsync/}}
 +
| [https://sourceforge.net/p/grsync/feature-requests/15/]
 
|
 
|
 
|-
 
|-
Line 1,257: Line 1,531:
 
| {{ic|~/.gtk-recordmydesktop}}
 
| {{ic|~/.gtk-recordmydesktop}}
 
|
 
|
 +
|
 +
|-
 +
| {{Pkg|hplip}}
 +
| {{ic|~/.hplip/}}
 +
| [https://bugs.launchpad.net/hplip/+bug/307152]
 
|
 
|
 
|-
 
|-
Line 1,262: Line 1,541:
 
| {{ic|~/.idris}}
 
| {{ic|~/.idris}}
 
| [https://github.com/idris-lang/Idris-dev/pull/3456]
 
| [https://github.com/idris-lang/Idris-dev/pull/3456]
 +
|
 +
|-
 +
| [[Java]] OpenJDK
 +
| {{ic|~/.java/fonts}}
 +
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]
 +
|
 +
|-
 +
| [[Java]] OpenJFX
 +
| {{ic|~/.java/webview}}
 +
|
 
|
 
|
 
|-
 
|-
 
| [http://julialang.org/ julia]
 
| [http://julialang.org/ julia]
| {{ic|~/.juliarc.jl}}
+
|
 
+
{{ic|~/.juliarc.jl<br>
{{ic|~/.julia_history}}
+
~/.julia_history}}
 
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]
 
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]
 
|
 
|
Line 1,277: Line 1,566:
 
|-
 
|-
 
| [http://lldb.llvm.org/ lldb]
 
| [http://lldb.llvm.org/ lldb]
| {{ic|~/.lldb}}
+
|
 
+
{{ic|~/.lldb<br>
{{ic|~/.lldbinit}}
+
~/.lldbinit}}
 
|
 
|
 
|
 
|
 
|-
 
|-
 
| [http://www.mathomatic.org/ mathomatic]
 
| [http://www.mathomatic.org/ mathomatic]
| {{ic|~/.mathomaticrc}}
+
|
 
+
{{ic|~/.mathomaticrc<br>
{{ic|~/.matho_history}}
+
~/.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.
 
|-
 
|-
| [http://www.milkytracker.org/ milkytracker]
+
| [[Minecraft]]
| {{ic|~/.milkytracker_config}}
+
| {{ic|~/.minecraft/}}
| [https://github.com/Deltafire/MilkyTracker/issues/12]
+
| [https://bugs.mojang.com/browse/MCL-2563]
 
|
 
|
 
|-
 
|-
| [https://minecraft.net/ Minecraft]
+
| [[Minetest]]
| {{ic|~/.minecraft}}
+
| {{ic|~/.minetest/}}
| [https://bugs.mojang.com/browse/MCL-2563]
+
| [https://github.com/minetest/minetest/issues/864]<sup>won't
 
|
 
|
 
|-
 
|-
 
| [https://www.mongodb.org/ mongodb]
 
| [https://www.mongodb.org/ mongodb]
| {{ic|~/.mongorc.js}}
+
|
 
+
{{ic|~/.mongorc.js<br>
{{ic|~/.dbshell}}
+
~/.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}}.
 
| [http://stackoverflow.com/a/22349050/4200039 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]<sup>won't
 +
|
 
|-
 
|-
 
|
 
|
Line 1,312: Line 1,606:
 
| 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.
 
| 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.
 
|-
 
|-
| [[nano]]
+
| [https://github.com/nodejs/node-gyp node-gyp]
| {{ic|~/.nano/}} {{ic|~/.nanorc}}
+
| {{ic|~/.node-gyp}}
| [https://savannah.gnu.org/patch/?8523]
+
| [https://github.com/nodejs/node-gyp/issues/175] [https://github.com/nodejs/node-gyp/issues/21] [https://github.com/nodejs/node-gyp/issues/1124]
 +
| Discussion seems as though partial support may soon be added.
 
|-
 
|-
 
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]
 
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]
Line 1,321: Line 1,616:
 
|
 
|
 
|-
 
|-
| [https://www.openssh.com/ OpenSSH]
+
| [[OpenSSH]]
 
| {{ic|~/.ssh}}
 
| {{ic|~/.ssh}}
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050]
+
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050]<sup>won't
 
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.
 
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.
 
|-
 
|-
Line 1,334: Line 1,629:
 
| {{ic|~/.debug}}
 
| {{ic|~/.debug}}
 
|
 
|
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L18 tools/perf/util/config.c:18].
+
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L29 tools/perf/util/config.c:29].
 
|-
 
|-
 
| various [[shell]]s and [[display manager]]s
 
| various [[shell]]s and [[display manager]]s
Line 1,351: Line 1,646:
 
|
 
|
 
|-
 
|-
| [https://quodlibet.readthedocs.io/en/latest/ quodlibet]
+
| [https://quodlibet.readthedocs.io/en/latest/ Quod Libet]
 
| {{ic|~/.quodlibet}}
 
| {{ic|~/.quodlibet}}
|
+
| [https://github.com/quodlibet/quodlibet/issues/138]
 
|
 
|
 
|-
 
|-
Line 1,371: Line 1,666:
 
|
 
|
 
|-
 
|-
| [https://www.scribus.net/ Scribus]
+
| [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}}
 
| {{ic|~/.scribus}}
 +
|
 
|
 
|
 
|-
 
|-
 
| [http://www.seamonkey-project.org/ SeaMonkey]
 
| [http://www.seamonkey-project.org/ SeaMonkey]
| {{ic|~/.mozilla}}
+
| {{ic|~/.mozilla/}}
 
| [https://bugzil.la/726939]
 
| [https://bugzil.la/726939]
 
|
 
|
 
|-
 
|-
| [[Skype]] < 5.0
+
| {{Pkg|simplescreenrecorder}}
| {{ic|~/.Skype}}
+
| {{ic|~/.ssr/}}
| [https://community.skype.com/t5/Linux-archive/Skype-violates-XDG-basedir-spec-on-linux/td-p/4175884]
+
| [https://github.com/MaartenBaert/ssr/issues/407]
|
+
| Author seems against this feature.
 
|-
 
|-
 
| [https://www.gnu.org/software/solfege/solfege.html Solfege]
 
| [https://www.gnu.org/software/solfege/solfege.html Solfege]
| {{ic|~/.solfege}}
+
|
 
+
{{ic|~/.solfege<br>
{{ic|~/.solfegerc}}
+
~/.solfegerc<br>
 
+
~/lessonfiles}}
{{ic|~/lessonfiles}}
 
 
| [https://savannah.gnu.org/bugs/index.php?50251]
 
| [https://savannah.gnu.org/bugs/index.php?50251]
 
|
 
|
Line 1,405: Line 1,710:
 
|-
 
|-
 
| [[SQLite]]
 
| [[SQLite]]
| {{ic|~/.sqlite_history}}
+
|
 
+
{{ic|~/.sqlite_history<br>
{{ic|~/.sqliterc}}
+
~/.sqliterc}}
 
| [https://unix.stackexchange.com/questions/306890/change-location-of-sqlite-history-file][http://sqlite.1065341.n5.nabble.com/Customizing-the-location-of-the-sqlite-history-td87055.html]
 
| [https://unix.stackexchange.com/questions/306890/change-location-of-sqlite-history-file][http://sqlite.1065341.n5.nabble.com/Customizing-the-location-of-the-sqlite-history-td87055.html]
 
| {{ic|$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}
 
| {{ic|$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}
 
|-
 
|-
 
| [[Steam]]
 
| [[Steam]]
| {{ic|~/.steam}}
+
|
{{ic|~/.steampath}}
+
{{ic|~/.steam<br>
{{ic|~/.steampid}}
+
~/.steampath<br>
 +
~/.steampid}}
 
| [https://github.com/ValveSoftware/steam-for-linux/issues/1890]
 
| [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]]
 
| [[TeamSpeak]]
 
| {{ic|~/.ts3client}}
 
| {{ic|~/.ts3client}}
 
|
 
|
 +
|
 +
|-
 +
| {{pkg|texinfo}}
 +
| {{ic|~/.infokey}}
 +
|
 +
| {{ic|$ info --init-file "$XDG_CONFIG_HOME/infokey"}}
 
|-
 
|-
 
| [http://www.texmacs.org/ TeXmacs]
 
| [http://www.texmacs.org/ TeXmacs]
Line 1,428: Line 1,740:
 
|-
 
|-
 
| [[Thunderbird]]
 
| [[Thunderbird]]
| {{ic|~/.thunderbird}}
+
| {{ic|~/.thunderbird/}}
 
| [https://bugzil.la/735285]
 
| [https://bugzil.la/735285]
 
|
 
|
Line 1,434: Line 1,746:
 
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]
 
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]
 
| {{ic|~/.texlive}}
 
| {{ic|~/.texlive}}
 +
|
 
|
 
|
 
|-
 
|-
 
| [[vim]]
 
| [[vim]]
| {{ic|~/.vim}}
+
|
 
+
{{ic|~/.vim<br>
{{ic|~/.vimrc}}
+
~/.vimrc<br>
 
+
~/.viminfo}}
{{ic|~/.viminfo}}
 
 
|
 
|
 
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.
 
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.
Line 1,452: Line 1,764:
 
set backupdir&#61;$XDG_CACHE_HOME/vim/backup
 
set backupdir&#61;$XDG_CACHE_HOME/vim/backup
 
set viminfo+&#61;'1000,n$XDG_CACHE_HOME/vim/viminfo
 
set viminfo+&#61;'1000,n$XDG_CACHE_HOME/vim/viminfo
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIMRUNTIME
+
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
 
}}
 
}}
  
Line 1,467: Line 1,779:
  
 
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}
 
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}
 +
|-
 +
| {{Pkg|w3m}}
 +
| {{ic|~/.w3m}}
 +
| [https://sourceforge.net/p/w3m/feature-requests/31/]
 +
|
 
|-
 
|-
 
| [https://w1.fi/ wpa_cli]
 
| [https://w1.fi/ wpa_cli]
Line 1,473: Line 1,790:
 
|
 
|
 
|-
 
|-
| {{pkg|xdg-utils}}
+
| {{Pkg|xdg-utils}}
 
| {{ic|~/.gnome}}
 
| {{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]] amoung others.
+
| 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]
 
| [https://opensource.conformal.com/wiki/xombrero xombrero]
Line 1,483: Line 1,800:
 
|
 
|
 
|-
 
|-
| {{pkg|yarn}}
+
| [https://nmap.org/zenmap/ zenmap] {{Pkg|nmap}}
| {{ic|~/.yarnrc}}
+
| {{ic|~/.zenmap}}
 
+
| [http://seclists.org/nmap-dev/2012/q2/163] [https://github.com/nmap/nmap/issues/590]
{{ic|~/.yarn/}}
 
 
 
{{ic|~/.yarncache/}}
 
 
 
{{ic|~/.yarn-config/}}
 
| [https://github.com/yarnpkg/yarn/issues/2334]
 
 
|
 
|
 
|-
 
|-
 
| [[zsh]]
 
| [[zsh]]
| {{ic|~/.zshrc}}
+
|
 
+
{{ic|~/.zshrc<br>
{{ic|~/.zprofile}} {{ic|~/.zshenv}}
+
~/.zprofile<br>
 
+
~/.zshenv<br>
{{ic|~/.zlogin}} {{ic|~/.zlogout}}
+
~/.zlogin<br>
 
+
~/.zlogout<br>
{{ic|~/.histfile}}
+
~/.histfile}}
 
| [http://www.zsh.org/mla/workers/2013/msg00692.html]
 
| [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.
 
| 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.
Line 1,508: Line 1,819:
 
|}
 
|}
  
==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 1,520: Line 1,837:
 
: [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]
 +
 +
; Ruby
 +
: [https://github.com/rubyworks/xdg rubyworks/xdg]
 +
 +
; Rust
 +
: [https://github.com/soc/directories-rs directories-rs]
  
 
; Python
 
; Python
Line 1,537: Line 1,860:
 
* [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 20:30, 22 September 2018

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, using absolute paths that point to existing directories.

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 seperated by : (analogous to PATH).
    • Should default to /usr/local/share:/usr/share.
  • XDG_CONFIG_DIRS
    • List of directories seperated 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 ~/.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.
Blender ~/.blender 4293f47 [4]
calibre
Chromium ~/.chromium 23057

[5] [6]

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

~/.fontconfig
~/.fonts

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

~/.FontForge
~/.PfaEdit

e4c2cc7

[12] [13]

freerdp ~/.freerdp edf6e72
Gajim ~/.gajim 3e777ea [14]
gconf ~/.gconf fc28caa [15]
GIMP

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

60e0cfe 483505f

[16] [17]

Git ~/.gitconfig 0d94427
GStreamer ~/.gstreamer-0.10 4e36f93 [18]
GTK+ 3
htop ~/.htoprc 93233a6
i3 ~/.i3 7c130fb
i3status ~/.i3status.conf c3f7fc4
imagemagick
Inkscape ~/.inkscape 0.47 [19]
latex-mkAUR ~/.latexmkrc
lftp ~/.lftp 21dc400 [20]
lgogdownloaderAUR ~/.gogdownloader d430af6 [21]
LibreOffice

a6f56f7 25bd2ee

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

1b99570 0b71156 ce401d7

[24]
Mercurial ~/.hgrc

3540200 4.2

XDG_CONFIG_HOME/hg/hgrc.
mesa 87ab26b XDG_CACHE_HOME/mesa
milkytracker ~/.milkytracker_config eb487c5 [25]
mpd ~/.mpdconf 87b7328
mpv ~/.mpv cb250d4 [26]
mutt ~/.mutt b17cd67 [27]
mypaint ~/.mypaint cf723b7
nano

~/.nano/
~/.nanorc

c16e79b [28]
ncmpcpp ~/.ncmpcpp

38d9f81 27cd86e

[29] [30]

ncmpcpp_directory should be set to avoid an error.log file in ~/.ncmpcpp.
np2kai-gitAUR

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

56a1cc2 [31]
Neovim

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

1ca5646

[32] [33]

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

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

NVIDIA ~/.nv
OfflineIMAP ~/.offlineimaprc 5150de5 [36]
opentyrianAUR ~/.opentyrian 8d45ff2 [37]
pcsx2 ~/.pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

[38] [39]
python-pip ~/.pip 6.0 [40]
powershellAUR 6.0
ppsspp ~/.ppsspp 132fe47 [41]
procps-ng ~/.toprc af53e17

[42] [43]

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

~/.pulse
~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

[45]
pyroomAUR
qutebrowser
qtile

fd8686e 66d704b 51cff01

[46] Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.
rclone ~/.rclone.conf 9d36258 [47]
retroarch
rrAUR ~/.rr 02e7d41 [48]
rTorrent ~/.rtorrent.rc 6a8d332
skypeforlinux-stable-binAUR ~/.Skype 8.0
snes9x ~/.snes9x 93b5f11 [49] By default configuration is blank, is intended that the user fill it at they will (throw the gui or manually) before launch a rom
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 [50]
systemd
termite
tmuxinatorAUR ~/.tmuxinator 2636923 [51]
Transmission ~/.transmission b71a298
util-linux 570b321
Uzbl c6fd63a [52]
vimbAUR
VirtualBox ~/.VirtualBox 4.3 [53]
vis ~/.vis

68a25c7 d138908

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

[57] [58]

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

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

2d454b5 [60]

Partial

Application Legacy Path Supported Since Discussion Notes
abook ~/.abook $ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook
Anki

~/Anki
~/Documents/Anki

[61] [62] $ 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 [63] $ export ATOM_HOME="$XDG_DATA_HOME"/atom
aws-cli ~/.aws 1.7.45 [64]

$ 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 [65] Discussion in upstream bug states that bazaar wil use ~/.config/bazaar if it exists. The logfile ~/.bzr.log might still be written.
Ruby#Bundler ~/.bundle [66] [67] $ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
cargo ~/.cargo [68] [69] [70] [71] $ export CARGO_HOME="$XDG_DATA_HOME"/cargo
ccache ~/.ccache $ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache
ChezScheme ~/.chezscheme_history $ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history
conky ~/.conkyrc 00481ee [72] $ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
coreutils ~/.dircolors $ source "$(dircolors "$XDG_CONFIG_HOME"/dircolors)"
crawl ~/.crawl The trailing slash is required:

$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/

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 [73] $ 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

[74]

$ 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

freecad ~/.FreeCAD [75] $ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg
gdb ~/.gdbinit $ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init
get_iplayer ~/.get_iplayer $ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer
getmail ~/.getmail/getmailrc $ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
gliv ~/.glivrc $ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
GnuPG ~/.gnupg [76] [77]

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

Google Earth ~/.googleearth Some paths can be changed with the KMLPath and CachePath options in ~/.config/Google/GoogleEarthPlus.conf
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 [78] $ 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
httpie ~/.httpie [79] $ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie
ipython/jupyter ~/.ipython

$ 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 [80] $ 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 [81] $ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
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 [82] $ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss
libice ~/.ICEauthority [83] $ 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 $ 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
MOC ~/.moc

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

most ~/.mostrc $ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc
MPlayer ~/.mplayer $ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer
msmtp ~/.msmtprc $ msmtp -C "$XDG_CONFIG_HOME"/msmtp/msmtprc
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 [84] $ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans
Node.js ~/.node_repl_history $ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history [85]
notmuch ~/.notmuch-config [86]

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

npm

~/.npm
~/.npmrc

[87] $ 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.

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 [88] Does not fully honour XDG Base Directory Specification, see [89]

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

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

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

9.2 [91] [92]

$ 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-setuptools ~/.python-eggs $ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs
pylint ~/.pylint.d [93]won't $ export PYLINTHOME="$XDG_CACHE_HOME"/pylint
readline ~/.inputrc $ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
rlwrap ~/.*_history [94] $ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap
RubyGems ~/.gem

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

rustup ~/.rustup [95] $ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
sbt ~/.sbt

~/.ivy2

[96] $ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt (beware [97])
screen ~/.screenrc $ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc
stack ~/.stack [98] $ export STACK_ROOT="$XDG_DATA_HOME"/stack
subversion ~/.subversion [99] [100][101] $ svn --config-dir "$XDG_CONFIG_HOME"/subversion
task

~/.task
~/.taskrc

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

tig ~/.tigrc $ export TIGRC_USER="$XDG_CONFIG_HOME"/tig/tigrc
tiptop ~/.tiptoprc This will still expect the .tiptoprc file.

$ tiptop -W "$XDG_CONFIG_HOME"/tiptop

tmux ~/.tmux.conf [102] $ 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

[103]

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

WeeChat ~/.weechat [104]

$ 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 [105] Winetricks uses XDG-alike location below for WINEPREFIX management:

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

xorg-xauth ~/.Xauthority $ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
xinit

~/.xinitrc
~/.xserverrc

$ 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" -- 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.

Hardcoded

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

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

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

~/.arduino15
~/.jssc

[108]won't
Audacity ~/.audacity-data/
Avidemux ~/.avidemux6
Bash

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

[109]won't $ export HISTFILE="$XDG_DATA_HOME"/bash/history

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

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

cabal ~/.cabal/ [110] See discussion for potential workarounds. It is not very easy or straightforward but may be possible to emulate Base Directory compliance.
chattyAUR ~/.chatty/ [111]
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.
cryptomatorAUR ~/.Cryptomator [112]
CUPS ~/.cups/ [113]won't
darcs ~/.darcs/ [114]
dbus ~/.dbus/ [115] This should be avoidable with kdbus [citation needed].
devede ~/.devedeng Hardcoded here
Dia ~/.dia/
Eclipse ~/.eclipse/ [116] 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/

[117] 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/ [118]
Flatpak ~/.var/ [119] [120] [121]won't
GHC ~/.ghc [122]
Goldendict ~/.goldendict/ [123]
gramps ~/.gramps/ [124]
grsync ~/.grsync/ [125]
gtk-recordMyDesktop ~/.gtk-recordmydesktop
hplip ~/.hplip/ [126]
idris ~/.idris [127]
Java OpenJDK ~/.java/fonts [128]
Java OpenJFX ~/.java/webview
julia

~/.juliarc.jl
~/.julia_history

[129] [130]
Linux PAM ~/.pam_environment [131] 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/ [132]
Minetest ~/.minetest/ [133]won't
mongodb

~/.mongorc.js
~/.dbshell

[134] This Stack Overflow thread suggests a partial workaround using command-line switch --norc.
Nestopia UE ~/.nestopia/ [135]won't
~/.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.
node-gyp ~/.node-gyp [136] [137] [138] Discussion seems as though partial support may soon be added.
NSS ~/.pki [139]
OpenSSH ~/.ssh [140]won't Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.
palemoon ~/.moonchild productions [141]
perf ~/.debug Hardcoded in tools/perf/util/config.c:29.
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
Quod Libet ~/.quodlibet [142]
racket ~/.racketrc
RedNotebook ~/.rednotebook
Remarkable ~/.remarkable
Ren'Py ~/.renpy [143]
SANE ~/.sane/ scanimage creates a .cal file there
scribus ~/.scribus
SeaMonkey ~/.mozilla/ [144]
simplescreenrecorder ~/.ssr/ [145] Author seems against this feature.
Solfege

~/.solfege
~/.solfegerc
~/lessonfiles

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

~/.sqlite_history
~/.sqliterc

[147][148] $ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc
Steam

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

[149] 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/ [150]
tllocalmgr ~/.texlive
vim

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

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

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

"$XDG_CONFIG_HOME"/vim/vimrc
set undodir=$XDG_CACHE_HOME/vim/undo
set directory=$XDG_CACHE_HOME/vim/swap
set backupdir=$XDG_CACHE_HOME/vim/backup
set viminfo+='1000,n$XDG_CACHE_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 [151] $ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"

$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

w3m ~/.w3m [152]
wpa_cli ~/.wpa_cli_history
xdg-utils ~/.gnome [153] For some reason the script xdg-desktop-menu hard-codes gnome_user_dir="$HOME/.gnome/apps". This is used by chromium among others.
xombrero ~/.xombrero [154]
zenmap nmap ~/.zenmap [155] [156]
zsh

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

[157] 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

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
Ruby
rubyworks/xdg
Rust
directories-rs
Python
pyxdg
Vala
Builtin support via GLib.Environment.
See get_user_cache_dir, get_user_data_dir, get_user_config_dir, etc.

See also