https://wiki.archlinux.org/api.php?action=feedcontributions&user=Elbahek&feedformat=atomArchWiki - User contributions [en]2024-03-28T21:03:24ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=XDG_Base_Directory&diff=637194XDG Base Directory2020-10-04T21:31:04Z<p>Elbahek: Added jgmenu package to a list of hardcoded, to change the location of .jgmenu-lockfile one should recompile from sources</p>
<hr />
<div>[[Category:Freedesktop.org]]<br />
[[Category:Configuration files]]<br />
[[Category:Development]]<br />
[[ja:XDG Base Directory]]<br />
[[pt:XDG Base Directory]]<br />
{{Related articles start}}<br />
{{Related|dotfiles}}<br />
{{Related|XDG user directories}}<br />
{{Related articles end}}<br />
<br />
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]].<br />
<br />
== Specification ==<br />
<br />
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.<br />
<br />
Only {{ic|XDG_RUNTIME_DIR}} is set by default through [https://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd]. It is up to the user to explicitly [[define]] the other variables according to the specification.<br />
<br />
=== User directories ===<br />
<br />
* {{ic|XDG_CONFIG_HOME}}<br />
** Where user-specific configurations should be written (analogous to {{ic|/etc}}).<br />
** Should default to {{ic|$HOME/.config}}.<br />
<br />
* {{ic|XDG_CACHE_HOME}}<br />
** Where user-specific non-essential (cached) data should be written (analogous to {{ic|/var/cache}}).<br />
** Should default to {{ic|$HOME/.cache}}.<br />
<br />
* {{ic|XDG_DATA_HOME}}<br />
** Where user-specific data files should be written (analogous to {{ic|/usr/share}}).<br />
** Should default to {{ic|$HOME/.local/share}}.<br />
<br />
* {{ic|XDG_RUNTIME_DIR}}<br />
** Used for non-essential, user-specific data files such as sockets, named pipes, etc.<br />
** Not required to have a default value; warnings should be issued if not set or equivalents provided.<br />
** Must be owned by the user with an access mode of {{ic|0700}}.<br />
** Filesystem fully featured by standards of OS.<br />
** Must be on the local filesystem.<br />
** May be subject to periodic cleanup.<br />
** Modified every 6 hours or set sticky bit if persistence is desired.<br />
** Can only exist for the duration of the user's login.<br />
** Should not store large files as it may be mounted as a tmpfs.<br />
<br />
=== System directories ===<br />
<br />
* {{ic|XDG_DATA_DIRS}}<br />
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/usr/local/share:/usr/share}}.<br />
<br />
* {{ic|XDG_CONFIG_DIRS}}<br />
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/etc/xdg}}.<br />
<br />
== Support ==<br />
<br />
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.<br />
<br />
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.<br />
<br />
Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.<br />
<br />
=== Contributing ===<br />
<br />
When contributing make sure to use the correct section.<br />
<br />
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.<br />
<br />
* The first column should be either a link to an internal article, a [[Template:Pkg]] or a [[Template:AUR]].<br />
* 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.<br />
* 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).<br />
* The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.<br />
<br />
=== Supported ===<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| {{AUR|aerc-git}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[ALSA]]<br />
| {{ic|~/.asoundrc}}<br />
| [https://github.com/alsa-project/alsa-lib/commit/577df365f66ee09579864fc771136e690927b3bf 577df36]<br />
[https://github.com/alsa-project/alsa-lib/releases/tag/v1.2.3 1.2.3]<br />
| [https://github.com/alsa-project/alsa-lib/issues/49]<br />
| {{ic|$XDG_CONFIG_HOME/alsa/asoundrc}}<br />
|-<br />
| {{AUR|antimicro}}{{Broken package link|package not found}}<br />
| {{ic|~/.antimicro}}<br />
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]<br />
| [https://github.com/Antimicro/antimicro/issues/5]<br />
|<br />
|-<br />
| [[aria2]]<br />
| {{ic|~/.aria2}}<br />
| [https://github.com/tatsuhiro-t/aria2/commit/8bc1d37 8bc1d37]<br />
| [https://github.com/tatsuhiro-t/aria2/issues/27]<br />
|<br />
|-<br />
| {{Pkg|asunder}}<br />
|<br />
{{ic|~/.asunder<br><br />
~/.asunder_album_artist<br><br />
~/.asunder_album_genre<br><br />
~/.asunder_album_title}}<br />
| [https://littlesvr.ca/bugs/show_bug.cgi?id=31 2.9.0]<br />
| [https://littlesvr.ca/bugs/show_bug.cgi?id=52]<br />
| 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.<br />
|-<br />
| {{Pkg|binwalk}}<br />
| {{ic|~/.binwalk}}<br />
| [https://github.com/ReFirmLabs/binwalk/commit/2051757 2051757]<br />
| [https://github.com/ReFirmLabs/binwalk/issues/216]<br />
| {{ic|$XDG_CONFIG_HOME/binwalk}}<br />
|-<br />
| [[Blender]]<br />
| {{ic|~/.blender}}<br />
| [http://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/4293f47 4293f47]<br />
| [https://developer.blender.org/T28943]<br />
|<br />
|-<br />
| {{Pkg|calcurse}}<br />
| {{ic|~/.calcurse}}<br />
| [https://github.com/lfos/calcurse/commit/04162d 04162d]<br />
| [https://github.com/lfos/calcurse/pull/254] [https://github.com/lfos/calcurse/issues/252]<br />
| {{ic|XDG_CONFIG_HOME/calcurse}}<br />
<br />
{{ic|XDG_DATA_HOME/calcurse}}<br />
<br />
If the legacy path {{ic|~/.calcurse}} is present, it will take precedence.<br />
|-<br />
| {{Pkg|calibre}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{AUR|citra-git}}<br />
| {{ic|~/.citra-emu}}<br />
| [https://github.com/citra-emu/citra/commit/f7c3193 f7c3193]<br />
| [https://github.com/citra-emu/citra/pull/575]<br />
|<br />
|-<br />
| [[Composer]]<br />
| {{ic|~/.composer}}<br />
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]<br />
| [https://github.com/composer/composer/pull/1407]<br />
|<br />
|-<br />
| {{Pkg|d-feet}}<br />
| {{ic|~/.d-feet}}<br />
| [https://gitlab.gnome.org/GNOME/d-feet/commit/7f6104b 7f6104b]<br />
|<br />
|<br />
|-<br />
| {{Pkg|dconf}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[Dolphin emulator]]<br />
| {{ic|~/.dolphin-emu}}<br />
| [https://github.com/dolphin-emu/dolphin/commit/a498c68 a498c68]<br />
| [https://github.com/dolphin-emu/dolphin/pull/2304]<br />
|<br />
|-<br />
| {{AUR|dr14_tmeter}}<br />
|<br />
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca 7e777ca]<br />
| [https://github.com/simon-r/dr14_t.meter/pull/30]<br />
| {{ic|XDG_CONFIG_HOME/dr14tmeter/}}<br />
|-<br />
| {{Pkg|dunst}}<br />
|<br />
| [https://github.com/dunst-project/dunst/commit/78b6e2b 78b6e2b]<br />
| [https://github.com/dunst-project/dunst/issues/22]<br />
|<br />
|-<br />
| [[dwb]]<br />
|<br />
|<br />
|<br />
|<br />
<br />
|-<br />
| [[fish]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[fontconfig]]<br />
|<br />
{{ic|~/.fontconfig<br><br />
~/.fonts}}<br />
| [https://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb 8c255fb], [https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/437f03299bd1adc9673cd576072f1657be8fd4e0]<br />
|<br />
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.<br />
|-<br />
| {{Pkg|fontforge}}<br />
|<br />
{{ic|~/.FontForge<br><br />
~/.PfaEdit}}<br />
| [https://github.com/fontforge/fontforge/commit/e4c2cc7 e4c2cc7]<br />
|<br />
[https://github.com/fontforge/fontforge/issues/847]<br />
[https://github.com/fontforge/fontforge/issues/991]<br />
|<br />
|-<br />
| {{Pkg|freerdp}}<br />
| {{ic|~/.freerdp}}<br />
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e72 edf6e72]<br />
|<br />
|<br />
|-<br />
| [[Emacs]]<br />
| {{ic|~/.emacs<br>~/.emacs.d/init.el}}<br />
| [https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=4118297ae2fab4886b20d193ba511a229637aea3]<br />
[https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html#Releases 27.1]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/emacs/init.el}}<br />
Legacy paths have precedence over XDG paths. Emacs will never create {{ic|XDG_CONFIG_HOME/emacs/}}.<br />
Workaround for 26.3 or older: It's possible to set {{ic|HOME}}, but it has unexpected side effects. <br />
|-<br />
| [[Gajim]]<br />
| {{ic|~/.gajim}}<br />
| [https://dev.gajim.org/gajim/gajim/commit/3e777ea 3e777ea]<br />
| [https://dev.gajim.org/gajim/gajim/issues/2149]<br />
|<br />
|-<br />
| {{AUR|gconf}}<br />
| {{ic|~/.gconf}}<br />
| [https://gitlab.gnome.org/Archive/gconf/commit/fc28caa fc28caa]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=674803]<br />
|<br />
|-<br />
| [[GIMP]]<br />
|<br />
{{ic|~/.gimp-x.y<br><br />
~/.thumbnails}}<br />
|<br />
[https://gitlab.gnome.org/GNOME/gimp/commit/60e0cfe 60e0cfe]<br />
[https://gitlab.gnome.org/GNOME/gimp/commit/483505f 483505f]<br />
|<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=166643]<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=646644]<br />
|<br />
|-<br />
| [[Git]]<br />
| {{ic|~/.gitconfig}}<br />
| [https://github.com/git/git/commit/0d94427 0d94427]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/git/config}}<br />
|-<br />
| [https://github.com/google/gops gops]<br />
|<br />
| [https://github.com/google/gops/commit/71c4255 71c4255]<br />
|<br />
|<br />
|-<br />
| [[GStreamer]]<br />
| {{ic|~/.gstreamer-0.10}}<br />
| [https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93 4e36f93]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=518597]<br />
|<br />
|-<br />
| [[GTK]] 3<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|htop}}<br />
| {{ic|~/.htoprc}}<br />
| [https://github.com/hishamhm/htop/commit/93233a6 93233a6]<br />
|<br />
|<br />
|-<br />
| {{Pkg|httpie}}<br />
| {{ic|~/.httpie}}<br />
| [https://github.com/jakubroztocil/httpie/commit/5af0874ed302e9ef79cec97836529ccf353e53f7 5af0874]<br />
| [https://github.com/jakubroztocil/httpie/issues/145]<br />
|<br />
|-<br />
| [[i3]]<br />
| {{ic|~/.i3}}<br />
| [http://code.stapelberg.de/git/i3/commit/?id=7c130fb 7c130fb]<br />
|<br />
|<br />
|-<br />
| {{Pkg|i3status}}<br />
| {{ic|~/.i3status.conf}}<br />
| [http://code.stapelberg.de/git/i3status/commit/?id=c3f7fc4 c3f7fc4]<br />
|<br />
|<br />
|-<br />
| {{Pkg|imagemagick}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[Inkscape]]<br />
| {{ic|~/.inkscape}}<br />
| [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Preferences 0.47]<br />
| [https://bugs.launchpad.net/inkscape/+bug/199720]<br />
|<br />
|-<br />
| [https://iwd.wiki.kernel.org/ iwd] / iwctl<br />
| {{ic|~/.iwctl_history}}<br />
| [https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=d3e00d7f d3e00d7f]<br />
|<br />
|<br />
|-<br />
| {{Pkg|intellij-idea-community-edition}}<br />
| {{ic|~/.IntelliJIdea*}}<br />
| [https://confluence.jetbrains.com/display/IDEADEV/IntelliJ%2BIDEA%2B2020.1%2B%28201.6668.121%2Bbuild%29%2BRelease%2BNotes 2020.1]<br />
| [https://youtrack.jetbrains.com/issue/IDEA-22407]<br />
|<br />
|-<br />
| {{Pkg|josm}}<br />
| {{ic|~/.josm}}<br />
| [https://josm.openstreetmap.de/changeset/11162/josm 11162]<br />
| [https://josm.openstreetmap.de/ticket/6664]<br />
|<br />
|-<br />
| [[Kakoune]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| latexmk (in {{Pkg|texlive-core}})<br />
| {{ic|~/.latexmkrc}}<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|lftp}}<br />
| {{ic|~/.lftp}}<br />
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]<br />
| [https://www.mail-archive.com/lftp@uniyar.ac.ru/msg04301.html]<br />
|<br />
|-<br />
| {{AUR|lgogdownloader}}<br />
| {{ic|~/.gogdownloader}}<br />
| [https://github.com/Sude-/lgogdownloader/commit/d430af6 d430af6]<br />
| [https://github.com/Sude-/lgogdownloader/issues/4]<br />
|<br />
|-<br />
| [[LibreOffice]]<br />
|<br />
|<br />
[https://cgit.freedesktop.org/libreoffice/ure/commit/?id=a6f56f7 a6f56f7]<br />
[https://cgit.freedesktop.org/libreoffice/bootstrap/commit/?id=25bd2ee 25bd2ee]<br />
| [https://bugs.documentfoundation.org/show_bug.cgi?id=32263]<br />
|<br />
|-<br />
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]<br />
| {{ic|~/.pki}}<br />
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.42_release_notes 3.42]<br />
| [https://bugzilla.mozilla.org/show_bug.cgi?id=818686]<br />
|<br />
|-<br />
| [[Streamlink]]<br />
| {{ic|~/.livestreamerrc}}<br />
| [https://github.com/chrippa/livestreamer/commit/ea80591 ea80591]<br />
| [https://github.com/chrippa/livestreamer/pull/106]<br />
|<br />
|-<br />
| [[llpp]]<br />
|<br />
| [http://repo.or.cz/w/llpp.git/commit/3ab86f0 3ab86f0]<br />
|<br />
| Currently ''llpp'' places the configuration directly under {{ic|XDG_CONFIG_HOME}} instead of creating a directory.<br />
|-<br />
| [[mc]]<br />
| {{ic|~/.mc}}<br />
|<br />
[https://github.com/MidnightCommander/mc/commit/1b99570 1b99570]<br />
[https://github.com/MidnightCommander/mc/commit/0b71156 0b71156]<br />
[https://github.com/MidnightCommander/mc/commit/ce401d7 ce401d7]<br />
| [https://www.midnight-commander.org/ticket/1851]<br />
|<br />
|-<br />
| [[Mercurial]]<br />
| {{ic|~/.hgrc}}<br />
|<br />
[https://www.mercurial-scm.org/repo/hg/rev/3540200 3540200]<br />
[https://www.mercurial-scm.org/wiki/Release4.2 4.2]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/hg/hgrc}}.<br />
|-<br />
| [[msmtp]]<br />
| {{ic|~/.msmtprc}}<br />
|<br />
[https://github.com/marlam/msmtp-mirror/commit/af2f409 af2f409]<br />
v1.6.7+<br />
|<br />
| {{ic| XDG_CONFIG_HOME/msmtp/config}}.<br />
|-<br />
| {{Pkg|mesa}}<br />
|<br />
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b 87ab26b]<br />
|<br />
| {{ic|XDG_CACHE_HOME/mesa}}<br />
|-<br />
| {{Pkg|milkytracker}}<br />
| {{ic|~/.milkytracker_config}}<br />
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c5 eb487c5]<br />
| [https://github.com/Deltafire/MilkyTracker/issues/12]<br />
|<br />
|-<br />
| [[mpd]]<br />
| {{ic|~/.mpdconf}}<br />
| [https://github.com/MusicPlayerDaemon/MPD/commit/87b7328 87b7328]<br />
|<br />
|<br />
|-<br />
| [[mpv]]<br />
| {{ic|~/.mpv}}<br />
| [https://github.com/mpv-player/mpv/commit/cb250d4 cb250d4]<br />
| [https://github.com/mpv-player/mpv/pull/864]<br />
|<br />
|-<br />
| [[mutt]]<br />
| {{ic|~/.mutt}}<br />
| [https://gitlab.com/muttmua/mutt/commit/b17cd67 b17cd67]<br />
| [https://gitlab.com/muttmua/trac-tickets/raw/master/tickets/closed/3207-Conform_to_XDG_Base_Directory_Specification.txt]<br />
|<br />
|-<br />
| {{Pkg|mypaint}}<br />
| {{ic|~/.mypaint}}<br />
| [https://github.com/mypaint/mypaint/commit/cf723b7 cf723b7]<br />
|<br />
|<br />
|-<br />
| [[nano]]<br />
|<br />
{{ic|~/.nano/<br><br />
~/.nanorc}}<br />
| [https://git.savannah.gnu.org/cgit/nano.git/commit/?id=c16e79b c16e79b]<br />
| [https://savannah.gnu.org/patch/?8523]<br />
|<br />
|-<br />
| [[ncmpcpp]]<br />
| {{ic|~/.ncmpcpp}}<br />
|<br />
[https://github.com/arybczak/ncmpcpp/commit/38d9f81 38d9f81]<br />
[https://github.com/arybczak/ncmpcpp/commit/27cd86e 27cd86e]<br />
|<br />
[https://github.com/arybczak/ncmpcpp/issues/79]<br />
[https://github.com/arybczak/ncmpcpp/issues/110]<br />
| {{ic|ncmpcpp_directory}} should be set to avoid an {{ic|error.log}} file in {{ic|~/.ncmpcpp}}.<br />
|-<br />
| [[Neovim]]<br />
|<br />
{{ic|~/.nvim<br><br />
~/.nvimlog<br><br />
~/.nviminfo}}<br />
| [https://github.com/neovim/neovim/commit/1ca5646 1ca5646]<br />
|<br />
[https://github.com/neovim/neovim/issues/78]<br />
[https://github.com/neovim/neovim/pull/3198]<br />
|<br />
|-<br />
| [[newsbeuter]]<br />
| {{ic|~/.newsbeuter}}<br />
| [https://github.com/akrennmair/newsbeuter/commit/3c57824 3c57824]<br />
| [https://github.com/akrennmair/newsbeuter/pull/39]<br />
| It is required to create both directories [http://newsbeuter.org/doc/newsbeuter.html#_xdg_base_directory_support]:<br />
<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter}}<br />
|-<br />
| [https://github.com/nodejs/node-gyp node-gyp]<br />
| {{ic|~/.node-gyp}}<br />
| [https://github.com/nodejs/node-gyp/commit/2b5ce52a 2b5ce52a]<br />
| [https://github.com/nodejs/node-gyp/pull/1570]<br />
| Only available on master as of 2018-12-04.<br />
|-<br />
| {{AUR|np2kai-git}}<br />
|<br />
{{ic|~/.config/np2kai<br><br />
~/.config/xnp2kai}}<br />
| [https://github.com/AZO234/NP2kai/commit/56a1cc2 56a1cc2]<br />
| [https://github.com/AZO234/NP2kai/pull/50]<br />
|<br />
|-<br />
| {{AUR|nteract-bin}}<br />
|<br />
| [https://github.com/nteract/nteract/commit/4593e72 4593e72]<br />
| [https://github.com/nteract/nteract/issues/180] [https://github.com/nteract/nteract/pull/3870]<br />
| [https://github.com/nteract/nteract/issues/4517 does not recognize workarounds for ipython/jupyter]<br />
|-<br />
| [[OfflineIMAP]]<br />
| {{ic|~/.offlineimaprc}}<br />
| [https://github.com/OfflineIMAP/offlineimap/commit/5150de5 5150de5]<br />
| [https://github.com/OfflineIMAP/offlineimap/issues/32]<br />
|<br />
|-<br />
| {{AUR|opentyrian}}<br />
| {{ic|~/.opentyrian}}<br />
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]<br />
| [https://web.archive.org/web/20140815181350/http://code.google.com/p/opentyrian/issues/detail?id=125]<br />
|<br />
|-<br />
| {{Pkg|pandoc}}<br />
| {{ic|~/.pandoc/}}<br />
| [https://github.com/jgm/pandoc/commit/0bed0ab5a308f5e72a01fa9bee76488556288862 0bed0ab]<br />
| [https://github.com/jgm/pandoc/issues/3582]<br />
|<br />
|-<br />
| {{Pkg|pcsx2}}<br />
| {{ic|~/.pcsx2}}<br />
|<br />
[https://github.com/PCSX2/pcsx2/commit/87f1e8f 87f1e8f]<br />
[https://github.com/PCSX2/pcsx2/commit/a9020c6 a9020c6]<br />
[https://github.com/PCSX2/pcsx2/commit/3b22f0f 3b22f0f]<br />
[https://github.com/PCSX2/pcsx2/commit/0a012ae 0a012ae]<br />
| [https://github.com/PCSX2/pcsx2/issues/352] [https://github.com/PCSX2/pcsx2/issues/381]<br />
|<br />
|-<br />
| [http://pryrepl.org/ Pry]<br />
| {{ic|~/.pryrc<br>~/.pry_history}}<br />
|<br />
[https://github.com/pry/pry/commit/a0be0cc7b2070edff61c0c7f10fa37fce9b730bd a0be0cc7]<br />
[https://github.com/pry/pry/commit/15e1fc929ed84c161abc5afc9be73488a41df397 15e1fc92]<br />
[https://github.com/pry/pry/commit/e9d1be0e17b294318dbb2f70f74a50486cfa044c e9d1be0e]<br />
| [https://github.com/pry/pry/issues/1316]<br />
|<br />
|-<br />
| {{Pkg|python-pip}}<br />
| {{ic|~/.pip}}<br />
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]<br />
| [https://github.com/pypa/pip/issues/1733]<br />
|<br />
|-<br />
| {{AUR|powershell}}<br />
|<br />
| [https://docs.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-core-60#filesystem 6.0]<br />
|<br />
|<br />
|-<br />
| {{Pkg|ppsspp}}<br />
| {{ic|~/.ppsspp}}<br />
| [https://github.com/hrydgard/ppsspp/commit/132fe47 132fe47]<br />
| [https://github.com/hrydgard/ppsspp/issues/4623]<br />
|<br />
|-<br />
| {{Pkg|procps-ng}}<br />
| {{ic|~/.toprc}}<br />
| [https://gitlab.com/procps-ng/procps/commit/af53e17 af53e17]<br />
|<br />
[https://gitlab.com/procps-ng/procps/merge_requests/38]<br />
[https://bugzilla.redhat.com/show_bug.cgi?id=1155265]<br />
|<br />
|-<br />
| {{AUR|orbment-git}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[pacman]]<br />
| {{ic|~/.makepkg.conf}}<br />
| [https://projects.archlinux.org/pacman.git/commit/?id=80eca94 80eca94]<br />
| [https://mailman.archlinux.org/pipermail/pacman-dev/2014-July/019178.html]<br />
|<br />
|-<br />
| {{AUR|panda3d}}<br />
| {{ic|~/.panda3d}}<br />
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]<br />
|<br />
|<br />
|-<br />
| {{AUR|poezio}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[PulseAudio]]<br />
|<br />
{{ic|~/.pulse<br><br />
~/.pulse-cookie}}<br />
|<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=59a8618 59a8618]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae830 87ae830]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a 9ab510a]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bc 4c195bc]<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=845607]<br />
|<br />
|-<br />
| {{AUR|pyroom}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|quodlibet}}<br />
| {{ic|~/.quodlibet}}<br />
| 3.10.0<br />
| [https://github.com/quodlibet/quodlibet/issues/138]<br />
|<br />
|-<br />
| [[qutebrowser]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[qtile]]<br />
|<br />
|<br />
[https://github.com/qtile/qtile/commit/fd8686e fd8686e]<br />
[https://github.com/qtile/qtile/commit/66d704b 66d704b]<br />
[https://github.com/qtile/qtile/commit/51cff01 51cff01]<br />
| [https://github.com/qtile/qtile/pull/835]<br />
| Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.<br />
|-<br />
| {{Pkg|rclone}}<br />
| {{ic|~/.rclone.conf}}<br />
| [https://github.com/ncw/rclone/commit/9d36258 9d36258]<br />
| [https://github.com/ncw/rclone/issues/868]<br />
|<br />
|-<br />
| {{Pkg|retroarch}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{AUR|rr}}<br />
| {{ic|~/.rr}}<br />
| [https://github.com/mozilla/rr/commit/02e7d41 02e7d41]<br />
| [https://github.com/mozilla/rr/issues/1455]<br />
|<br />
|-<br />
| [https://rspec.info RSpec]<br />
| {{ic|~/.rspec}}<br />
| [https://github.com/rspec/rspec-core/commit/5e395e2016f1da19475e6db2817eb26dae828c4c 5e395e2]<br />
| [https://github.com/rspec/rspec-core/issues/1773]<br />
|<br />
|-<br />
| [[rTorrent]]<br />
| {{ic|~/.rtorrent.rc}}<br />
| [https://github.com/rakshasa/rtorrent/commit/6a8d332 6a8d332]<br />
|<br />
|<br />
|-<br />
| [https://www.rubocop.org RuboCop]<br />
| {{ic|~/.rubocop.yml}}<br />
| [https://github.com/rubocop-hq/rubocop/commit/6fe5956c177ca369cfaa70bdf748b70020a56bf4 6fe5956]<br />
| [https://github.com/rubocop-hq/rubocop/issues/6662]<br />
|<br />
|-<br />
| {{Pkg|sdcv}}<br />
|<br />
{{ic|~/.stardict/<br><br />
~/.sdcv_history}}<br />
| [https://github.com/Dushistov/sdcv/commit/958ec35 958ec35]<br />
| [https://github.com/Dushistov/sdcv/issues/51]<br />
|<br />
|-<br />
| {{AUR|skypeforlinux-stable-bin}}<br />
| {{ic|~/.Skype}}<br />
| 8.0<br />
|<br />
|<br />
|-<br />
| {{Pkg|snes9x}}<br />
| {{ic|~/.snes9x}}<br />
| [https://github.com/snes9xgit/snes9x/commit/93b5f11 93b5f11]<br />
| [https://github.com/snes9xgit/snes9x/issues/194]<br />
| By default, the configuration file is left blank with intention that the user will fill it at their will (through the gui or manually).<br />
|-<br />
| [[spectrwm]]<br />
| {{ic|~/.spectrwm}}<br />
| [https://github.com/conformal/spectrwm/commit/a30bbb a30bbb]<br />
| [https://github.com/conformal/spectrwm/pull/153]<br />
|<br />
|-<br />
| {{AUR|sublime-text-dev}}<br />
|<br />
|<br />
|<br />
| Cache is placed in {{ic|$XDG_CONFIG_HOME/sublime-text-3/Cache}} instead of expected {{ic|$XDG_CACHE_HOME/sublime-text-3}}.<br />
|-<br />
| [[surfraw]]<br />
|<br />
{{ic|~/.surfraw.conf<br><br />
~/.surfraw.bookmarks}}<br />
|<br />
[https://gitlab.com/surfraw/Surfraw/commit/3e4591d 3e4591d]<br />
[https://gitlab.com/surfraw/Surfraw/commit/bd8c427 bd8c427]<br />
[https://gitlab.com/surfraw/Surfraw/commit/f57fc71 f57fc71]<br />
|<br />
|<br />
|-<br />
| [[sway]]<br />
| {{ic|~/.sway/config}}<br />
| [https://github.com/SirCmpwn/sway/commit/614393c 614393c]<br />
| [https://github.com/SirCmpwn/sway/issues/5]<br />
|<br />
|-<br />
| [[systemd]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|teeworlds}}<br />
| {{ic|~/.teeworlds}}<br />
| [https://github.com/teeworlds/teeworlds/commit/d2e39d2f50684151490da446156622e69dd84a48]<br />
|<br />
|<br />
|-<br />
| [[termite]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|tig}}<br />
| {{ic|~/.tigrc}}, {{ic|~/.tig_history}}<br />
| [https://github.com/jonas/tig/blob/master/NEWS.adoc#tig-22 2.2]<br />
| [https://github.com/jonas/tig/issues/513]<br />
| {{ic|~/.local/share/tig}} directory must exist, writes to {{ic|~/.tig_history}} otherwise.<br />
|-<br />
| [[tmux]]<br />
| {{ic|~/.tmux.conf}}<br />
| [https://raw.githubusercontent.com/tmux/tmux/3.1/CHANGES 3.1]<br />
| [https://github.com/tmux/tmux/issues/142]<br />
| 3.1 introduced {{ic|~/.config/tmux/tmux.conf}} and in [https://github.com/tmux/tmux/blob/a5f99e14c6f264e568b860692b89d11f5298a3f2/CHANGES#L145 3.2] {{ic|$XDG_CONFIG_HOME/tmux/tmux.conf}} was added<br />
|-<br />
|-<br />
| [[tmuxp]]<br />
| {{ic|~/.tmuxp}}<br />
| [https://tmuxp.git-pull.com/history.html#tmuxp-1-5-0-2018-10-02 1.5.0]<br />
| [https://github.com/tmux-python/tmuxp/pull/404]<br />
| Fixed in [https://tmuxp.git-pull.com/history.html#tmuxp-1-5-2-2019-06-02 1.5.2]<br />
|-<br />
| {{AUR|tmuxinator}}<br />
| {{ic|~/.tmuxinator}}<br />
| [https://github.com/tmuxinator/tmuxinator/pull/511/commits/2636923 2636923]<br />
| [https://github.com/tmuxinator/tmuxinator/pull/511]<br />
|<br />
|-<br />
| [[Transmission]]<br />
| {{ic|~/.transmission}}<br />
| [https://github.com/transmission/transmission/commit/b71a298 b71a298]<br />
|<br />
|<br />
|-<br />
| {{Pkg|util-linux}}<br />
|<br />
| [https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=570b321 570b321]<br />
|<br />
|<br />
|-<br />
| [[Uzbl]]<br />
|<br />
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]<br />
| [https://github.com/uzbl/uzbl/pull/150]<br />
|<br />
|-<br />
| {{Pkg|vimb}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[VirtualBox]]<br />
| {{ic|~/.VirtualBox}}<br />
| [https://www.virtualbox.org/ticket/5099?action=diff&version=7 4.3]<br />
| [https://www.virtualbox.org/ticket/5099]<br />
|<br />
|-<br />
| {{Pkg|vis}}<br />
| {{ic|~/.vis}}<br />
|<br />
[https://github.com/martanne/vis/commit/68a25c7 68a25c7]<br />
[https://github.com/martanne/vis/commit/d138908 d138908]<br />
| [https://github.com/martanne/vis/pull/303]<br />
|<br />
|-<br />
| [[VLC]]<br />
| {{ic|~/.vlcrc}}<br />
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1 16f32e1]<br />
| [https://trac.videolan.org/vlc/ticket/1267]<br />
|<br />
|-<br />
| {{Pkg|warsow}}<br />
| {{ic|~/.warsow-2.x}}<br />
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]<br />
| [https://github.com/Qfusion/qfusion/issues/298]<br />
|<br />
|-<br />
| [[Wireshark]]<br />
| {{ic|~/.wireshark}}<br />
| [https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b0b53fa b0b53fa]<br />
|<br />
|<br />
|-<br />
| {{AUR|xsettingsd-git}}<br />
| {{ic|~/.xsettingsd}}<br />
| [https://github.com/derat/xsettingsd/commit/b4999f5 b4999f5]<br />
|<br />
|<br />
|-<br />
| [[xmonad]]<br />
| {{ic|~/.xmonad}}<br />
| [https://github.com/xmonad/xmonad/commit/40fc10b 40fc10b]<br />
|<br />
[https://github.com/xmonad/xmonad/issues/61]<br />
[https://code.google.com/p/xmonad/issues/detail?id=484]<br />
| Alternatively the environments {{ic|XMONAD_CONFIG_HOME}}, {{ic|XMONAD_DATA_HOME}}, and {{ic|XMONAD_CACHE_HOME}} are also available.<br />
|-<br />
| {{Pkg|xsel}}<br />
| {{ic|~/.xsel.log}}<br />
| [https://github.com/kfish/xsel/commit/ee7b481 ee7b481]<br />
| [https://github.com/kfish/xsel/issues/10]<br />
|<br />
|}<br />
<br />
=== Partial ===<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| {{Pkg|abook}}<br />
| {{ic|~/.abook}}<br />
|<br />
|<br />
| {{ic|1=$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook}}<br />
|-<br />
| {{Pkg|ack}}<br />
| {{ic|~/.ackrc}}<br />
|<br />
| [https://github.com/beyondgrep/ack2/issues/516]<br />
| {{ic|1=$ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"}}<br />
|-<br />
| [[Anki]]<br />
|<br />
{{ic|~/Anki<br><br />
~/Documents/Anki}}<br />
|<br />
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]<br />
| {{ic|1=$ anki -b "$XDG_DATA_HOME"/Anki}}<br />
|-<br />
| [[aspell]]<br />
| {{ic|~/.aspell.conf}}<br />
|<br />
|<br />
| {{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"}}<br />
|-<br />
| [[Atom]]<br />
| {{ic|~/.atom}}<br />
|<br />
| [https://github.com/atom/atom/issues/8281]<br />
| {{ic|1=$ export ATOM_HOME="$XDG_DATA_HOME"/atom}}<br />
|-<br />
| {{Pkg|aws-cli}}<br />
| {{ic|~/.aws}}<br />
| [https://github.com/aws/aws-cli/commit/fc5961ea2cc0b5976ac9f777e20e4236fd7540f5 1.7.45]<br />
| [https://github.com/aws/aws-cli/issues/2433]<br />
|<br />
{{ic|1=$ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials<br><br />
$ export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config}}<br />
|-<br />
| {{Pkg|bash-completion}}<br />
| {{ic|~/.bash_completion}}<br />
|<br />
|<br />
| {{ic|1=$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion}}<br />
|-<br />
| [[bazaar]]<br />
|<br />
{{ic|~/.bazaar<br><br />
~/.bzr.log}}<br />
| [https://bugs.launchpad.net/bzr/+bug/195397/comments/15 2.3.0]<br />
| [https://bugs.launchpad.net/bzr/+bug/195397]<br />
| Discussion in upstream bug states that bazaar will use {{ic|~/.config/bazaar}} if it exists. The logfile {{ic|~/.bzr.log}} might still be written.<br />
|-<br />
| {{Aur|buchhaltung-git}}<br />
|<br />
{{ic|~/.buchhaltung}}<br />
|<br />
| [https://github.com/johannesgerer/buchhaltung/issues/44]<br />
| {{ic|1=$ export BUCHHALTUNG="$XDG_CONFIG_HOME"/buchhaltung}}<br />
|-<br />
| [[Ruby#Bundler]]<br />
| {{ic|~/.bundle}}<br />
|<br />
| [https://github.com/bundler/bundler/pull/6024] [https://github.com/bundler/bundler/issues/4333]<br />
| {{ic|1=$ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle}}<br />
|-<br />
| [[Rust#Cargo]]<br />
| {{ic|~/.cargo}}<br />
|<br />
| [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]<br />
| {{ic|1=$ export CARGO_HOME="$XDG_DATA_HOME"/cargo}}<br />
|-<br />
| [[ccache]]<br />
| {{ic|~/.ccache}}<br />
|<br />
|<br />
| {{ic|1=$ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config}}<br><br />
{{ic|1=$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache}}<br />
|-<br />
| {{AUR|chez-scheme}}<br />
| {{ic|~/.chezscheme_history}}<br />
|<br />
|<br />
| {{ic|1=$ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history}}<br />
|-<br />
| [[Chromium]]<br />
| {{ic|~/.chromium<br><br />
~/.pki}}<br />
| [https://src.chromium.org/viewvc/chrome?revision=23057&view=revision 23057]<br />
|<br />
[https://groups.google.com/forum/#!topic/chromium-dev/QekVQxF3nho]<br />
[https://code.google.com/p/chromium/issues/detail?id=16976]<br />
[https://bugs.chromium.org/p/chromium/issues/detail?id=1038587]<br />
|<br />
|-<br />
| [[conky]]<br />
| {{ic|~/.conkyrc}}<br />
| [https://github.com/brndnmtthws/conky/commit/00481ee9a97025e8e2acd7303d080af1948f7980 00481ee]<br />
| [https://github.com/brndnmtthws/conky/issues/144]<br />
| {{ic|1=$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc}}<br />
|-<br />
| {{Pkg|claws-mail}}<br />
| {{ic|~/.claws-mail}}<br />
|<br />
| [https://lists.claws-mail.org/pipermail/users/2013-April/006087.html]<br />
| {{ic|1=$ claws-mail --alternate-config-dir "$XDG_DATA_HOME"/claws-mail}}<br />
|-<br />
| [[coreutils]]<br />
| {{ic|~/.dircolors}}<br />
|<br />
|<br />
| {{ic|1=$ eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)}}<br />
|-<br />
| [http://www.dungeoncrawl.org/ crawl]<br />
| {{ic|~/.crawl}}<br />
|<br />
|<br />
| The trailing slash is required:<br />
<br />
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}<br />
|-<br />
| {{Pkg|clusterssh}}<br />
| {{ic|~/.clusterssh/}}<br />
|<br />
|<br />
| {{ic|1=$ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'" }}<br />
{{hc|$XDG_CONFIG_HOME/clusterssh/config|2=<br />
extra_cluster_file=$HOME/.config/clusterssh/clusters<br />
extra_tag_file=$HOME/.config/clusterssh/tags<br />
}}<br />
Despite this, clusterssh will still create {{ic|~/.clusterssh/}}.<br />
|-<br />
| [[CUDA]]<br />
| {{ic|~/.nv}}<br />
|<br />
|<br />
| {{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}<br />
|-<br />
| [[dict]]<br />
| {{ic|~/.dictrc}}<br />
|<br />
|<br />
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}<br />
|-<br />
| [[Docker]]<br />
| {{ic|~/.docker}}<br />
|<br />
|<br />
| {{ic|1=$ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker}}<br />
|-<br />
| {{Pkg|docker-machine}}<br />
| {{ic|~/.docker/machine}}<br />
|<br />
|<br />
| {{ic|1=$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine}}<br />
|-<br />
| [[DOSBox]]<br />
| {{ic|~/.dosbox/dosbox-0.74-2.conf}}<br />
|<br />
| [https://www.vogons.org/viewtopic.php?t=29599]<br />
| {{ic|1=$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf}}<br />
|-<br />
| [https://electrum.org Electrum Bitcoin Wallet]<br />
| {{ic|~/.electrum}}<br />
| [https://github.com/spesmilo/electrum/commit/c121230 c121230]<br />
|<br />
| {{ic|1=$ export ELECTRUMDIR="$XDG_DATA_HOME/electrum"}}<br />
|-<br />
| [[ELinks]]<br />
| {{ic|~/.elinks}}<br />
|<br />
|<br />
| {{ic|1=$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks}}<br />
|-<br />
| {{Pkg|elixir}}<br />
| {{ic|~/.mix}}<br />
| [https://github.com/elixir-lang/elixir/commit/afaf889 afaf889]<br />
| [https://github.com/elixir-lang/elixir/issues/8818] [https://github.com/elixir-lang/elixir/pull/9937]<br />
| Elixir do not fully conform to XDG specs, it will use XDG only if the environment variables are present, otherwise it will by default use legacy path.<br />
|-<br />
| {{Pkg|emscripten}}<br />
|<br />
{{ic|~/.emscripten<br><br />
~/.emscripten_sanity<br><br />
~/.emscripten_ports<br><br />
~/.emscripten_cache__last_clear}}<br />
|<br />
| [https://github.com/kripken/emscripten/issues/3624]<br />
|<br />
{{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config<br><br />
$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache<br><br />
$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache<br><br />
$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache}}<br />
|-<br />
| {{AUR|freecad}}<br />
| {{ic|~/.FreeCAD}}<br />
|<br />
| [https://www.freecadweb.org/tracker/view.php?id=2956]<br />
| {{ic|1=$ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg}}<br />
<br />
Despite these options, {{AUR|freecad}} will still create the file {{ic|.FreeCAD/cookie}} as the web module has it [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Web/Gui/CookieJar.cpp#L55 hard coded]<br />
|-<br />
| [[GDB]]<br />
| {{ic|~/.gdbinit}}<br />
|<br />
|<br />
| {{ic|1=$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init}}<br />
|-<br />
| {{AUR|get_iplayer}}<br />
| {{ic|~/.get_iplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}<br />
|-<br />
| [[getmail]]<br />
| {{ic|~/.getmail/getmailrc}}<br />
|<br />
|<br />
| {{ic|1=$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"}}<br />
|-<br />
| {{AUR|gliv}}<br />
| {{ic|~/.glivrc}}<br />
|<br />
|<br />
| {{ic|1=$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc}}<br />
|-<br />
| [[GNURadio]]<br />
| {{ic|~/.gnuradio}}<br />
| <br />
| [https://github.com/gnuradio/gnuradio/issues/3631]<br />
|<br />
|-<br />
| [[GnuPG]]<br />
| {{ic|~/.gnupg}}<br />
|<br />
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]<br />
|<br />
{{ic|1=$ export GNUPGHOME="$XDG_DATA_HOME"/gnupg<br><br />
$ gpg2 --homedir "$XDG_DATA_HOME"/gnupg}}<br><br />
Note that this currently does not work out-of-the-box using systemd user units and socket-based activation, since<br />
the socket directory changes based on the hash of {{ic|$GNUPGHOME}}. You can get the new socket directory using {{ic|gpgconf --dry-run --create-socketdir}},<br />
and have to modify the systemd user units to listen on the correct sockets accordingly.<br />
|-<br />
| [[Go]]<br />
| {{ic|~/go}}<br />
| [https://github.com/golang/go/commit/ca8a055f5cc7c1dfa0eb542c60071c7a24350f76]<br />
|<br />
|<br />
{{ic|1=$ export GOPATH="$XDG_DATA_HOME"/go}}<br />
|-<br />
| [[Google Earth]]<br />
| {{ic|~/.googleearth}}<br />
|<br />
|<br />
| Some paths can be changed with the {{ic|KMLPath}} and {{ic|CachePath}} options in {{ic|~/.config/Google/GoogleEarthPlus.conf}}<br />
|-<br />
| {{Pkg|gopass}}<br />
| {{ic|~/.password-store}}<br />
|<br />
|<br />
| Override settings in {{ic|~/.config/gopass/config.yml}}:<br />
{{hc|~/.config/gopass/config.yml|<br />
root:<br />
path: gpgcli-gitcli-fs+file:///home/<userid>/.config/password-store<br />
}}<br />
|-<br />
| [https://sourceforge.net/projects/gqclient GQ LDAP client]<br />
|<br />
{{ic|~/.gq<br><br />
~/.gq-state}}<br />
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]<br />
|<br />
|<br />
{{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc<br><br />
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state<br><br />
$ mkdir -p "$(dirname "$GQSTATE")"}}<br />
|-<br />
| [[Gradle]]<br />
| {{ic|~/.gradle}}<br />
|<br />
| [https://discuss.gradle.org/t/be-a-nice-freedesktop-citizen-move-the-gradle-to-the-appropriate-location-in-linux/2199]<br />
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}<br />
|-<br />
| [[GTK]] 1<br />
| {{ic|~/.gtkrc}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc}}<br />
|-<br />
| [[GTK]] 2<br />
| {{ic|~/.gtkrc-2.0}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc}}<br />
|-<br />
| {{Pkg|hledger}}<br />
| {{ic|~/.hledger.journal}}<br />
|<br />
| [https://github.com/simonmichael/hledger/issues/1081]<br />
| {{ic|1=$ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal}}<br />
|-<br />
| {{AUR|imapfilter}}<br />
| {{ic|~/.imapfilter}}<br />
|<br />
|<br />
| {{ic|1=$ export IMAPFILTER_HOME="$XDG_CONFIG_HOME/imapfilter"}}<br />
|-<br />
| [http://ipython.org ipython]/[[jupyter]]<br />
| {{ic|~/.ipython}}<br />
|<br />
| [https://github.com/ipython/ipython/pull/4457 won't fix],[https://github.com/ipython/ipython/issues/12431 won't fix]<br />
|<br />
{{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter<br><br />
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}<br />
|-<br />
| [https://ruby-doc.org/stdlib/libdoc/irb/rdoc/IRB.html irb]<br />
| {{ic|~/.irbrc}}<br />
|<br />
|<br />
| {{hc|1=~/.profile|2=$ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc}}<br />
{{hc|1="$XDG_CONFIG_HOME"/irb/irbrc|2=IRB.conf[:SAVE_HISTORY] {{!}}{{!}}= 1000<br />
IRB.conf[:HISTORY_FILE] {{!}}{{!}}= File.join(ENV["XDG_DATA_HOME"], "irb", "history")}}<br />
|-<br />
| [[irssi]]<br />
| {{ic|~/.irssi}}<br />
|<br />
| [https://github.com/irssi/irssi/pull/511]<br />
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi}}<br />
|-<br />
| [[isync]]<br />
| {{ic|~/.mbsyncrc}}<br />
|<br />
|<br />
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}<br />
|-<br />
| [[Java#OpenJDK]]<br />
| {{ic|~/.java/.userPrefs}}<br />
|<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]<br />
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}<br />
|-<br />
| [[KDE]]<br />
| {{ic|~/.kde}}<br />
|<br />
| [https://userbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy#KDEHOME]<br />
| {{ic|1=$ export KDEHOME="$XDG_CONFIG_HOME"/kde}}<br />
|-<br />
| [[ledger]]<br />
| {{ic|~/.ledgerrc}}, {{ic|~/.pricedb}}<br />
|<br />
| [https://github.com/ledger/ledger/issues/1820]<br />
| {{ic|1=$ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc}}<br />
|-<br />
| [[Core utilities|less]]<br />
| {{ic|~/.lesshst}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less<br><br />
$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey<br><br />
$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}<br />
<br />
{{ic|1=$ export LESSHISTFILE=-}} can be used to disable this feature.<br />
|-<br />
| {{Pkg|libdvdcss}}<br />
| {{ic|~/.dvdcss}}<br />
|<br />
| [https://mailman.videolan.org/pipermail/libdvdcss-devel/2014-August/001022.html]<br />
| {{ic|1=$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss}}<br />
|-<br />
| {{Pkg|libice}}<br />
| {{ic|~/.ICEauthority}}<br />
|<br />
| [https://gitlab.freedesktop.org/xorg/lib/libice/issues/2]<br />
| {{ic|1=$ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority}}<br />
Make sure {{ic|XDG_CACHE_HOME}} is set beforehand to directory user running [[Xorg]] has write access to.<br />
<br />
'''Do not''' use {{ic|XDG_RUNTIME_DIR}} as it is available '''after''' login. Display managers that launch [[Xorg]] (like [[GDM]]) will repeatedly fail otherwise.<br />
|-<br />
| [[Xorg|libx11]]<br />
|<br />
{{ic|~/.XCompose<br><br />
~/.compose-cache}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose<br><br />
$ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose}}<br />
|-<br />
| {{Pkg|ltrace}}<br />
| {{ic|~/.ltrace.conf}}<br />
|<br />
|<br />
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}<br />
|-<br />
| {{Pkg|maven}}<br />
| {{ic|~/.m2}}<br />
|<br />
| [https://issues.apache.org/jira/browse/MNG-6603]<br />
| {{ic|1=$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml}} and set {{ic|<localRepository>}} as appropriate in [http://maven.apache.org/settings.html#Simple_Values settings.xml]<br />
|-<br />
| [[Mathematica]]<br />
| {{ic|~/.Mathematica}}<br />
|<br />
|<br />
| {{ic|1=$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica}}<br />
|-<br />
| {{Pkg|maxima}}<br />
| {{ic|~/.maxima}}<br />
|<br />
|<br />
| {{ic|1=$ export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima}}<br />
|-<br />
| {{Pkg|mednafen}}<br />
| {{ic|~/.mednafen}}<br />
|<br />
|<br />
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}<br />
|-<br />
| {{Pkg|mitmproxy}}<br />
| {{ic|~/.mitmproxy}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ alias mitmproxy="mitmproxy --set confdir=$XDG_CONFIG_HOME/mitmproxy"<br><br />
$ alias mitmweb="mitmweb --set confdir=$XDG_CONFIG_HOME/mitmproxy"}}<br />
|-<br />
| [[MOC]]<br />
| {{ic|~/.moc}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc<br><br />
$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}<br />
|-<br />
| {{Pkg|monero}}<br />
| {{ic|~/.bitmonero}}<br />
|<br />
|<br />
| {{ic|1=$ monerod --data-dir "$XDG_DATA_HOME"/bitmonero}}<br />
|-<br />
| {{Pkg|most}}<br />
| {{ic|~/.mostrc}}<br />
|<br />
|<br />
| {{ic|1=$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc}}<br />
|-<br />
| [[MPlayer]]<br />
| {{ic|~/.mplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer}}<br />
|-<br />
| [[MySQL]]<br />
| {{ic|~/.mysql_history}}<br />
|<br />
|<br />
| {{ic|1=$ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history}}<br />
|-<br />
| {{Pkg|ncurses}}<br />
| {{ic|~/.terminfo}}<br />
|<br />
|<br />
| Precludes system path searching:<br />
<br />
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo<br><br />
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}<br />
|-<br />
| {{Pkg|ncmpc}}<br />
| {{ic|~/.ncmpc}}<br />
|<br />
|<br />
| {{ic|ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config}}<br />
|-<br />
| [[Netbeans]]<br />
| {{ic|~/.netbeans}}<br />
|<br />
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]<br />
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}<br />
|-<br />
| [[Node.js]]<br />
| {{ic|~/.node_repl_history}}<br />
|<br />
|<br />
| {{ic|1=$ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history}} [https://nodejs.org/api/repl.html#repl_environment_variable_options]<br />
|-<br />
| [[notmuch]]<br />
| {{ic|~/.notmuch-config}}<br />
|<br />
| [http://notmuchmail.org/pipermail/notmuch/2011/007007.html]<br />
|<br />
{{ic|1=$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc<br><br />
$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}<br />
|-<br />
| {{Pkg|npm}}<br />
|<br />
{{ic|~/.npm<br><br />
~/.npmrc}}<br />
|<br />
| [https://github.com/npm/cli/issues/654]<br />
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}<br />
{{hc|npmrc|<nowiki><br />
prefix=${XDG_DATA_HOME}/npm<br />
cache=${XDG_CACHE_HOME}/npm<br />
tmp=${XDG_RUNTIME_DIR}/npm<br />
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js<br />
</nowiki>}}<br />
{{ic|prefix}} is unnecessary (and unsupported) if Node.js is installed by {{AUR|nvm}}.<br />
|-<br />
| {{Pkg|nuget}}<br />
| {{ic|~/.nuget/packages}}<br />
|<br />
| [https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders]<br />
| {{ic|1=$ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages}}<br />
|-<br />
| [[NVIDIA]]<br />
| {{ic|~/.nv}}<br />
|<br />
|<br />
| Uses {{ic|XDG_CACHE_HOME}} if set, otherwise improperly falls back to {{ic|~/.nv}} instead of {{ic|~/.cache}}.<br />
|-<br />
| {{Pkg|nvidia-settings}}<br />
| {{ic|~/.nvidia-settings-rc}}<br />
|<br />
|<br />
| {{ic|1=$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings}}<br />
|-<br />
| {{AUR|nvm}}<br />
| {{ic|~/.nvm}}<br />
|<br />
|<br />
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}<br />
|-<br />
| [[Octave]]<br />
|<br />
{{ic|~/octave<br><br />
~/.octave_packages<br><br />
~/.octave_hist}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"<br><br />
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"}}<br />
<br />
{{hc|$XDG_CONFIG_HOME/octave/octaverc|<nowiki><br />
source /usr/share/octave/site/m/startup/octaverc;<br />
pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;<br />
pkg local_list /home/<your username>/.local/share/octave/octave_packages;<br />
</nowiki>}}<br />
The {{ic|local_list}} option must be given an absolute path.<br />
|-<br />
| {{Pkg|openscad}}<br />
| {{ic|~/.OpenSCAD}}<br />
| [https://github.com/openscad/openscad/commit/7c3077b0f 7c3077b0f]<br />
| [https://github.com/openscad/openscad/issues/125]<br />
| Does not fully honour XDG Base Directory Specification, see [https://github.com/openscad/openscad/issues/373]<br />
<br />
Currently it [https://github.com/openscad/openscad/blob/master/src/PlatformUtils-posix.cc#L20 hard-codes] {{ic|~/.local/share}}.<br />
|-<br />
| [[OpenSSL]]<br />
| {{ic|~/.rnd}}<br />
|<br />
|<br />
| Seeding file {{ic|.rnd}}'s location can be set with {{ic|RANDFILE}} environment variable per [https://www.openssl.org/docs/faq.html FAQ].<br />
|-<br />
| {{Pkg|parallel}}<br />
| {{ic|~/.parallel}}<br />
| [https://git.savannah.gnu.org/cgit/parallel.git/commit/?id=685018f532f4e2d24b84eb28d5de3d759f0d1af1 20170422]<br />
|<br />
| {{ic|1=$ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel}}<br />
|-<br />
| [[pass]]<br />
| {{ic|~/.password-store}}<br />
|<br />
|<br />
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}<br />
|-<br />
| [[Pidgin]]<br />
| {{ic|~/.purple}}<br />
|<br />
| [https://developer.pidgin.im/ticket/4911]<br />
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}<br />
|-<br />
| [[PostgreSQL]]<br />
|<br />
{{ic|~/.psqlrc<br><br />
~/.psql_history<br><br />
~/.pgpass<br><br />
~/.pg_service.conf}}<br />
| 9.2<br />
| [https://www.postgresql.org/docs/current/static/app-psql.html] [https://www.postgresql.org/docs/current/static/libpq-envars.html]<br />
|<br />
{{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"<br><br />
$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"<br><br />
$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"<br><br />
$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"}}<br />
<br />
It is required to create both directories: {{ic|1=$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"}}<br />
|-<br />
| [[PulseAudio]]<br />
| {{ic|~/.esd_auth}}<br />
|<br />
|<br />
| Very likely generated by the {{ic|module-esound-protocol-unix.so}} module. It can be configured to use a different location but it makes much more sense to just comment out this module in {{ic|/etc/pulse/default.pa}} or {{ic|"$XDG_CONFIG_HOME"/pulse/default.pa}}.<br />
|-<br />
| {{aur|python-azure-cli}}<br />
| {{ic|~/.azure}}<br />
|<br />
|<br />
| {{ic|1=$ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure}}<br />
|-<br />
| {{AUR|python-grip}}<br />
| {{ic|~/.grip}}<br />
|<br />
|<br />
| {{ic|1=$ export GRIPHOME="$XDG_CONFIG_HOME/grip"}}<br />
|-<br />
| {{Pkg|python-setuptools}}<br />
| {{ic|~/.python-eggs}}<br />
|<br />
|<br />
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}<br />
|-<br />
| {{Pkg|python-pylint}}<br />
| {{ic|~/.pylint.d}}<br />
|<br />
| [https://github.com/PyCQA/pylint/issues/1364 won't fix]<br />
| {{ic|1=$ export PYLINTHOME="$XDG_CACHE_HOME"/pylint}}<br />
|-<br />
| {{Pkg|racket}}<br />
| {{ic|~/.racketrc<br><br />
~/.racket}}<br />
|<br />
| [https://github.com/racket/racket/issues/2740]<br />
| {{ic|1=$ export PLTUSERHOME="$XDG_DATA_HOME"/racket}}<br />
|-<br />
| [[readline]]<br />
| {{ic|~/.inputrc}}<br />
|<br />
|<br />
| {{ic|1=$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc}}<br />
|-<br />
| {{Pkg|rlwrap}}<br />
| {{ic|~/.*_history}}<br />
|<br />
| [https://github.com/hanslub42/rlwrap/issues/25]<br />
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}<br />
|-<br />
| [[Ruby#RubyGems]]<br />
| {{ic|~/.gem}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export GEM_HOME="$XDG_DATA_HOME"/gem<br><br />
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem}}<br />
<br />
Make sure to remove {{ic|gem: --user-install}} from {{ic|/etc/gemrc}}<br />
|-<br />
| [[Rust#Rustup]]<br />
| {{ic|~/.rustup}}<br />
|<br />
| [https://github.com/rust-lang-nursery/rustup.rs/issues/247]<br />
| {{ic|1=$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup}}<br />
|-<br />
| {{Pkg|sbt}}<br />
| {{ic|~/.sbt}}<br />
{{ic|~/.ivy2}}<br />
|<br />
| [https://github.com/sbt/sbt/issues/3681]<br />
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}} (beware [https://github.com/sbt/sbt/issues/3598])<br />
|-<br />
| [[SageMath]]<br />
| {{ic|~/.sage}}<br />
|<br />
|<br />
| {{ic|1=$ export DOT_SAGE="$XDG_CONFIG_HOME"/sage}}<br />
|-<br />
| [[GNU Screen]]<br />
| {{ic|~/.screenrc}}<br />
|<br />
|<br />
| {{ic|1=$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc}}<br />
|-<br />
| [https://spacemacs.org/ spacemacs]<br />
|<br />
{{ic|~/.spacemacs<br><br />
~/.spacemacs.d}}<br />
| [https://github.com/syl20bnr/spacemacs/commit/e1eed07c30ea395fb9cfebc8ec3376dcffbace11]<br />
| [https://github.com/syl20bnr/spacemacs/issues/3589]<br />
| Move the {{ic|~/.spacemacs}} file.<br />
<br />
{{ic|1=$ export SPACEMACSDIR="$XDG_CONFIG_HOME"/spacemacs<br><br />
$ mv ~/.spacemacs "$SPACEMACSDIR"/init.el}}<br />
<br />
Other files need to be configured like Emacs.<br />
|-<br />
| [[Haskell#Stack]]<br />
| {{ic|~/.stack}}<br />
|<br />
| [https://github.com/commercialhaskell/stack/issues/342]<br />
| {{ic|1=$ export STACK_ROOT="$XDG_DATA_HOME"/stack}}<br />
|-<br />
| [[subversion]]<br />
| {{ic|~/.subversion}}<br />
|<br />
| [https://issues.apache.org/jira/browse/SVN-4599] [https://mail-archives.apache.org/mod_mbox/subversion-users/201204.mbox/%3c4F8FBCC6.4080205@ritsuka.org%3e][http://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3c20150917222954.GA20331@teapot%3e]<br />
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}<br />
|-<br />
| {{Pkg|task}}<br />
|<br />
{{ic|~/.task<br><br />
~/.taskrc}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task<br><br />
$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}<br />
|-<br />
| {{AUR|tiptop}}<br />
| {{ic|~/.tiptoprc}}<br />
|<br />
|<br />
| This will still expect the {{ic|.tiptoprc}} file.<br />
{{ic|$ tiptop -W "$XDG_CONFIG_HOME"/tiptop}}<br />
|-<br />
| {{Pkg|uncrustify}}<br />
| {{ic|~/.uncrustify.cfg}}<br />
|<br />
|<br />
| {{ic|1=$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg}}<br />
|-<br />
| [[Unison]]<br />
| {{ic|~/.unison}}<br />
|<br />
|<br />
| {{ic|1=$ export UNISON="$XDG_DATA_HOME"/unison}}<br />
|-<br />
| [[Rxvt-unicode/Tips_and_tricks#Daemon-client|urxvtd]]<br />
| {{ic|~/.urxvt/urxvtd-hostname}}<br />
|<br />
|<br />
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd}}<br />
|-<br />
| [[Vagrant]]<br />
|<br />
{{ic|~/.vagrant.d<br><br />
~/.vagrant.d/aliases}}<br />
|<br />
| [https://www.vagrantup.com/docs/other/environmental-variables.html]<br />
|<br />
{{ic|1=$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant<br><br />
$ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases}}<br />
|-<br />
| [[Visual Studio Code]]<br />
| {{ic|~/.vscode-oss/argv.json}}<br />
|<br />
| [https://github.com/Microsoft/vscode/issues/3884]<br />
| You can use {{ic|1=$ export VSCODE_PORTABLE="$XDG_DATA_HOME"/vscode}}, which is not documented and might break unexpectedly<br />
|-<br />
| [[AUR|WakaTime]]<br />
|<br />
{{ic|~/.wakatime.cfg<br><br />
~/.wakatime.data<br><br />
~/.wakatime.db<br><br />
~/.wakatime.log}}<br />
|<br />
|<br />
| {{ic|1=$ export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"}}<br />
<br />
The directory needs to be created manually:<br><br />
{{ic|1=$ mkdir "$XDG_CONFIG_HOME/wakatime"}}<br />
|-<br />
| [[WeeChat]]<br />
| {{ic|~/.weechat}}<br />
|<br />
| [http://savannah.nongnu.org/task/?10934] [https://github.com/ipython/ipython/pull/4457]<br />
|<br />
{{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat<br><br />
$ weechat -d "$XDG_CONFIG_HOME"/weechat}}<br />
|-<br />
| [[wget]]<br />
|<br />
{{ic|~/.wgetrc<br><br />
~/.wget-hsts}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"<br><br />
and add the following as an alias for wget:<br><br />
$ wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"<br><br />
or set the hsts-file variable with an absolute path as wgetrc does not support environment variables:<br><br />
$ echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"}}<br />
|-<br />
| [[wine]]<br />
| {{ic|~/.wine}}<br />
|<br />
| [https://bugs.winehq.org/show_bug.cgi?id=20888]<br />
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes<br><br />
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}<br />
|-<br />
| [[xbindkeys]]<br />
| {{ic|~/.xbindkeysrc}}<br />
|<br />
|<br />
| {{ic|1=$ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config}}<br />
|-<br />
| {{Pkg|xorg-xauth}}<br />
| {{ic|~/.Xauthority}}<br />
|<br />
|<br />
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}<br />
<br />
Note that [[LightDM]] does not allow you to change this variable. If you change it nonetheless, you will not be able to login. Use [[startx]] instead or [https://askubuntu.com/a/961459 configure LightDM]. According to [https://unix.stackexchange.com/a/175331] [[SLiM]] has {{ic|~/.Xauthority}} hardcoded.<br />
|-<br />
| [[xinit]]<br />
|<br />
{{ic|~/.xinitrc<br><br />
~/.xserverrc}}<br />
|<br />
| [https://gitlab.freedesktop.org/xorg/app/xinit/issues/14]<br />
|<br />
{{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc<br><br />
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}<br />
<br />
Note that these variables are respected by ''xinit'', but not by ''startx''. Instead, specify the filename as an argument:<br />
<br />
{{ic|1=$ startx "$XDG_CONFIG_HOME/X11/xinitrc" -- "$XDG_CONFIG_HOME/X11/xserverrc" vt1}}<br />
|-<br />
| {{Pkg|xorg-xrdb}}<br />
|<br />
{{ic|~/.Xresources<br><br />
~/.Xdefaults}}<br />
|<br />
|<br />
| Ultimately you [https://superuser.com/questions/243914/xresources-or-xdefaults should be] using {{ic|Xresources}} and since these resources are loaded via {{ic|xrdb}} you can specify a path such as {{ic|1=$ xrdb -load ~/.config/X11/xresources}}.<br />
|-<br />
| {{Pkg|z}}<br />
|<br />
{{ic|~/.z}}<br />
|<br />
| [https://github.com/rupa/z/issues/267]<br />
| {{ic|1=$ export _Z_DATA="$XDG_DATA_HOME/z"}}<br />
|-<br />
| {{Pkg|yarn}}<br />
|<br />
{{ic|~/.yarnrc<br><br />
~/.yarn/<br><br />
~/.yarncache/<br><br />
~/.yarn-config/}}<br />
| [https://github.com/yarnpkg/yarn/commit/2d454b5 2d454b5]<br />
| [https://github.com/yarnpkg/yarn/pull/5336] [https://github.com/yarnpkg/yarn/issues/2334]<br />
| {{ic|1=$ alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config"}}<br />
|-<br />
|}<br />
<br />
=== Hardcoded ===<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Discussion<br />
! Notes<br />
|-<br />
| [[adb]]<br />
| {{ic|~/.android/}}<br />
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]<br />
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}<br />
{{ic|1=$ export ANDROID_AVD_HOME="$XDG_DATA_HOME"/android/}}<br />
{{ic|1=$ export ANDROID_EMULATOR_HOME="$XDG_DATA_HOME"/android/}}<br />
{{ic|1=$ export ADB_VENDOR_KEY="$XDG_CONFIG_HOME"/android}}<br />
|-<br />
| [[Ansible]]<br />
| {{ic|~/.ansible}}<br />
| [https://github.com/ansible/ansible/issues/52354]<br />
|<br />
<br />
|-<br />
| [[AMule]]<br />
| {{ic|~/.aMule}}<br />
|<br />
|<br />
<br />
|-<br />
| [https://developer.android.com/studio/index.html Android Studio]<br />
|<br />
{{ic|~/.AndroidStudio2.3<br><br />
~/.android/<br><br />
~/.java/}}<br />
|<br />
|<br />
|-<br />
| [https://osdn.net/projects/anthy/ anthy]<br />
| {{ic|~/.anthy}}<br />
| [https://osdn.net/ticket/browse.php?group_id=14&tid=28397]<br />
|<br />
|-<br />
| [https://directory.apache.org/studio/ Apache Directory Studio]<br />
| {{ic|~/.ApacheDirectoryStudio}}<br />
|<br />
|<br />
|-<br />
| [https://christian.amsuess.com/tools/arandr/ ARandR]<br />
| {{ic|~/.screenlayout}}<br />
|<br />
|<br />
|-<br />
| [[Arduino]]<br />
|<br />
{{ic|~/.arduino15<br><br />
~/.jssc}}<br />
| [https://github.com/arduino/Arduino/issues/3915 won't fix]<br />
| [https://github.com/arduino/Arduino/issues/10486]<br />
|<br />
<br />
|-<br />
| [https://www.audacityteam.org/ Audacity]<br />
| {{ic|~/.audacity-data/}}<br />
| [https://bugzilla.audacityteam.org/show_bug.cgi?id=2201]<br />
|<br />
<br />
|-<br />
| [http://fixounet.free.fr/avidemux/ Avidemux]<br />
| {{ic|~/.avidemux6}}<br />
|<br />
|<br />
<br />
|-<br />
| [[Bash]]<br />
|<br />
{{ic|~/.bashrc<br><br />
~/.bash_history<br><br />
~/.bash_profile<br><br />
~/.bash_login<br><br />
~/.bash_logout}}<br />
| [https://savannah.gnu.org/support/?108134 won't fix]<br />
| {{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}<br />
A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bash.bashrc}}.<br />
<br />
Specify {{ic|--init-file <file>}} as an alternative to {{ic|~/.bashrc}} for interactive shells.<br />
|-<br />
| [https://www.haskell.org/cabal/ cabal]<br />
| {{ic|~/.cabal/}}<br />
| [https://github.com/haskell/cabal/issues/680]<br />
| See discussion for potential workarounds. It is not very easy or straightforward but may be possible to emulate Base Directory compliance.<br />
|-<br />
| {{AUR|chatty}}<br />
| {{ic|~/.chatty/}}<br />
| [https://github.com/chatty/chatty/issues/273]<br />
|<br />
|-<br />
| {{Pkg|cmake}}<br />
| {{ic|~/.cmake/}}<br />
|<br />
| 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].<br />
|-<br />
| [[Cinnamon]]<br />
| {{ic|~/.cinnamon/}}<br />
| [https://github.com/linuxmint/Cinnamon/issues/7807]<br />
|<br />
|-<br />
| {{AUR|cryptomator}}<br />
| {{ic|~/.Cryptomator}}<br />
| [https://github.com/cryptomator/cryptomator/issues/710]<br />
|<br />
|-<br />
| [[CUPS]]<br />
| {{ic|~/.cups/}}<br />
| [https://github.com/apple/cups/issues/4243 won't fix]<br />
|<br />
|-<br />
| [[darcs]]<br />
| {{ic|~/.darcs/}}<br />
| [http://bugs.darcs.net/issue2453]<br />
|<br />
|-<br />
| [[dbus]]<br />
| {{ic|~/.dbus/}}<br />
| [https://gitlab.freedesktop.org/dbus/dbus/issues/46]<br />
| Consider using {{pkg|dbus-broker}}, as it does not create or use this directory.<br />
|-<br />
| {{Pkg|devede}}<br />
| {{ic|~/.devedeng}}<br />
|<br />
| Hardcoded [https://gitlab.com/rastersoft/devedeng/blob/f0893b3ff7b14723bd148db35bdfe2d284156d19/src/devedeng/configuration_data.py#L111 here]<br />
|-<br />
| [https://wiki.gnome.org/Apps/Dia Dia]<br />
| {{ic|~/.dia/}}<br />
|<br />
|<br />
|-<br />
| {{Pkg|dotnet-sdk}}<br />
| {{ic|~/.dotnet/}}<br />
| [https://github.com/dotnet/cli/issues/7569]<br />
|<br />
|-<br />
| [[Eclipse]]<br />
| {{ic|~/.eclipse/}}<br />
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]<br />
| 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}})<br />
|-<br />
| [http://www.fetchmail.info/ Fetchmail]<br />
| {{ic|~/.fetchmailrc}}<br />
|<br />
|<br />
|-<br />
| [[Firefox]]<br />
| {{ic|~/.mozilla/}}<br />
| [https://bugzil.la/259356]<br />
|<br />
|-<br />
| [[Flatpak]]<br />
| {{ic|~/.var/}}<br />
| [https://github.com/flatpak/flatpak/issues/46] [https://github.com/flatpak/flatpak.github.io/issues/191] [https://github.com/flatpak/flatpak/issues/1651 won't fix]<br />
|<br />
|-<br />
| {{Pkg|fltk}}<br />
| {{ic|~/.fltk/}}<br />
| [https://www.fltk.org/str.php?L3370+P0+S0+C0+I0+E0+V%25+Qxdg]<br />
|<br />
|-<br />
| {{Pkg|gftp}}<br />
| {{ic|~/.gftp/}}<br />
| <br />
|<br />
|-<br />
| [https://www.haskell.org/ghc/ GHC]<br />
| {{ic|~/.ghc}}<br />
| [https://ghc.haskell.org/trac/ghc/ticket/6077]<br />
|<br />
|-<br />
| {{Pkg|ghidra}}<br />
|<br />
| [https://github.com/NationalSecurityAgency/ghidra/issues/908]<br />
|<br />
|-<br />
| [[GoldenDict]]<br />
| {{ic|~/.goldendict/}}<br />
| [https://github.com/goldendict/goldendict/issues/151]<br />
|<br />
|-<br />
| {{Pkg|gramps}}<br />
| {{ic|~/.gramps/}}<br />
| [https://gramps-project.org/bugs/view.php?id=8025]<br />
|<br />
|-<br />
| {{Pkg|grsync}}<br />
| {{ic|~/.grsync/}}<br />
| [https://sourceforge.net/p/grsync/feature-requests/15/]<br />
|<br />
|-<br />
| [http://recordmydesktop.sourceforge.net/about.php gtk-recordMyDesktop]<br />
| {{ic|~/.gtk-recordmydesktop}}<br />
|<br />
|<br />
|-<br />
| {{AUR|kite}}<br />
| {{ic|~/.kite/}}<br />
| [https://github.com/kiteco/issue-tracker/issues/242]<br />
|<br />
|-<br />
| {{Pkg|hplip}}<br />
| {{ic|~/.hplip/}}<br />
| [https://bugs.launchpad.net/hplip/+bug/307152]<br />
|<br />
|-<br />
| [http://www.idris-lang.org/ idris]<br />
| {{ic|~/.idris}}<br />
| [https://github.com/idris-lang/Idris-dev/pull/3456]<br />
|<br />
|-<br />
| [[Java]] OpenJDK<br />
| {{ic|~/.java/fonts}}<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]<br />
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}<br />
|-<br />
| [[Java]] OpenJFX<br />
| {{ic|~/.java/webview}}<br />
|<br />
|<br />
|-<br />
| {{Pkg|jgmenu}}<br />
| {{ic|~/.jgmenu-lockfile}}<br />
| [https://github.com/johanmalm/jgmenu/blob/3e48121dc28d06efb23c7901b7e138c2de167a84/src/lockfile.c#L11] [https://github.com/johanmalm/jgmenu/blob/4e45d04502fc5f77392bef0ff33b7bada0cf07d1/src/jgmenu_run#L7]<br />
|<br />
|-<br />
| [http://julialang.org/ julia]<br />
|<br />
{{ic|~/.juliarc.jl<br><br />
~/.julia_history}}<br />
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]<br />
|<br />
|-<br />
| [http://www.linux-pam.org/ Linux PAM]<br />
| {{ic|~/.pam_environment}}<br />
| [https://github.com/linux-pam/linux-pam/issues/7]<br />
| Hardcoded in [https://github.com/linux-pam/linux-pam/blob/master/modules/pam_env/pam_env.c modules/pam_env/pam_env.c]<br />
|-<br />
| [http://lldb.llvm.org/ lldb]<br />
|<br />
{{ic|~/.lldb<br><br />
~/.lldbinit}}<br />
|<br />
|<br />
|-<br />
| [http://www.mathomatic.org/ mathomatic]<br />
|<br />
{{ic|~/.mathomaticrc<br><br />
~/.matho_history}}<br />
|<br />
| History can be moved by using {{ic|rlwrap mathomatic -r}} with the {{ic|RLWRAP_HOME}} environment set appropriately.<br />
|-<br />
| [[Minecraft]]<br />
| {{ic|~/.minecraft/}}<br />
| [https://bugs.mojang.com/browse/MCL-2563]<br />
|<br />
|-<br />
| [[Minetest]]<br />
| {{ic|~/.minetest/}}<br />
| [https://github.com/minetest/minetest/issues/864 won't fix] [https://github.com/minetest/minetest/issues/8151]<br />
|<br />
|-<br />
| {{Pkg|minicom}}<br />
| {{ic|~/.minirc.dfl}}<br />
| <br />
| Upstream has a TODO entry for supporting configuration files under {{ic|~/.config/minicom}}. [https://salsa.debian.org/minicom-team/minicom/-/blob/fe9ff103/TODO#L27]<br />
|-<br />
| [https://www.mongodb.org/ mongodb]<br />
|<br />
{{ic|~/.mongorc.js<br><br />
~/.dbshell}}<br />
| [https://jira.mongodb.org/browse/DOCS-5652?jql=text%20~%20%22.mongorc.js%22]<br />
| [https://stackoverflow.com/questions/22348604/the-mongorc-js-is-not-found-but-there-is-one/22349050#22349050 This Stack Overflow thread] suggests a partial workaround using command-line switch {{ic|--norc}}.<br />
|-<br />
| [http://0ldsk00l.ca/nestopia/ Nestopia UE]<br />
| {{ic|~/.nestopia/}}<br />
| [https://github.com/0ldsk00l/nestopia/pull/292 won't fix]<br />
|<br />
|-<br />
|<br />
| {{ic|~/.netrc}}<br />
|<br />
| 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.<br />
|-<br />
| [[Networkmanager-openvpn]]<br />
| {{ic|~/.cert/nm-openvpn}}<br />
| [https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/issues/35]<br />
|<br />
|-<br />
| [[OpenSSH]]<br />
| {{ic|~/.ssh}}<br />
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050 won't fix]<br />
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.<br />
|-<br />
| [https://www.palemoon.org/ palemoon]<br />
| {{ic|~/.moonchild productions}}<br />
| [https://forum.palemoon.org/viewtopic.php?f=5&t=9639]<br />
|<br />
|-<br />
| {{AUR|parsec-bin}}<br />
| {{ic|~/.parsec}}<br />
|<br />
|<br />
|-<br />
| [[PCManFM]]<br />
| {{ic|~/.thumbnails}}<br />
| [https://github.com/lxde/libfm/issues/57]<br />
|<br />
|-<br />
| {{AUR|pcsxr}}<br />
| {{ic|~/.pcsxr}}<br />
|<br />
| A {{ic|-cfg}} flag exists, but can only be set relative to {{ic|~/.pcsxr}}.<br />
|-<br />
| [https://perf.wiki.kernel.org/index.php/Main_Page perf]<br />
| {{ic|~/.debug}}<br />
|<br />
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L29 tools/perf/util/config.c:29].<br />
|-<br />
| [[perl]]<br />
| {{ic|~/.cpan}}<br />
|<br />
| Perl5's [https://github.com/andk/cpanpm CPAN] expects {{ic|~/.cpan}}.<br />
|-<br />
| various [[shell]]s and [[display manager]]s<br />
| {{ic|~/.profile}}<br />
|<br />
|<br />
|-<br />
| [[python]]<br />
| {{ic|~/.python_history}}<br />
| [https://bugs.python.org/issue29779]<br />
| All history from interactive sessions is saved to {{ic|~/.python_history}} by default since [https://bugs.python.org/issue5845 version 3.4], custom path can still be set the same way as in older versions (see [https://docs.python.org/3/library/readline.html?highlight=readline#example this example]).<br />
|-<br />
| {{Pkg|python-poetry}}<br />
| {{ic|~/.poetry}}<br />
| [https://github.com/python-poetry/poetry/issues/2148]<br />
| {{ic|POETRY_HOME}} can be used but it does not separate data and config.<br />
|-<br />
| {{Pkg|python-tensorflow}}<br />
| {{ic|~/.keras}}<br />
| [https://github.com/tensorflow/tensorflow/issues/38831]<br />
| The issues is for {{ic|tf.keras}} module<br />
|-<br />
| [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer]<br />
| {{ic|~/.designer}}<br />
|<br />
|<br />
|-<br />
| [http://rednotebook.sourceforge.net/ RedNotebook]<br />
| {{ic|~/.rednotebook}}<br />
|<br />
|<br />
|-<br />
| [https://remarkableapp.github.io/linux.html Remarkable]<br />
| {{ic|~/.remarkable}}<br />
|<br />
|<br />
|-<br />
| {{AUR|renderdoc}}<br />
| {{ic|~/.renderdoc}}<br />
| [https://github.com/baldurk/renderdoc/pull/1741 won't fix]<br />
|<br />
|-<br />
| [https://www.renpy.org/ Ren'Py]<br />
| {{ic|~/.renpy}}<br />
| [https://github.com/renpy/renpy/issues/1377#issuecomment-370118555 won't fix]<br />
|<br />
|-<br />
| [[SANE]]<br />
| {{ic|~/.sane/}}<br />
|<br />
| {{ic|scanimage}} creates a {{ic|.cal}} file there<br />
|-<br />
| {{Pkg|sbcl}}<br />
| {{ic|~/.sbclrc}}<br />
|<br />
| {{hc|/etc/sbclrc|<br />
(require :asdf)<br />
(setf sb-ext:*userinit-pathname-function*<br />
(lambda () (uiop:xdg-config-home #P"sbcl/sbclrc")))<br />
}}<br />
<br />
Note that this requires root privileges and will change the location of {{ic|~/.sbclrc}} for all users. This can be mitigated by checking for an existing {{ic|~/.sbclrc}} inside the {{ic|lambda}} form.<br />
|-<br />
| {{Pkg|scribus}}<br />
| {{ic|~/.scribus}}<br />
|<br />
|<br />
|-<br />
| [http://www.seamonkey-project.org/ SeaMonkey]<br />
| {{ic|~/.mozilla/}}<br />
| [https://bugzil.la/726939]<br />
|<br />
|-<br />
| {{Pkg|simplescreenrecorder}}<br />
| {{ic|~/.ssr/}}<br />
| [https://github.com/MaartenBaert/ssr/issues/407]<br />
| Will use {{ic|$XDG_CONFIG_HOME/simplescreenrecorder/}} ONLY if it already was created [https://github.com/MaartenBaert/ssr/issues/407#issuecomment-667600809] (not part of a release yet)<br />
|-<br />
| [https://www.gnu.org/software/solfege/solfege.html Solfege]<br />
|<br />
{{ic|~/.solfege<br><br />
~/.solfegerc<br><br />
~/lessonfiles}}<br />
| [https://savannah.gnu.org/bugs/index.php?50251]<br />
|<br />
|-<br />
| [https://spamassassin.apache.org/ SpamAssassin]<br />
| {{ic|~/.spamassassin}}<br />
|<br />
|<br />
|-<br />
| [[SQLite]]<br />
|<br />
{{ic|~/.sqlite_history<br><br />
~/.sqliterc}}<br />
| [https://www.sqlite.org/src/info/696e82f7c82d1720]<br />
| {{ic|1=$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history<br><br />
$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}<br />
|-<br />
| [[Steam]]<br />
|<br />
{{ic|~/.steam<br><br />
~/.steampath<br><br />
~/.steampid}}<br />
| [https://github.com/ValveSoftware/steam-for-linux/issues/1890]<br />
| 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.<br />
|-<br />
| [[TeamSpeak]]<br />
| {{ic|~/.ts3client}}<br />
|<br />
| {{ic|1=$ export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client"}}<br />
|-<br />
| {{pkg|texinfo}}<br />
| {{ic|~/.infokey}}<br />
|<br />
| {{ic|$ info --init-file "$XDG_CONFIG_HOME/infokey"}}<br />
|-<br />
| [http://www.texmacs.org/ TeXmacs]<br />
| {{ic|~/.TeXmacs}}<br />
|<br />
|<br />
|-<br />
| [[Thunderbird]]<br />
| {{ic|~/.thunderbird/}}<br />
| [https://bugzil.la/735285]<br />
|<br />
|-<br />
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]<br />
| {{ic|~/.texlive}}<br />
|<br />
|<br />
|-<br />
| {{AUR|vale}}<br />
| {{ic|~/.vale.ini}}<br />
| [https://github.com/errata-ai/vale/issues/152 won't fix]<br />
| {{ic|$ vale --config "$XDG_CONFIG_HOME/vale/config.ini"}}<br />
|-<br />
| [[vim]]<br />
|<br />
{{ic|~/.vim<br><br />
~/.vimrc<br><br />
~/.viminfo}}<br />
| [https://github.com/vim/vim/issues/2034]<br />
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.<br />
<br />
{{ic|1=<nowiki>$ mkdir -p "$XDG_DATA_HOME"/vim/{undo,swap,backup}</nowiki>}}<br />
<br />
{{hc|"$XDG_CONFIG_HOME"/vim/vimrc|<br />
set undodir&#61;$XDG_DATA_HOME/vim/undo<br />
set directory&#61;$XDG_DATA_HOME/vim/swap<br />
set backupdir&#61;$XDG_DATA_HOME/vim/backup<br />
set viewdir&#61;$XDG_DATA_HOME/vim/view<br />
set viminfo+&#61;'1000,n$XDG_DATA_HOME/vim/viminfo<br />
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after<br />
}}<br />
<br />
{{hc|~/.profile|2=<br />
export VIMINIT='source "$XDG_CONFIG_HOME/vim/vimrc"'<br />
}}<br />
<br />
{{ic|VIMINIT}} environment variable will also affect Neovim. If separate configs for Vim and Neovim are desired then the following will be a better choice:<br />
export VIMINIT='if !has('nvim') | source "$XDG_CONFIG_HOME/vim/vimrc" | endif'<br />
<br />
* https://tlvince.com/vim-respect-xdg<br />
|-<br />
| [http://www.vimperator.org/ vimperator]<br />
| {{ic|~/.vimperatorrc}}<br />
| [http://www.mozdev.org/pipermail/vimperator/2009-October/004848.html]<br />
| {{ic|1=$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"}}<br />
<br />
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}<br />
|-<br />
| {{Pkg|w3m}}<br />
| {{ic|~/.w3m}}<br />
| [https://sourceforge.net/p/w3m/feature-requests/31/]<br />
|<br />
|-<br />
| [https://w1.fi/ wpa_cli]<br />
| {{ic|~/.wpa_cli_history}}<br />
|<br />
|<br />
|-<br />
| {{Pkg|x2goclient}}<br />
| {{ic|~/.x2goclient}}<br />
|<br />
| {{ic|1=alias x2goclient="x2goclient --home=$HOME/.config"}}<br />
|-<br />
| {{Pkg|xdg-utils}}<br />
| {{ic|~/.gnome}}<br />
| [https://bugs.freedesktop.org/show_bug.cgi?id=90775] [https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/81] [https://gitlab.freedesktop.org/xdg/xdg-utils/-/merge_requests/22]<br />
| 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. Bug discussion has moved to gitlab and PR with fix exists, however it is not merged yet.<br />
|-<br />
| [https://opensource.conformal.com/wiki/xombrero xombrero]{{Dead link|2020|02|26}}<br />
| {{ic|~/.xombrero}}<br />
| [https://github.com/conformal/xombrero/issues/74]{{Dead link|2020|02|26}}<br />
|<br />
|-<br />
| {{Pkg|xournalpp}}<br />
| {{ic|~/.xournalpp}}<br />
| [https://github.com/xournalpp/xournalpp/issues/1101]<br />
| XDG will be honored in the next version [https://github.com/xournalpp/xournalpp/pull/1384]<br />
|-<br />
| {{Pkg|xpdf}}<br />
| {{ic|~/.xpdfrc}}<br />
|<br />
|<br />
|-<br />
| [https://yardoc.org YARD]<br />
| {{ic|~/.yard}}<br />
| [https://github.com/lsegal/yard/issues/1230]<br />
| Would accept Pull Request if anyone want to implement it.<br />
|-<br />
| [https://nmap.org/zenmap/ zenmap] {{Pkg|nmap}}<br />
| {{ic|~/.zenmap}}<br />
| [http://seclists.org/nmap-dev/2012/q2/163] [https://github.com/nmap/nmap/issues/590]<br />
|<br />
|-<br />
| {{AUR|zoom}}<br />
| {{ic|~/.zoom}}<br />
|<br />
|<br />
|-<br />
| {{AUR|zotero}}<br />
| {{ic|~/.zotero}} {{ic|~/Zotero}}<br />
| [https://github.com/zotero/zotero/issues/1203]<br />
|<br />
|-<br />
| [[zsh]]<br />
|<br />
{{ic|~/.zshrc<br><br />
~/.zprofile<br><br />
~/.zshenv<br><br />
~/.zlogin<br><br />
~/.zlogout<br><br />
~/.histfile<br><br />
~/.zcompdump}}<br />
| [http://www.zsh.org/mla/workers/2013/msg00692.html]<br />
| 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.<br />
<br />
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/zsh/history}}<br />
<br />
{{ic| $ compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION}} [https://unix.stackexchange.com/questions/391641/separate-path-for-zcompdump-files] /!\ The folder needs to exist<br />
<br />
|}<br />
<br />
== Libraries ==<br />
<br />
; C<br />
: [https://github.com/Cloudef/chck/tree/master/chck/xdg C99: Cloudef's simple implementation].<br />
<br />
; C++<br />
: [https://github.com/azubieta/xdg-utils-cxx xdg-utils-cxx]<br />
<br />
; Go<br />
: [https://github.com/ProtonMail/go-appdir go-appdir]<br />
<br />
; Haskell<br />
: Officially in [https://hackage.haskell.org/package/directory directory] since 1.2.3.0 [https://github.com/haskell/directory/commit/ab9d0810ce ab9d0810ce].<br />
: [https://hackage.haskell.org/package/xdg-basedir xdg-basedir]<br />
<br />
; JVM: Java, Kotlin, Clojure, Scala, ...<br />
: [https://github.com/soc/directories-jvm directories-jvm]<br />
<br />
; Perl<br />
: [http://search.cpan.org/dist/File-BaseDir/lib/File/BaseDir.pm File-BaseDir]<br />
<br />
; Python<br />
: [https://freedesktop.org/wiki/Software/pyxdg/ pyxdg]<br />
<br />
; Ruby<br />
: [https://github.com/rubyworks/xdg rubyworks/xdg]<br />
<br />
; Rust<br />
: [https://github.com/soc/directories-rs directories-rs]<br />
: [https://github.com/whitequark/rust-xdg rust-xdg]<br />
<br />
; Vala<br />
: Builtin support via [http://valadoc.org/#!api=glib-2.0/GLib.Environment GLib.Environment].<br />
: See {{ic|get_user_cache_dir}}, {{ic|get_user_data_dir}}, {{ic|get_user_config_dir}}, etc.<br />
<br />
==See also==<br />
<br />
* [https://wiki.gnome.org/Initiatives/GnomeGoals/XDGConfigFolders GNOME Goal: XDG Base Directory Specification Usage]<br />
* [https://web.archive.org/web/20180827160401/plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp Rob Pike: "Dotfiles" being hidden is a UNIXv2 mistake].<br />
* {{man|1|systemd-path}}<br />
* {{man|7|file-hierarchy}}<br />
* [https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes Grawity's notes on dotfiles].<br />
* [https://github.com/grawity/dotfiles/blob/master/.environ.notes Grawity's notes on environment variables].<br />
* [https://ploum.net/207-modify-your-application-to-use-xdg-folders/ ploum.net: Modify Your Application to use XDG Folders].<br />
* The [https://pcgamingwiki.com/wiki/Home PCGamingWiki] attempts to document whether or not Linux PC games follow the XDG Base Directory Specification.</div>Elbahekhttps://wiki.archlinux.org/index.php?title=XDG_Base_Directory&diff=637193XDG Base Directory2020-10-04T21:04:10Z<p>Elbahek: Updated xdg-utils -> .gnome entry with recent information and links to newer discussion and PR</p>
<hr />
<div>[[Category:Freedesktop.org]]<br />
[[Category:Configuration files]]<br />
[[Category:Development]]<br />
[[ja:XDG Base Directory]]<br />
[[pt:XDG Base Directory]]<br />
{{Related articles start}}<br />
{{Related|dotfiles}}<br />
{{Related|XDG user directories}}<br />
{{Related articles end}}<br />
<br />
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]].<br />
<br />
== Specification ==<br />
<br />
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.<br />
<br />
Only {{ic|XDG_RUNTIME_DIR}} is set by default through [https://www.freedesktop.org/software/systemd/man/pam_systemd.html pam_systemd]. It is up to the user to explicitly [[define]] the other variables according to the specification.<br />
<br />
=== User directories ===<br />
<br />
* {{ic|XDG_CONFIG_HOME}}<br />
** Where user-specific configurations should be written (analogous to {{ic|/etc}}).<br />
** Should default to {{ic|$HOME/.config}}.<br />
<br />
* {{ic|XDG_CACHE_HOME}}<br />
** Where user-specific non-essential (cached) data should be written (analogous to {{ic|/var/cache}}).<br />
** Should default to {{ic|$HOME/.cache}}.<br />
<br />
* {{ic|XDG_DATA_HOME}}<br />
** Where user-specific data files should be written (analogous to {{ic|/usr/share}}).<br />
** Should default to {{ic|$HOME/.local/share}}.<br />
<br />
* {{ic|XDG_RUNTIME_DIR}}<br />
** Used for non-essential, user-specific data files such as sockets, named pipes, etc.<br />
** Not required to have a default value; warnings should be issued if not set or equivalents provided.<br />
** Must be owned by the user with an access mode of {{ic|0700}}.<br />
** Filesystem fully featured by standards of OS.<br />
** Must be on the local filesystem.<br />
** May be subject to periodic cleanup.<br />
** Modified every 6 hours or set sticky bit if persistence is desired.<br />
** Can only exist for the duration of the user's login.<br />
** Should not store large files as it may be mounted as a tmpfs.<br />
<br />
=== System directories ===<br />
<br />
* {{ic|XDG_DATA_DIRS}}<br />
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/usr/local/share:/usr/share}}.<br />
<br />
* {{ic|XDG_CONFIG_DIRS}}<br />
** List of directories separated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/etc/xdg}}.<br />
<br />
== Support ==<br />
<br />
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.<br />
<br />
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.<br />
<br />
Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.<br />
<br />
=== Contributing ===<br />
<br />
When contributing make sure to use the correct section.<br />
<br />
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.<br />
<br />
* The first column should be either a link to an internal article, a [[Template:Pkg]] or a [[Template:AUR]].<br />
* 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.<br />
* 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).<br />
* The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.<br />
<br />
=== Supported ===<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| {{AUR|aerc-git}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[ALSA]]<br />
| {{ic|~/.asoundrc}}<br />
| [https://github.com/alsa-project/alsa-lib/commit/577df365f66ee09579864fc771136e690927b3bf 577df36]<br />
[https://github.com/alsa-project/alsa-lib/releases/tag/v1.2.3 1.2.3]<br />
| [https://github.com/alsa-project/alsa-lib/issues/49]<br />
| {{ic|$XDG_CONFIG_HOME/alsa/asoundrc}}<br />
|-<br />
| {{AUR|antimicro}}{{Broken package link|package not found}}<br />
| {{ic|~/.antimicro}}<br />
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]<br />
| [https://github.com/Antimicro/antimicro/issues/5]<br />
|<br />
|-<br />
| [[aria2]]<br />
| {{ic|~/.aria2}}<br />
| [https://github.com/tatsuhiro-t/aria2/commit/8bc1d37 8bc1d37]<br />
| [https://github.com/tatsuhiro-t/aria2/issues/27]<br />
|<br />
|-<br />
| {{Pkg|asunder}}<br />
|<br />
{{ic|~/.asunder<br><br />
~/.asunder_album_artist<br><br />
~/.asunder_album_genre<br><br />
~/.asunder_album_title}}<br />
| [https://littlesvr.ca/bugs/show_bug.cgi?id=31 2.9.0]<br />
| [https://littlesvr.ca/bugs/show_bug.cgi?id=52]<br />
| 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.<br />
|-<br />
| {{Pkg|binwalk}}<br />
| {{ic|~/.binwalk}}<br />
| [https://github.com/ReFirmLabs/binwalk/commit/2051757 2051757]<br />
| [https://github.com/ReFirmLabs/binwalk/issues/216]<br />
| {{ic|$XDG_CONFIG_HOME/binwalk}}<br />
|-<br />
| [[Blender]]<br />
| {{ic|~/.blender}}<br />
| [http://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/4293f47 4293f47]<br />
| [https://developer.blender.org/T28943]<br />
|<br />
|-<br />
| {{Pkg|calcurse}}<br />
| {{ic|~/.calcurse}}<br />
| [https://github.com/lfos/calcurse/commit/04162d 04162d]<br />
| [https://github.com/lfos/calcurse/pull/254] [https://github.com/lfos/calcurse/issues/252]<br />
| {{ic|XDG_CONFIG_HOME/calcurse}}<br />
<br />
{{ic|XDG_DATA_HOME/calcurse}}<br />
<br />
If the legacy path {{ic|~/.calcurse}} is present, it will take precedence.<br />
|-<br />
| {{Pkg|calibre}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{AUR|citra-git}}<br />
| {{ic|~/.citra-emu}}<br />
| [https://github.com/citra-emu/citra/commit/f7c3193 f7c3193]<br />
| [https://github.com/citra-emu/citra/pull/575]<br />
|<br />
|-<br />
| [[Composer]]<br />
| {{ic|~/.composer}}<br />
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]<br />
| [https://github.com/composer/composer/pull/1407]<br />
|<br />
|-<br />
| {{Pkg|d-feet}}<br />
| {{ic|~/.d-feet}}<br />
| [https://gitlab.gnome.org/GNOME/d-feet/commit/7f6104b 7f6104b]<br />
|<br />
|<br />
|-<br />
| {{Pkg|dconf}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[Dolphin emulator]]<br />
| {{ic|~/.dolphin-emu}}<br />
| [https://github.com/dolphin-emu/dolphin/commit/a498c68 a498c68]<br />
| [https://github.com/dolphin-emu/dolphin/pull/2304]<br />
|<br />
|-<br />
| {{AUR|dr14_tmeter}}<br />
|<br />
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca 7e777ca]<br />
| [https://github.com/simon-r/dr14_t.meter/pull/30]<br />
| {{ic|XDG_CONFIG_HOME/dr14tmeter/}}<br />
|-<br />
| {{Pkg|dunst}}<br />
|<br />
| [https://github.com/dunst-project/dunst/commit/78b6e2b 78b6e2b]<br />
| [https://github.com/dunst-project/dunst/issues/22]<br />
|<br />
|-<br />
| [[dwb]]<br />
|<br />
|<br />
|<br />
|<br />
<br />
|-<br />
| [[fish]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[fontconfig]]<br />
|<br />
{{ic|~/.fontconfig<br><br />
~/.fonts}}<br />
| [https://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb 8c255fb], [https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/437f03299bd1adc9673cd576072f1657be8fd4e0]<br />
|<br />
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.<br />
|-<br />
| {{Pkg|fontforge}}<br />
|<br />
{{ic|~/.FontForge<br><br />
~/.PfaEdit}}<br />
| [https://github.com/fontforge/fontforge/commit/e4c2cc7 e4c2cc7]<br />
|<br />
[https://github.com/fontforge/fontforge/issues/847]<br />
[https://github.com/fontforge/fontforge/issues/991]<br />
|<br />
|-<br />
| {{Pkg|freerdp}}<br />
| {{ic|~/.freerdp}}<br />
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e72 edf6e72]<br />
|<br />
|<br />
|-<br />
| [[Emacs]]<br />
| {{ic|~/.emacs<br>~/.emacs.d/init.el}}<br />
| [https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=4118297ae2fab4886b20d193ba511a229637aea3]<br />
[https://www.gnu.org/savannah-checkouts/gnu/emacs/emacs.html#Releases 27.1]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/emacs/init.el}}<br />
Legacy paths have precedence over XDG paths. Emacs will never create {{ic|XDG_CONFIG_HOME/emacs/}}.<br />
Workaround for 26.3 or older: It's possible to set {{ic|HOME}}, but it has unexpected side effects. <br />
|-<br />
| [[Gajim]]<br />
| {{ic|~/.gajim}}<br />
| [https://dev.gajim.org/gajim/gajim/commit/3e777ea 3e777ea]<br />
| [https://dev.gajim.org/gajim/gajim/issues/2149]<br />
|<br />
|-<br />
| {{AUR|gconf}}<br />
| {{ic|~/.gconf}}<br />
| [https://gitlab.gnome.org/Archive/gconf/commit/fc28caa fc28caa]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=674803]<br />
|<br />
|-<br />
| [[GIMP]]<br />
|<br />
{{ic|~/.gimp-x.y<br><br />
~/.thumbnails}}<br />
|<br />
[https://gitlab.gnome.org/GNOME/gimp/commit/60e0cfe 60e0cfe]<br />
[https://gitlab.gnome.org/GNOME/gimp/commit/483505f 483505f]<br />
|<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=166643]<br />
[https://bugzilla.gnome.org/show_bug.cgi?id=646644]<br />
|<br />
|-<br />
| [[Git]]<br />
| {{ic|~/.gitconfig}}<br />
| [https://github.com/git/git/commit/0d94427 0d94427]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/git/config}}<br />
|-<br />
| [https://github.com/google/gops gops]<br />
|<br />
| [https://github.com/google/gops/commit/71c4255 71c4255]<br />
|<br />
|<br />
|-<br />
| [[GStreamer]]<br />
| {{ic|~/.gstreamer-0.10}}<br />
| [https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93 4e36f93]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=518597]<br />
|<br />
|-<br />
| [[GTK]] 3<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|htop}}<br />
| {{ic|~/.htoprc}}<br />
| [https://github.com/hishamhm/htop/commit/93233a6 93233a6]<br />
|<br />
|<br />
|-<br />
| {{Pkg|httpie}}<br />
| {{ic|~/.httpie}}<br />
| [https://github.com/jakubroztocil/httpie/commit/5af0874ed302e9ef79cec97836529ccf353e53f7 5af0874]<br />
| [https://github.com/jakubroztocil/httpie/issues/145]<br />
|<br />
|-<br />
| [[i3]]<br />
| {{ic|~/.i3}}<br />
| [http://code.stapelberg.de/git/i3/commit/?id=7c130fb 7c130fb]<br />
|<br />
|<br />
|-<br />
| {{Pkg|i3status}}<br />
| {{ic|~/.i3status.conf}}<br />
| [http://code.stapelberg.de/git/i3status/commit/?id=c3f7fc4 c3f7fc4]<br />
|<br />
|<br />
|-<br />
| {{Pkg|imagemagick}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[Inkscape]]<br />
| {{ic|~/.inkscape}}<br />
| [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Preferences 0.47]<br />
| [https://bugs.launchpad.net/inkscape/+bug/199720]<br />
|<br />
|-<br />
| [https://iwd.wiki.kernel.org/ iwd] / iwctl<br />
| {{ic|~/.iwctl_history}}<br />
| [https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=d3e00d7f d3e00d7f]<br />
|<br />
|<br />
|-<br />
| {{Pkg|intellij-idea-community-edition}}<br />
| {{ic|~/.IntelliJIdea*}}<br />
| [https://confluence.jetbrains.com/display/IDEADEV/IntelliJ%2BIDEA%2B2020.1%2B%28201.6668.121%2Bbuild%29%2BRelease%2BNotes 2020.1]<br />
| [https://youtrack.jetbrains.com/issue/IDEA-22407]<br />
|<br />
|-<br />
| {{Pkg|josm}}<br />
| {{ic|~/.josm}}<br />
| [https://josm.openstreetmap.de/changeset/11162/josm 11162]<br />
| [https://josm.openstreetmap.de/ticket/6664]<br />
|<br />
|-<br />
| [[Kakoune]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| latexmk (in {{Pkg|texlive-core}})<br />
| {{ic|~/.latexmkrc}}<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|lftp}}<br />
| {{ic|~/.lftp}}<br />
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]<br />
| [https://www.mail-archive.com/lftp@uniyar.ac.ru/msg04301.html]<br />
|<br />
|-<br />
| {{AUR|lgogdownloader}}<br />
| {{ic|~/.gogdownloader}}<br />
| [https://github.com/Sude-/lgogdownloader/commit/d430af6 d430af6]<br />
| [https://github.com/Sude-/lgogdownloader/issues/4]<br />
|<br />
|-<br />
| [[LibreOffice]]<br />
|<br />
|<br />
[https://cgit.freedesktop.org/libreoffice/ure/commit/?id=a6f56f7 a6f56f7]<br />
[https://cgit.freedesktop.org/libreoffice/bootstrap/commit/?id=25bd2ee 25bd2ee]<br />
| [https://bugs.documentfoundation.org/show_bug.cgi?id=32263]<br />
|<br />
|-<br />
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]<br />
| {{ic|~/.pki}}<br />
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.42_release_notes 3.42]<br />
| [https://bugzilla.mozilla.org/show_bug.cgi?id=818686]<br />
|<br />
|-<br />
| [[Streamlink]]<br />
| {{ic|~/.livestreamerrc}}<br />
| [https://github.com/chrippa/livestreamer/commit/ea80591 ea80591]<br />
| [https://github.com/chrippa/livestreamer/pull/106]<br />
|<br />
|-<br />
| [[llpp]]<br />
|<br />
| [http://repo.or.cz/w/llpp.git/commit/3ab86f0 3ab86f0]<br />
|<br />
| Currently ''llpp'' places the configuration directly under {{ic|XDG_CONFIG_HOME}} instead of creating a directory.<br />
|-<br />
| [[mc]]<br />
| {{ic|~/.mc}}<br />
|<br />
[https://github.com/MidnightCommander/mc/commit/1b99570 1b99570]<br />
[https://github.com/MidnightCommander/mc/commit/0b71156 0b71156]<br />
[https://github.com/MidnightCommander/mc/commit/ce401d7 ce401d7]<br />
| [https://www.midnight-commander.org/ticket/1851]<br />
|<br />
|-<br />
| [[Mercurial]]<br />
| {{ic|~/.hgrc}}<br />
|<br />
[https://www.mercurial-scm.org/repo/hg/rev/3540200 3540200]<br />
[https://www.mercurial-scm.org/wiki/Release4.2 4.2]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/hg/hgrc}}.<br />
|-<br />
| [[msmtp]]<br />
| {{ic|~/.msmtprc}}<br />
|<br />
[https://github.com/marlam/msmtp-mirror/commit/af2f409 af2f409]<br />
v1.6.7+<br />
|<br />
| {{ic| XDG_CONFIG_HOME/msmtp/config}}.<br />
|-<br />
| {{Pkg|mesa}}<br />
|<br />
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b 87ab26b]<br />
|<br />
| {{ic|XDG_CACHE_HOME/mesa}}<br />
|-<br />
| {{Pkg|milkytracker}}<br />
| {{ic|~/.milkytracker_config}}<br />
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c5 eb487c5]<br />
| [https://github.com/Deltafire/MilkyTracker/issues/12]<br />
|<br />
|-<br />
| [[mpd]]<br />
| {{ic|~/.mpdconf}}<br />
| [https://github.com/MusicPlayerDaemon/MPD/commit/87b7328 87b7328]<br />
|<br />
|<br />
|-<br />
| [[mpv]]<br />
| {{ic|~/.mpv}}<br />
| [https://github.com/mpv-player/mpv/commit/cb250d4 cb250d4]<br />
| [https://github.com/mpv-player/mpv/pull/864]<br />
|<br />
|-<br />
| [[mutt]]<br />
| {{ic|~/.mutt}}<br />
| [https://gitlab.com/muttmua/mutt/commit/b17cd67 b17cd67]<br />
| [https://gitlab.com/muttmua/trac-tickets/raw/master/tickets/closed/3207-Conform_to_XDG_Base_Directory_Specification.txt]<br />
|<br />
|-<br />
| {{Pkg|mypaint}}<br />
| {{ic|~/.mypaint}}<br />
| [https://github.com/mypaint/mypaint/commit/cf723b7 cf723b7]<br />
|<br />
|<br />
|-<br />
| [[nano]]<br />
|<br />
{{ic|~/.nano/<br><br />
~/.nanorc}}<br />
| [https://git.savannah.gnu.org/cgit/nano.git/commit/?id=c16e79b c16e79b]<br />
| [https://savannah.gnu.org/patch/?8523]<br />
|<br />
|-<br />
| [[ncmpcpp]]<br />
| {{ic|~/.ncmpcpp}}<br />
|<br />
[https://github.com/arybczak/ncmpcpp/commit/38d9f81 38d9f81]<br />
[https://github.com/arybczak/ncmpcpp/commit/27cd86e 27cd86e]<br />
|<br />
[https://github.com/arybczak/ncmpcpp/issues/79]<br />
[https://github.com/arybczak/ncmpcpp/issues/110]<br />
| {{ic|ncmpcpp_directory}} should be set to avoid an {{ic|error.log}} file in {{ic|~/.ncmpcpp}}.<br />
|-<br />
| [[Neovim]]<br />
|<br />
{{ic|~/.nvim<br><br />
~/.nvimlog<br><br />
~/.nviminfo}}<br />
| [https://github.com/neovim/neovim/commit/1ca5646 1ca5646]<br />
|<br />
[https://github.com/neovim/neovim/issues/78]<br />
[https://github.com/neovim/neovim/pull/3198]<br />
|<br />
|-<br />
| [[newsbeuter]]<br />
| {{ic|~/.newsbeuter}}<br />
| [https://github.com/akrennmair/newsbeuter/commit/3c57824 3c57824]<br />
| [https://github.com/akrennmair/newsbeuter/pull/39]<br />
| It is required to create both directories [http://newsbeuter.org/doc/newsbeuter.html#_xdg_base_directory_support]:<br />
<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter}}<br />
|-<br />
| [https://github.com/nodejs/node-gyp node-gyp]<br />
| {{ic|~/.node-gyp}}<br />
| [https://github.com/nodejs/node-gyp/commit/2b5ce52a 2b5ce52a]<br />
| [https://github.com/nodejs/node-gyp/pull/1570]<br />
| Only available on master as of 2018-12-04.<br />
|-<br />
| {{AUR|np2kai-git}}<br />
|<br />
{{ic|~/.config/np2kai<br><br />
~/.config/xnp2kai}}<br />
| [https://github.com/AZO234/NP2kai/commit/56a1cc2 56a1cc2]<br />
| [https://github.com/AZO234/NP2kai/pull/50]<br />
|<br />
|-<br />
| {{AUR|nteract-bin}}<br />
|<br />
| [https://github.com/nteract/nteract/commit/4593e72 4593e72]<br />
| [https://github.com/nteract/nteract/issues/180] [https://github.com/nteract/nteract/pull/3870]<br />
| [https://github.com/nteract/nteract/issues/4517 does not recognize workarounds for ipython/jupyter]<br />
|-<br />
| [[OfflineIMAP]]<br />
| {{ic|~/.offlineimaprc}}<br />
| [https://github.com/OfflineIMAP/offlineimap/commit/5150de5 5150de5]<br />
| [https://github.com/OfflineIMAP/offlineimap/issues/32]<br />
|<br />
|-<br />
| {{AUR|opentyrian}}<br />
| {{ic|~/.opentyrian}}<br />
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]<br />
| [https://web.archive.org/web/20140815181350/http://code.google.com/p/opentyrian/issues/detail?id=125]<br />
|<br />
|-<br />
| {{Pkg|pandoc}}<br />
| {{ic|~/.pandoc/}}<br />
| [https://github.com/jgm/pandoc/commit/0bed0ab5a308f5e72a01fa9bee76488556288862 0bed0ab]<br />
| [https://github.com/jgm/pandoc/issues/3582]<br />
|<br />
|-<br />
| {{Pkg|pcsx2}}<br />
| {{ic|~/.pcsx2}}<br />
|<br />
[https://github.com/PCSX2/pcsx2/commit/87f1e8f 87f1e8f]<br />
[https://github.com/PCSX2/pcsx2/commit/a9020c6 a9020c6]<br />
[https://github.com/PCSX2/pcsx2/commit/3b22f0f 3b22f0f]<br />
[https://github.com/PCSX2/pcsx2/commit/0a012ae 0a012ae]<br />
| [https://github.com/PCSX2/pcsx2/issues/352] [https://github.com/PCSX2/pcsx2/issues/381]<br />
|<br />
|-<br />
| [http://pryrepl.org/ Pry]<br />
| {{ic|~/.pryrc<br>~/.pry_history}}<br />
|<br />
[https://github.com/pry/pry/commit/a0be0cc7b2070edff61c0c7f10fa37fce9b730bd a0be0cc7]<br />
[https://github.com/pry/pry/commit/15e1fc929ed84c161abc5afc9be73488a41df397 15e1fc92]<br />
[https://github.com/pry/pry/commit/e9d1be0e17b294318dbb2f70f74a50486cfa044c e9d1be0e]<br />
| [https://github.com/pry/pry/issues/1316]<br />
|<br />
|-<br />
| {{Pkg|python-pip}}<br />
| {{ic|~/.pip}}<br />
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]<br />
| [https://github.com/pypa/pip/issues/1733]<br />
|<br />
|-<br />
| {{AUR|powershell}}<br />
|<br />
| [https://docs.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-core-60#filesystem 6.0]<br />
|<br />
|<br />
|-<br />
| {{Pkg|ppsspp}}<br />
| {{ic|~/.ppsspp}}<br />
| [https://github.com/hrydgard/ppsspp/commit/132fe47 132fe47]<br />
| [https://github.com/hrydgard/ppsspp/issues/4623]<br />
|<br />
|-<br />
| {{Pkg|procps-ng}}<br />
| {{ic|~/.toprc}}<br />
| [https://gitlab.com/procps-ng/procps/commit/af53e17 af53e17]<br />
|<br />
[https://gitlab.com/procps-ng/procps/merge_requests/38]<br />
[https://bugzilla.redhat.com/show_bug.cgi?id=1155265]<br />
|<br />
|-<br />
| {{AUR|orbment-git}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[pacman]]<br />
| {{ic|~/.makepkg.conf}}<br />
| [https://projects.archlinux.org/pacman.git/commit/?id=80eca94 80eca94]<br />
| [https://mailman.archlinux.org/pipermail/pacman-dev/2014-July/019178.html]<br />
|<br />
|-<br />
| {{AUR|panda3d}}<br />
| {{ic|~/.panda3d}}<br />
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]<br />
|<br />
|<br />
|-<br />
| {{AUR|poezio}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[PulseAudio]]<br />
|<br />
{{ic|~/.pulse<br><br />
~/.pulse-cookie}}<br />
|<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=59a8618 59a8618]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae830 87ae830]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a 9ab510a]<br />
[https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bc 4c195bc]<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=845607]<br />
|<br />
|-<br />
| {{AUR|pyroom}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|quodlibet}}<br />
| {{ic|~/.quodlibet}}<br />
| 3.10.0<br />
| [https://github.com/quodlibet/quodlibet/issues/138]<br />
|<br />
|-<br />
| [[qutebrowser]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[qtile]]<br />
|<br />
|<br />
[https://github.com/qtile/qtile/commit/fd8686e fd8686e]<br />
[https://github.com/qtile/qtile/commit/66d704b 66d704b]<br />
[https://github.com/qtile/qtile/commit/51cff01 51cff01]<br />
| [https://github.com/qtile/qtile/pull/835]<br />
| Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.<br />
|-<br />
| {{Pkg|rclone}}<br />
| {{ic|~/.rclone.conf}}<br />
| [https://github.com/ncw/rclone/commit/9d36258 9d36258]<br />
| [https://github.com/ncw/rclone/issues/868]<br />
|<br />
|-<br />
| {{Pkg|retroarch}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{AUR|rr}}<br />
| {{ic|~/.rr}}<br />
| [https://github.com/mozilla/rr/commit/02e7d41 02e7d41]<br />
| [https://github.com/mozilla/rr/issues/1455]<br />
|<br />
|-<br />
| [https://rspec.info RSpec]<br />
| {{ic|~/.rspec}}<br />
| [https://github.com/rspec/rspec-core/commit/5e395e2016f1da19475e6db2817eb26dae828c4c 5e395e2]<br />
| [https://github.com/rspec/rspec-core/issues/1773]<br />
|<br />
|-<br />
| [[rTorrent]]<br />
| {{ic|~/.rtorrent.rc}}<br />
| [https://github.com/rakshasa/rtorrent/commit/6a8d332 6a8d332]<br />
|<br />
|<br />
|-<br />
| [https://www.rubocop.org RuboCop]<br />
| {{ic|~/.rubocop.yml}}<br />
| [https://github.com/rubocop-hq/rubocop/commit/6fe5956c177ca369cfaa70bdf748b70020a56bf4 6fe5956]<br />
| [https://github.com/rubocop-hq/rubocop/issues/6662]<br />
|<br />
|-<br />
| {{Pkg|sdcv}}<br />
|<br />
{{ic|~/.stardict/<br><br />
~/.sdcv_history}}<br />
| [https://github.com/Dushistov/sdcv/commit/958ec35 958ec35]<br />
| [https://github.com/Dushistov/sdcv/issues/51]<br />
|<br />
|-<br />
| {{AUR|skypeforlinux-stable-bin}}<br />
| {{ic|~/.Skype}}<br />
| 8.0<br />
|<br />
|<br />
|-<br />
| {{Pkg|snes9x}}<br />
| {{ic|~/.snes9x}}<br />
| [https://github.com/snes9xgit/snes9x/commit/93b5f11 93b5f11]<br />
| [https://github.com/snes9xgit/snes9x/issues/194]<br />
| By default, the configuration file is left blank with intention that the user will fill it at their will (through the gui or manually).<br />
|-<br />
| [[spectrwm]]<br />
| {{ic|~/.spectrwm}}<br />
| [https://github.com/conformal/spectrwm/commit/a30bbb a30bbb]<br />
| [https://github.com/conformal/spectrwm/pull/153]<br />
|<br />
|-<br />
| {{AUR|sublime-text-dev}}<br />
|<br />
|<br />
|<br />
| Cache is placed in {{ic|$XDG_CONFIG_HOME/sublime-text-3/Cache}} instead of expected {{ic|$XDG_CACHE_HOME/sublime-text-3}}.<br />
|-<br />
| [[surfraw]]<br />
|<br />
{{ic|~/.surfraw.conf<br><br />
~/.surfraw.bookmarks}}<br />
|<br />
[https://gitlab.com/surfraw/Surfraw/commit/3e4591d 3e4591d]<br />
[https://gitlab.com/surfraw/Surfraw/commit/bd8c427 bd8c427]<br />
[https://gitlab.com/surfraw/Surfraw/commit/f57fc71 f57fc71]<br />
|<br />
|<br />
|-<br />
| [[sway]]<br />
| {{ic|~/.sway/config}}<br />
| [https://github.com/SirCmpwn/sway/commit/614393c 614393c]<br />
| [https://github.com/SirCmpwn/sway/issues/5]<br />
|<br />
|-<br />
| [[systemd]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|teeworlds}}<br />
| {{ic|~/.teeworlds}}<br />
| [https://github.com/teeworlds/teeworlds/commit/d2e39d2f50684151490da446156622e69dd84a48]<br />
|<br />
|<br />
|-<br />
| [[termite]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| {{Pkg|tig}}<br />
| {{ic|~/.tigrc}}, {{ic|~/.tig_history}}<br />
| [https://github.com/jonas/tig/blob/master/NEWS.adoc#tig-22 2.2]<br />
| [https://github.com/jonas/tig/issues/513]<br />
| {{ic|~/.local/share/tig}} directory must exist, writes to {{ic|~/.tig_history}} otherwise.<br />
|-<br />
| [[tmux]]<br />
| {{ic|~/.tmux.conf}}<br />
| [https://raw.githubusercontent.com/tmux/tmux/3.1/CHANGES 3.1]<br />
| [https://github.com/tmux/tmux/issues/142]<br />
| 3.1 introduced {{ic|~/.config/tmux/tmux.conf}} and in [https://github.com/tmux/tmux/blob/a5f99e14c6f264e568b860692b89d11f5298a3f2/CHANGES#L145 3.2] {{ic|$XDG_CONFIG_HOME/tmux/tmux.conf}} was added<br />
|-<br />
|-<br />
| [[tmuxp]]<br />
| {{ic|~/.tmuxp}}<br />
| [https://tmuxp.git-pull.com/history.html#tmuxp-1-5-0-2018-10-02 1.5.0]<br />
| [https://github.com/tmux-python/tmuxp/pull/404]<br />
| Fixed in [https://tmuxp.git-pull.com/history.html#tmuxp-1-5-2-2019-06-02 1.5.2]<br />
|-<br />
| {{AUR|tmuxinator}}<br />
| {{ic|~/.tmuxinator}}<br />
| [https://github.com/tmuxinator/tmuxinator/pull/511/commits/2636923 2636923]<br />
| [https://github.com/tmuxinator/tmuxinator/pull/511]<br />
|<br />
|-<br />
| [[Transmission]]<br />
| {{ic|~/.transmission}}<br />
| [https://github.com/transmission/transmission/commit/b71a298 b71a298]<br />
|<br />
|<br />
|-<br />
| {{Pkg|util-linux}}<br />
|<br />
| [https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=570b321 570b321]<br />
|<br />
|<br />
|-<br />
| [[Uzbl]]<br />
|<br />
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]<br />
| [https://github.com/uzbl/uzbl/pull/150]<br />
|<br />
|-<br />
| {{Pkg|vimb}}<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[VirtualBox]]<br />
| {{ic|~/.VirtualBox}}<br />
| [https://www.virtualbox.org/ticket/5099?action=diff&version=7 4.3]<br />
| [https://www.virtualbox.org/ticket/5099]<br />
|<br />
|-<br />
| {{Pkg|vis}}<br />
| {{ic|~/.vis}}<br />
|<br />
[https://github.com/martanne/vis/commit/68a25c7 68a25c7]<br />
[https://github.com/martanne/vis/commit/d138908 d138908]<br />
| [https://github.com/martanne/vis/pull/303]<br />
|<br />
|-<br />
| [[VLC]]<br />
| {{ic|~/.vlcrc}}<br />
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1 16f32e1]<br />
| [https://trac.videolan.org/vlc/ticket/1267]<br />
|<br />
|-<br />
| {{Pkg|warsow}}<br />
| {{ic|~/.warsow-2.x}}<br />
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]<br />
| [https://github.com/Qfusion/qfusion/issues/298]<br />
|<br />
|-<br />
| [[Wireshark]]<br />
| {{ic|~/.wireshark}}<br />
| [https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b0b53fa b0b53fa]<br />
|<br />
|<br />
|-<br />
| {{AUR|xsettingsd-git}}<br />
| {{ic|~/.xsettingsd}}<br />
| [https://github.com/derat/xsettingsd/commit/b4999f5 b4999f5]<br />
|<br />
|<br />
|-<br />
| [[xmonad]]<br />
| {{ic|~/.xmonad}}<br />
| [https://github.com/xmonad/xmonad/commit/40fc10b 40fc10b]<br />
|<br />
[https://github.com/xmonad/xmonad/issues/61]<br />
[https://code.google.com/p/xmonad/issues/detail?id=484]<br />
| Alternatively the environments {{ic|XMONAD_CONFIG_HOME}}, {{ic|XMONAD_DATA_HOME}}, and {{ic|XMONAD_CACHE_HOME}} are also available.<br />
|-<br />
| {{Pkg|xsel}}<br />
| {{ic|~/.xsel.log}}<br />
| [https://github.com/kfish/xsel/commit/ee7b481 ee7b481]<br />
| [https://github.com/kfish/xsel/issues/10]<br />
|<br />
|}<br />
<br />
=== Partial ===<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| {{Pkg|abook}}<br />
| {{ic|~/.abook}}<br />
|<br />
|<br />
| {{ic|1=$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_DATA_HOME"/abook/addressbook}}<br />
|-<br />
| {{Pkg|ack}}<br />
| {{ic|~/.ackrc}}<br />
|<br />
| [https://github.com/beyondgrep/ack2/issues/516]<br />
| {{ic|1=$ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"}}<br />
|-<br />
| [[Anki]]<br />
|<br />
{{ic|~/Anki<br><br />
~/Documents/Anki}}<br />
|<br />
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]<br />
| {{ic|1=$ anki -b "$XDG_DATA_HOME"/Anki}}<br />
|-<br />
| [[aspell]]<br />
| {{ic|~/.aspell.conf}}<br />
|<br />
|<br />
| {{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"}}<br />
|-<br />
| [[Atom]]<br />
| {{ic|~/.atom}}<br />
|<br />
| [https://github.com/atom/atom/issues/8281]<br />
| {{ic|1=$ export ATOM_HOME="$XDG_DATA_HOME"/atom}}<br />
|-<br />
| {{Pkg|aws-cli}}<br />
| {{ic|~/.aws}}<br />
| [https://github.com/aws/aws-cli/commit/fc5961ea2cc0b5976ac9f777e20e4236fd7540f5 1.7.45]<br />
| [https://github.com/aws/aws-cli/issues/2433]<br />
|<br />
{{ic|1=$ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials<br><br />
$ export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config}}<br />
|-<br />
| {{Pkg|bash-completion}}<br />
| {{ic|~/.bash_completion}}<br />
|<br />
|<br />
| {{ic|1=$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion}}<br />
|-<br />
| [[bazaar]]<br />
|<br />
{{ic|~/.bazaar<br><br />
~/.bzr.log}}<br />
| [https://bugs.launchpad.net/bzr/+bug/195397/comments/15 2.3.0]<br />
| [https://bugs.launchpad.net/bzr/+bug/195397]<br />
| Discussion in upstream bug states that bazaar will use {{ic|~/.config/bazaar}} if it exists. The logfile {{ic|~/.bzr.log}} might still be written.<br />
|-<br />
| {{Aur|buchhaltung-git}}<br />
|<br />
{{ic|~/.buchhaltung}}<br />
|<br />
| [https://github.com/johannesgerer/buchhaltung/issues/44]<br />
| {{ic|1=$ export BUCHHALTUNG="$XDG_CONFIG_HOME"/buchhaltung}}<br />
|-<br />
| [[Ruby#Bundler]]<br />
| {{ic|~/.bundle}}<br />
|<br />
| [https://github.com/bundler/bundler/pull/6024] [https://github.com/bundler/bundler/issues/4333]<br />
| {{ic|1=$ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle}}<br />
|-<br />
| [[Rust#Cargo]]<br />
| {{ic|~/.cargo}}<br />
|<br />
| [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]<br />
| {{ic|1=$ export CARGO_HOME="$XDG_DATA_HOME"/cargo}}<br />
|-<br />
| [[ccache]]<br />
| {{ic|~/.ccache}}<br />
|<br />
|<br />
| {{ic|1=$ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config}}<br><br />
{{ic|1=$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache}}<br />
|-<br />
| {{AUR|chez-scheme}}<br />
| {{ic|~/.chezscheme_history}}<br />
|<br />
|<br />
| {{ic|1=$ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history}}<br />
|-<br />
| [[Chromium]]<br />
| {{ic|~/.chromium<br><br />
~/.pki}}<br />
| [https://src.chromium.org/viewvc/chrome?revision=23057&view=revision 23057]<br />
|<br />
[https://groups.google.com/forum/#!topic/chromium-dev/QekVQxF3nho]<br />
[https://code.google.com/p/chromium/issues/detail?id=16976]<br />
[https://bugs.chromium.org/p/chromium/issues/detail?id=1038587]<br />
|<br />
|-<br />
| [[conky]]<br />
| {{ic|~/.conkyrc}}<br />
| [https://github.com/brndnmtthws/conky/commit/00481ee9a97025e8e2acd7303d080af1948f7980 00481ee]<br />
| [https://github.com/brndnmtthws/conky/issues/144]<br />
| {{ic|1=$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc}}<br />
|-<br />
| {{Pkg|claws-mail}}<br />
| {{ic|~/.claws-mail}}<br />
|<br />
| [https://lists.claws-mail.org/pipermail/users/2013-April/006087.html]<br />
| {{ic|1=$ claws-mail --alternate-config-dir "$XDG_DATA_HOME"/claws-mail}}<br />
|-<br />
| [[coreutils]]<br />
| {{ic|~/.dircolors}}<br />
|<br />
|<br />
| {{ic|1=$ eval $(dircolors "$XDG_CONFIG_HOME"/dircolors)}}<br />
|-<br />
| [http://www.dungeoncrawl.org/ crawl]<br />
| {{ic|~/.crawl}}<br />
|<br />
|<br />
| The trailing slash is required:<br />
<br />
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}<br />
|-<br />
| {{Pkg|clusterssh}}<br />
| {{ic|~/.clusterssh/}}<br />
|<br />
|<br />
| {{ic|1=$ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'" }}<br />
{{hc|$XDG_CONFIG_HOME/clusterssh/config|2=<br />
extra_cluster_file=$HOME/.config/clusterssh/clusters<br />
extra_tag_file=$HOME/.config/clusterssh/tags<br />
}}<br />
Despite this, clusterssh will still create {{ic|~/.clusterssh/}}.<br />
|-<br />
| [[CUDA]]<br />
| {{ic|~/.nv}}<br />
|<br />
|<br />
| {{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}<br />
|-<br />
| [[dict]]<br />
| {{ic|~/.dictrc}}<br />
|<br />
|<br />
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}<br />
|-<br />
| [[Docker]]<br />
| {{ic|~/.docker}}<br />
|<br />
|<br />
| {{ic|1=$ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker}}<br />
|-<br />
| {{Pkg|docker-machine}}<br />
| {{ic|~/.docker/machine}}<br />
|<br />
|<br />
| {{ic|1=$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine}}<br />
|-<br />
| [[DOSBox]]<br />
| {{ic|~/.dosbox/dosbox-0.74-2.conf}}<br />
|<br />
| [https://www.vogons.org/viewtopic.php?t=29599]<br />
| {{ic|1=$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf}}<br />
|-<br />
| [https://electrum.org Electrum Bitcoin Wallet]<br />
| {{ic|~/.electrum}}<br />
| [https://github.com/spesmilo/electrum/commit/c121230 c121230]<br />
|<br />
| {{ic|1=$ export ELECTRUMDIR="$XDG_DATA_HOME/electrum"}}<br />
|-<br />
| [[ELinks]]<br />
| {{ic|~/.elinks}}<br />
|<br />
|<br />
| {{ic|1=$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks}}<br />
|-<br />
| {{Pkg|elixir}}<br />
| {{ic|~/.mix}}<br />
| [https://github.com/elixir-lang/elixir/commit/afaf889 afaf889]<br />
| [https://github.com/elixir-lang/elixir/issues/8818] [https://github.com/elixir-lang/elixir/pull/9937]<br />
| Elixir do not fully conform to XDG specs, it will use XDG only if the environment variables are present, otherwise it will by default use legacy path.<br />
|-<br />
| {{Pkg|emscripten}}<br />
|<br />
{{ic|~/.emscripten<br><br />
~/.emscripten_sanity<br><br />
~/.emscripten_ports<br><br />
~/.emscripten_cache__last_clear}}<br />
|<br />
| [https://github.com/kripken/emscripten/issues/3624]<br />
|<br />
{{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config<br><br />
$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache<br><br />
$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache<br><br />
$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache}}<br />
|-<br />
| {{AUR|freecad}}<br />
| {{ic|~/.FreeCAD}}<br />
|<br />
| [https://www.freecadweb.org/tracker/view.php?id=2956]<br />
| {{ic|1=$ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg}}<br />
<br />
Despite these options, {{AUR|freecad}} will still create the file {{ic|.FreeCAD/cookie}} as the web module has it [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Web/Gui/CookieJar.cpp#L55 hard coded]<br />
|-<br />
| [[GDB]]<br />
| {{ic|~/.gdbinit}}<br />
|<br />
|<br />
| {{ic|1=$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init}}<br />
|-<br />
| {{AUR|get_iplayer}}<br />
| {{ic|~/.get_iplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}<br />
|-<br />
| [[getmail]]<br />
| {{ic|~/.getmail/getmailrc}}<br />
|<br />
|<br />
| {{ic|1=$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"}}<br />
|-<br />
| {{AUR|gliv}}<br />
| {{ic|~/.glivrc}}<br />
|<br />
|<br />
| {{ic|1=$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc}}<br />
|-<br />
| [[GNURadio]]<br />
| {{ic|~/.gnuradio}}<br />
| <br />
| [https://github.com/gnuradio/gnuradio/issues/3631]<br />
|<br />
|-<br />
| [[GnuPG]]<br />
| {{ic|~/.gnupg}}<br />
|<br />
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]<br />
|<br />
{{ic|1=$ export GNUPGHOME="$XDG_DATA_HOME"/gnupg<br><br />
$ gpg2 --homedir "$XDG_DATA_HOME"/gnupg}}<br><br />
Note that this currently does not work out-of-the-box using systemd user units and socket-based activation, since<br />
the socket directory changes based on the hash of {{ic|$GNUPGHOME}}. You can get the new socket directory using {{ic|gpgconf --dry-run --create-socketdir}},<br />
and have to modify the systemd user units to listen on the correct sockets accordingly.<br />
|-<br />
| [[Go]]<br />
| {{ic|~/go}}<br />
| [https://github.com/golang/go/commit/ca8a055f5cc7c1dfa0eb542c60071c7a24350f76]<br />
|<br />
|<br />
{{ic|1=$ export GOPATH="$XDG_DATA_HOME"/go}}<br />
|-<br />
| [[Google Earth]]<br />
| {{ic|~/.googleearth}}<br />
|<br />
|<br />
| Some paths can be changed with the {{ic|KMLPath}} and {{ic|CachePath}} options in {{ic|~/.config/Google/GoogleEarthPlus.conf}}<br />
|-<br />
| {{Pkg|gopass}}<br />
| {{ic|~/.password-store}}<br />
|<br />
|<br />
| Override settings in {{ic|~/.config/gopass/config.yml}}:<br />
{{hc|~/.config/gopass/config.yml|<br />
root:<br />
path: gpgcli-gitcli-fs+file:///home/<userid>/.config/password-store<br />
}}<br />
|-<br />
| [https://sourceforge.net/projects/gqclient GQ LDAP client]<br />
|<br />
{{ic|~/.gq<br><br />
~/.gq-state}}<br />
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]<br />
|<br />
|<br />
{{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc<br><br />
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state<br><br />
$ mkdir -p "$(dirname "$GQSTATE")"}}<br />
|-<br />
| [[Gradle]]<br />
| {{ic|~/.gradle}}<br />
|<br />
| [https://discuss.gradle.org/t/be-a-nice-freedesktop-citizen-move-the-gradle-to-the-appropriate-location-in-linux/2199]<br />
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}<br />
|-<br />
| [[GTK]] 1<br />
| {{ic|~/.gtkrc}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc}}<br />
|-<br />
| [[GTK]] 2<br />
| {{ic|~/.gtkrc-2.0}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc}}<br />
|-<br />
| {{Pkg|hledger}}<br />
| {{ic|~/.hledger.journal}}<br />
|<br />
| [https://github.com/simonmichael/hledger/issues/1081]<br />
| {{ic|1=$ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal}}<br />
|-<br />
| {{AUR|imapfilter}}<br />
| {{ic|~/.imapfilter}}<br />
|<br />
|<br />
| {{ic|1=$ export IMAPFILTER_HOME="$XDG_CONFIG_HOME/imapfilter"}}<br />
|-<br />
| [http://ipython.org ipython]/[[jupyter]]<br />
| {{ic|~/.ipython}}<br />
|<br />
| [https://github.com/ipython/ipython/pull/4457 won't fix],[https://github.com/ipython/ipython/issues/12431 won't fix]<br />
|<br />
{{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter<br><br />
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}<br />
|-<br />
| [https://ruby-doc.org/stdlib/libdoc/irb/rdoc/IRB.html irb]<br />
| {{ic|~/.irbrc}}<br />
|<br />
|<br />
| {{hc|1=~/.profile|2=$ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc}}<br />
{{hc|1="$XDG_CONFIG_HOME"/irb/irbrc|2=IRB.conf[:SAVE_HISTORY] {{!}}{{!}}= 1000<br />
IRB.conf[:HISTORY_FILE] {{!}}{{!}}= File.join(ENV["XDG_DATA_HOME"], "irb", "history")}}<br />
|-<br />
| [[irssi]]<br />
| {{ic|~/.irssi}}<br />
|<br />
| [https://github.com/irssi/irssi/pull/511]<br />
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi}}<br />
|-<br />
| [[isync]]<br />
| {{ic|~/.mbsyncrc}}<br />
|<br />
|<br />
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}<br />
|-<br />
| [[Java#OpenJDK]]<br />
| {{ic|~/.java/.userPrefs}}<br />
|<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]<br />
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}<br />
|-<br />
| [[KDE]]<br />
| {{ic|~/.kde}}<br />
|<br />
| [https://userbase.kde.org/KDE_System_Administration/KDE_Filesystem_Hierarchy#KDEHOME]<br />
| {{ic|1=$ export KDEHOME="$XDG_CONFIG_HOME"/kde}}<br />
|-<br />
| [[ledger]]<br />
| {{ic|~/.ledgerrc}}, {{ic|~/.pricedb}}<br />
|<br />
| [https://github.com/ledger/ledger/issues/1820]<br />
| {{ic|1=$ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc}}<br />
|-<br />
| [[Core utilities|less]]<br />
| {{ic|~/.lesshst}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less<br><br />
$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey<br><br />
$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}<br />
<br />
{{ic|1=$ export LESSHISTFILE=-}} can be used to disable this feature.<br />
|-<br />
| {{Pkg|libdvdcss}}<br />
| {{ic|~/.dvdcss}}<br />
|<br />
| [https://mailman.videolan.org/pipermail/libdvdcss-devel/2014-August/001022.html]<br />
| {{ic|1=$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss}}<br />
|-<br />
| {{Pkg|libice}}<br />
| {{ic|~/.ICEauthority}}<br />
|<br />
| [https://gitlab.freedesktop.org/xorg/lib/libice/issues/2]<br />
| {{ic|1=$ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority}}<br />
Make sure {{ic|XDG_CACHE_HOME}} is set beforehand to directory user running [[Xorg]] has write access to.<br />
<br />
'''Do not''' use {{ic|XDG_RUNTIME_DIR}} as it is available '''after''' login. Display managers that launch [[Xorg]] (like [[GDM]]) will repeatedly fail otherwise.<br />
|-<br />
| [[Xorg|libx11]]<br />
|<br />
{{ic|~/.XCompose<br><br />
~/.compose-cache}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose<br><br />
$ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose}}<br />
|-<br />
| {{Pkg|ltrace}}<br />
| {{ic|~/.ltrace.conf}}<br />
|<br />
|<br />
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}<br />
|-<br />
| {{Pkg|maven}}<br />
| {{ic|~/.m2}}<br />
|<br />
| [https://issues.apache.org/jira/browse/MNG-6603]<br />
| {{ic|1=$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml}} and set {{ic|<localRepository>}} as appropriate in [http://maven.apache.org/settings.html#Simple_Values settings.xml]<br />
|-<br />
| [[Mathematica]]<br />
| {{ic|~/.Mathematica}}<br />
|<br />
|<br />
| {{ic|1=$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica}}<br />
|-<br />
| {{Pkg|maxima}}<br />
| {{ic|~/.maxima}}<br />
|<br />
|<br />
| {{ic|1=$ export MAXIMA_USERDIR="$XDG_CONFIG_HOME"/maxima}}<br />
|-<br />
| {{Pkg|mednafen}}<br />
| {{ic|~/.mednafen}}<br />
|<br />
|<br />
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}<br />
|-<br />
| {{Pkg|mitmproxy}}<br />
| {{ic|~/.mitmproxy}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ alias mitmproxy="mitmproxy --set confdir=$XDG_CONFIG_HOME/mitmproxy"<br><br />
$ alias mitmweb="mitmweb --set confdir=$XDG_CONFIG_HOME/mitmproxy"}}<br />
|-<br />
| [[MOC]]<br />
| {{ic|~/.moc}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc<br><br />
$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}<br />
|-<br />
| {{Pkg|monero}}<br />
| {{ic|~/.bitmonero}}<br />
|<br />
|<br />
| {{ic|1=$ monerod --data-dir "$XDG_DATA_HOME"/bitmonero}}<br />
|-<br />
| {{Pkg|most}}<br />
| {{ic|~/.mostrc}}<br />
|<br />
|<br />
| {{ic|1=$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc}}<br />
|-<br />
| [[MPlayer]]<br />
| {{ic|~/.mplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer}}<br />
|-<br />
| [[MySQL]]<br />
| {{ic|~/.mysql_history}}<br />
|<br />
|<br />
| {{ic|1=$ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history}}<br />
|-<br />
| {{Pkg|ncurses}}<br />
| {{ic|~/.terminfo}}<br />
|<br />
|<br />
| Precludes system path searching:<br />
<br />
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo<br><br />
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}<br />
|-<br />
| {{Pkg|ncmpc}}<br />
| {{ic|~/.ncmpc}}<br />
|<br />
|<br />
| {{ic|ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config}}<br />
|-<br />
| [[Netbeans]]<br />
| {{ic|~/.netbeans}}<br />
|<br />
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]<br />
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}<br />
|-<br />
| [[Node.js]]<br />
| {{ic|~/.node_repl_history}}<br />
|<br />
|<br />
| {{ic|1=$ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history}} [https://nodejs.org/api/repl.html#repl_environment_variable_options]<br />
|-<br />
| [[notmuch]]<br />
| {{ic|~/.notmuch-config}}<br />
|<br />
| [http://notmuchmail.org/pipermail/notmuch/2011/007007.html]<br />
|<br />
{{ic|1=$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc<br><br />
$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}<br />
|-<br />
| {{Pkg|npm}}<br />
|<br />
{{ic|~/.npm<br><br />
~/.npmrc}}<br />
|<br />
| [https://github.com/npm/cli/issues/654]<br />
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}<br />
{{hc|npmrc|<nowiki><br />
prefix=${XDG_DATA_HOME}/npm<br />
cache=${XDG_CACHE_HOME}/npm<br />
tmp=${XDG_RUNTIME_DIR}/npm<br />
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js<br />
</nowiki>}}<br />
{{ic|prefix}} is unnecessary (and unsupported) if Node.js is installed by {{AUR|nvm}}.<br />
|-<br />
| {{Pkg|nuget}}<br />
| {{ic|~/.nuget/packages}}<br />
|<br />
| [https://docs.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders]<br />
| {{ic|1=$ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages}}<br />
|-<br />
| [[NVIDIA]]<br />
| {{ic|~/.nv}}<br />
|<br />
|<br />
| Uses {{ic|XDG_CACHE_HOME}} if set, otherwise improperly falls back to {{ic|~/.nv}} instead of {{ic|~/.cache}}.<br />
|-<br />
| {{Pkg|nvidia-settings}}<br />
| {{ic|~/.nvidia-settings-rc}}<br />
|<br />
|<br />
| {{ic|1=$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings}}<br />
|-<br />
| {{AUR|nvm}}<br />
| {{ic|~/.nvm}}<br />
|<br />
|<br />
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}<br />
|-<br />
| [[Octave]]<br />
|<br />
{{ic|~/octave<br><br />
~/.octave_packages<br><br />
~/.octave_hist}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"<br><br />
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"}}<br />
<br />
{{hc|$XDG_CONFIG_HOME/octave/octaverc|<nowiki><br />
source /usr/share/octave/site/m/startup/octaverc;<br />
pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;<br />
pkg local_list /home/<your username>/.local/share/octave/octave_packages;<br />
</nowiki>}}<br />
The {{ic|local_list}} option must be given an absolute path.<br />
|-<br />
| {{Pkg|openscad}}<br />
| {{ic|~/.OpenSCAD}}<br />
| [https://github.com/openscad/openscad/commit/7c3077b0f 7c3077b0f]<br />
| [https://github.com/openscad/openscad/issues/125]<br />
| Does not fully honour XDG Base Directory Specification, see [https://github.com/openscad/openscad/issues/373]<br />
<br />
Currently it [https://github.com/openscad/openscad/blob/master/src/PlatformUtils-posix.cc#L20 hard-codes] {{ic|~/.local/share}}.<br />
|-<br />
| [[OpenSSL]]<br />
| {{ic|~/.rnd}}<br />
|<br />
|<br />
| Seeding file {{ic|.rnd}}'s location can be set with {{ic|RANDFILE}} environment variable per [https://www.openssl.org/docs/faq.html FAQ].<br />
|-<br />
| {{Pkg|parallel}}<br />
| {{ic|~/.parallel}}<br />
| [https://git.savannah.gnu.org/cgit/parallel.git/commit/?id=685018f532f4e2d24b84eb28d5de3d759f0d1af1 20170422]<br />
|<br />
| {{ic|1=$ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel}}<br />
|-<br />
| [[pass]]<br />
| {{ic|~/.password-store}}<br />
|<br />
|<br />
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}<br />
|-<br />
| [[Pidgin]]<br />
| {{ic|~/.purple}}<br />
|<br />
| [https://developer.pidgin.im/ticket/4911]<br />
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}<br />
|-<br />
| [[PostgreSQL]]<br />
|<br />
{{ic|~/.psqlrc<br><br />
~/.psql_history<br><br />
~/.pgpass<br><br />
~/.pg_service.conf}}<br />
| 9.2<br />
| [https://www.postgresql.org/docs/current/static/app-psql.html] [https://www.postgresql.org/docs/current/static/libpq-envars.html]<br />
|<br />
{{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"<br><br />
$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"<br><br />
$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"<br><br />
$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"}}<br />
<br />
It is required to create both directories: {{ic|1=$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"}}<br />
|-<br />
| [[PulseAudio]]<br />
| {{ic|~/.esd_auth}}<br />
|<br />
|<br />
| Very likely generated by the {{ic|module-esound-protocol-unix.so}} module. It can be configured to use a different location but it makes much more sense to just comment out this module in {{ic|/etc/pulse/default.pa}} or {{ic|"$XDG_CONFIG_HOME"/pulse/default.pa}}.<br />
|-<br />
| {{aur|python-azure-cli}}<br />
| {{ic|~/.azure}}<br />
|<br />
|<br />
| {{ic|1=$ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure}}<br />
|-<br />
| {{AUR|python-grip}}<br />
| {{ic|~/.grip}}<br />
|<br />
|<br />
| {{ic|1=$ export GRIPHOME="$XDG_CONFIG_HOME/grip"}}<br />
|-<br />
| {{Pkg|python-setuptools}}<br />
| {{ic|~/.python-eggs}}<br />
|<br />
|<br />
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}<br />
|-<br />
| {{Pkg|python-pylint}}<br />
| {{ic|~/.pylint.d}}<br />
|<br />
| [https://github.com/PyCQA/pylint/issues/1364 won't fix]<br />
| {{ic|1=$ export PYLINTHOME="$XDG_CACHE_HOME"/pylint}}<br />
|-<br />
| {{Pkg|racket}}<br />
| {{ic|~/.racketrc<br><br />
~/.racket}}<br />
|<br />
| [https://github.com/racket/racket/issues/2740]<br />
| {{ic|1=$ export PLTUSERHOME="$XDG_DATA_HOME"/racket}}<br />
|-<br />
| [[readline]]<br />
| {{ic|~/.inputrc}}<br />
|<br />
|<br />
| {{ic|1=$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc}}<br />
|-<br />
| {{Pkg|rlwrap}}<br />
| {{ic|~/.*_history}}<br />
|<br />
| [https://github.com/hanslub42/rlwrap/issues/25]<br />
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}<br />
|-<br />
| [[Ruby#RubyGems]]<br />
| {{ic|~/.gem}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export GEM_HOME="$XDG_DATA_HOME"/gem<br><br />
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem}}<br />
<br />
Make sure to remove {{ic|gem: --user-install}} from {{ic|/etc/gemrc}}<br />
|-<br />
| [[Rust#Rustup]]<br />
| {{ic|~/.rustup}}<br />
|<br />
| [https://github.com/rust-lang-nursery/rustup.rs/issues/247]<br />
| {{ic|1=$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup}}<br />
|-<br />
| {{Pkg|sbt}}<br />
| {{ic|~/.sbt}}<br />
{{ic|~/.ivy2}}<br />
|<br />
| [https://github.com/sbt/sbt/issues/3681]<br />
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}} (beware [https://github.com/sbt/sbt/issues/3598])<br />
|-<br />
| [[SageMath]]<br />
| {{ic|~/.sage}}<br />
|<br />
|<br />
| {{ic|1=$ export DOT_SAGE="$XDG_CONFIG_HOME"/sage}}<br />
|-<br />
| [[GNU Screen]]<br />
| {{ic|~/.screenrc}}<br />
|<br />
|<br />
| {{ic|1=$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc}}<br />
|-<br />
| [https://spacemacs.org/ spacemacs]<br />
|<br />
{{ic|~/.spacemacs<br><br />
~/.spacemacs.d}}<br />
| [https://github.com/syl20bnr/spacemacs/commit/e1eed07c30ea395fb9cfebc8ec3376dcffbace11]<br />
| [https://github.com/syl20bnr/spacemacs/issues/3589]<br />
| Move the {{ic|~/.spacemacs}} file.<br />
<br />
{{ic|1=$ export SPACEMACSDIR="$XDG_CONFIG_HOME"/spacemacs<br><br />
$ mv ~/.spacemacs "$SPACEMACSDIR"/init.el}}<br />
<br />
Other files need to be configured like Emacs.<br />
|-<br />
| [[Haskell#Stack]]<br />
| {{ic|~/.stack}}<br />
|<br />
| [https://github.com/commercialhaskell/stack/issues/342]<br />
| {{ic|1=$ export STACK_ROOT="$XDG_DATA_HOME"/stack}}<br />
|-<br />
| [[subversion]]<br />
| {{ic|~/.subversion}}<br />
|<br />
| [https://issues.apache.org/jira/browse/SVN-4599] [https://mail-archives.apache.org/mod_mbox/subversion-users/201204.mbox/%3c4F8FBCC6.4080205@ritsuka.org%3e][http://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3c20150917222954.GA20331@teapot%3e]<br />
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}<br />
|-<br />
| {{Pkg|task}}<br />
|<br />
{{ic|~/.task<br><br />
~/.taskrc}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task<br><br />
$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}<br />
|-<br />
| {{AUR|tiptop}}<br />
| {{ic|~/.tiptoprc}}<br />
|<br />
|<br />
| This will still expect the {{ic|.tiptoprc}} file.<br />
{{ic|$ tiptop -W "$XDG_CONFIG_HOME"/tiptop}}<br />
|-<br />
| {{Pkg|uncrustify}}<br />
| {{ic|~/.uncrustify.cfg}}<br />
|<br />
|<br />
| {{ic|1=$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg}}<br />
|-<br />
| [[Unison]]<br />
| {{ic|~/.unison}}<br />
|<br />
|<br />
| {{ic|1=$ export UNISON="$XDG_DATA_HOME"/unison}}<br />
|-<br />
| [[Rxvt-unicode/Tips_and_tricks#Daemon-client|urxvtd]]<br />
| {{ic|~/.urxvt/urxvtd-hostname}}<br />
|<br />
|<br />
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd}}<br />
|-<br />
| [[Vagrant]]<br />
|<br />
{{ic|~/.vagrant.d<br><br />
~/.vagrant.d/aliases}}<br />
|<br />
| [https://www.vagrantup.com/docs/other/environmental-variables.html]<br />
|<br />
{{ic|1=$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant<br><br />
$ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases}}<br />
|-<br />
| [[Visual Studio Code]]<br />
| {{ic|~/.vscode-oss/argv.json}}<br />
|<br />
| [https://github.com/Microsoft/vscode/issues/3884]<br />
| You can use {{ic|1=$ export VSCODE_PORTABLE="$XDG_DATA_HOME"/vscode}}, which is not documented and might break unexpectedly<br />
|-<br />
| [[AUR|WakaTime]]<br />
|<br />
{{ic|~/.wakatime.cfg<br><br />
~/.wakatime.data<br><br />
~/.wakatime.db<br><br />
~/.wakatime.log}}<br />
|<br />
|<br />
| {{ic|1=$ export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"}}<br />
<br />
The directory needs to be created manually:<br><br />
{{ic|1=$ mkdir "$XDG_CONFIG_HOME/wakatime"}}<br />
|-<br />
| [[WeeChat]]<br />
| {{ic|~/.weechat}}<br />
|<br />
| [http://savannah.nongnu.org/task/?10934] [https://github.com/ipython/ipython/pull/4457]<br />
|<br />
{{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat<br><br />
$ weechat -d "$XDG_CONFIG_HOME"/weechat}}<br />
|-<br />
| [[wget]]<br />
|<br />
{{ic|~/.wgetrc<br><br />
~/.wget-hsts}}<br />
|<br />
|<br />
|<br />
{{ic|1=$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"<br><br />
and add the following as an alias for wget:<br><br />
$ wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"<br><br />
or set the hsts-file variable with an absolute path as wgetrc does not support environment variables:<br><br />
$ echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"}}<br />
|-<br />
| [[wine]]<br />
| {{ic|~/.wine}}<br />
|<br />
| [https://bugs.winehq.org/show_bug.cgi?id=20888]<br />
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes<br><br />
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}<br />
|-<br />
| [[xbindkeys]]<br />
| {{ic|~/.xbindkeysrc}}<br />
|<br />
|<br />
| {{ic|1=$ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config}}<br />
|-<br />
| {{Pkg|xorg-xauth}}<br />
| {{ic|~/.Xauthority}}<br />
|<br />
|<br />
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}<br />
<br />
Note that [[LightDM]] does not allow you to change this variable. If you change it nonetheless, you will not be able to login. Use [[startx]] instead or [https://askubuntu.com/a/961459 configure LightDM]. According to [https://unix.stackexchange.com/a/175331] [[SLiM]] has {{ic|~/.Xauthority}} hardcoded.<br />
|-<br />
| [[xinit]]<br />
|<br />
{{ic|~/.xinitrc<br><br />
~/.xserverrc}}<br />
|<br />
| [https://gitlab.freedesktop.org/xorg/app/xinit/issues/14]<br />
|<br />
{{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc<br><br />
$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}<br />
<br />
Note that these variables are respected by ''xinit'', but not by ''startx''. Instead, specify the filename as an argument:<br />
<br />
{{ic|1=$ startx "$XDG_CONFIG_HOME/X11/xinitrc" -- "$XDG_CONFIG_HOME/X11/xserverrc" vt1}}<br />
|-<br />
| {{Pkg|xorg-xrdb}}<br />
|<br />
{{ic|~/.Xresources<br><br />
~/.Xdefaults}}<br />
|<br />
|<br />
| Ultimately you [https://superuser.com/questions/243914/xresources-or-xdefaults should be] using {{ic|Xresources}} and since these resources are loaded via {{ic|xrdb}} you can specify a path such as {{ic|1=$ xrdb -load ~/.config/X11/xresources}}.<br />
|-<br />
| {{Pkg|z}}<br />
|<br />
{{ic|~/.z}}<br />
|<br />
| [https://github.com/rupa/z/issues/267]<br />
| {{ic|1=$ export _Z_DATA="$XDG_DATA_HOME/z"}}<br />
|-<br />
| {{Pkg|yarn}}<br />
|<br />
{{ic|~/.yarnrc<br><br />
~/.yarn/<br><br />
~/.yarncache/<br><br />
~/.yarn-config/}}<br />
| [https://github.com/yarnpkg/yarn/commit/2d454b5 2d454b5]<br />
| [https://github.com/yarnpkg/yarn/pull/5336] [https://github.com/yarnpkg/yarn/issues/2334]<br />
| {{ic|1=$ alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config"}}<br />
|-<br />
|}<br />
<br />
=== Hardcoded ===<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Discussion<br />
! Notes<br />
|-<br />
| [[adb]]<br />
| {{ic|~/.android/}}<br />
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]<br />
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}<br />
{{ic|1=$ export ANDROID_AVD_HOME="$XDG_DATA_HOME"/android/}}<br />
{{ic|1=$ export ANDROID_EMULATOR_HOME="$XDG_DATA_HOME"/android/}}<br />
{{ic|1=$ export ADB_VENDOR_KEY="$XDG_CONFIG_HOME"/android}}<br />
|-<br />
| [[Ansible]]<br />
| {{ic|~/.ansible}}<br />
| [https://github.com/ansible/ansible/issues/52354]<br />
|<br />
<br />
|-<br />
| [[AMule]]<br />
| {{ic|~/.aMule}}<br />
|<br />
|<br />
<br />
|-<br />
| [https://developer.android.com/studio/index.html Android Studio]<br />
|<br />
{{ic|~/.AndroidStudio2.3<br><br />
~/.android/<br><br />
~/.java/}}<br />
|<br />
|<br />
|-<br />
| [https://osdn.net/projects/anthy/ anthy]<br />
| {{ic|~/.anthy}}<br />
| [https://osdn.net/ticket/browse.php?group_id=14&tid=28397]<br />
|<br />
|-<br />
| [https://directory.apache.org/studio/ Apache Directory Studio]<br />
| {{ic|~/.ApacheDirectoryStudio}}<br />
|<br />
|<br />
|-<br />
| [https://christian.amsuess.com/tools/arandr/ ARandR]<br />
| {{ic|~/.screenlayout}}<br />
|<br />
|<br />
|-<br />
| [[Arduino]]<br />
|<br />
{{ic|~/.arduino15<br><br />
~/.jssc}}<br />
| [https://github.com/arduino/Arduino/issues/3915 won't fix]<br />
| [https://github.com/arduino/Arduino/issues/10486]<br />
|<br />
<br />
|-<br />
| [https://www.audacityteam.org/ Audacity]<br />
| {{ic|~/.audacity-data/}}<br />
| [https://bugzilla.audacityteam.org/show_bug.cgi?id=2201]<br />
|<br />
<br />
|-<br />
| [http://fixounet.free.fr/avidemux/ Avidemux]<br />
| {{ic|~/.avidemux6}}<br />
|<br />
|<br />
<br />
|-<br />
| [[Bash]]<br />
|<br />
{{ic|~/.bashrc<br><br />
~/.bash_history<br><br />
~/.bash_profile<br><br />
~/.bash_login<br><br />
~/.bash_logout}}<br />
| [https://savannah.gnu.org/support/?108134 won't fix]<br />
| {{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}<br />
A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bash.bashrc}}.<br />
<br />
Specify {{ic|--init-file <file>}} as an alternative to {{ic|~/.bashrc}} for interactive shells.<br />
|-<br />
| [https://www.haskell.org/cabal/ cabal]<br />
| {{ic|~/.cabal/}}<br />
| [https://github.com/haskell/cabal/issues/680]<br />
| See discussion for potential workarounds. It is not very easy or straightforward but may be possible to emulate Base Directory compliance.<br />
|-<br />
| {{AUR|chatty}}<br />
| {{ic|~/.chatty/}}<br />
| [https://github.com/chatty/chatty/issues/273]<br />
|<br />
|-<br />
| {{Pkg|cmake}}<br />
| {{ic|~/.cmake/}}<br />
|<br />
| 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].<br />
|-<br />
| [[Cinnamon]]<br />
| {{ic|~/.cinnamon/}}<br />
| [https://github.com/linuxmint/Cinnamon/issues/7807]<br />
|<br />
|-<br />
| {{AUR|cryptomator}}<br />
| {{ic|~/.Cryptomator}}<br />
| [https://github.com/cryptomator/cryptomator/issues/710]<br />
|<br />
|-<br />
| [[CUPS]]<br />
| {{ic|~/.cups/}}<br />
| [https://github.com/apple/cups/issues/4243 won't fix]<br />
|<br />
|-<br />
| [[darcs]]<br />
| {{ic|~/.darcs/}}<br />
| [http://bugs.darcs.net/issue2453]<br />
|<br />
|-<br />
| [[dbus]]<br />
| {{ic|~/.dbus/}}<br />
| [https://gitlab.freedesktop.org/dbus/dbus/issues/46]<br />
| Consider using {{pkg|dbus-broker}}, as it does not create or use this directory.<br />
|-<br />
| {{Pkg|devede}}<br />
| {{ic|~/.devedeng}}<br />
|<br />
| Hardcoded [https://gitlab.com/rastersoft/devedeng/blob/f0893b3ff7b14723bd148db35bdfe2d284156d19/src/devedeng/configuration_data.py#L111 here]<br />
|-<br />
| [https://wiki.gnome.org/Apps/Dia Dia]<br />
| {{ic|~/.dia/}}<br />
|<br />
|<br />
|-<br />
| {{Pkg|dotnet-sdk}}<br />
| {{ic|~/.dotnet/}}<br />
| [https://github.com/dotnet/cli/issues/7569]<br />
|<br />
|-<br />
| [[Eclipse]]<br />
| {{ic|~/.eclipse/}}<br />
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]<br />
| 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}})<br />
|-<br />
| [http://www.fetchmail.info/ Fetchmail]<br />
| {{ic|~/.fetchmailrc}}<br />
|<br />
|<br />
|-<br />
| [[Firefox]]<br />
| {{ic|~/.mozilla/}}<br />
| [https://bugzil.la/259356]<br />
|<br />
|-<br />
| [[Flatpak]]<br />
| {{ic|~/.var/}}<br />
| [https://github.com/flatpak/flatpak/issues/46] [https://github.com/flatpak/flatpak.github.io/issues/191] [https://github.com/flatpak/flatpak/issues/1651 won't fix]<br />
|<br />
|-<br />
| {{Pkg|fltk}}<br />
| {{ic|~/.fltk/}}<br />
| [https://www.fltk.org/str.php?L3370+P0+S0+C0+I0+E0+V%25+Qxdg]<br />
|<br />
|-<br />
| {{Pkg|gftp}}<br />
| {{ic|~/.gftp/}}<br />
| <br />
|<br />
|-<br />
| [https://www.haskell.org/ghc/ GHC]<br />
| {{ic|~/.ghc}}<br />
| [https://ghc.haskell.org/trac/ghc/ticket/6077]<br />
|<br />
|-<br />
| {{Pkg|ghidra}}<br />
|<br />
| [https://github.com/NationalSecurityAgency/ghidra/issues/908]<br />
|<br />
|-<br />
| [[GoldenDict]]<br />
| {{ic|~/.goldendict/}}<br />
| [https://github.com/goldendict/goldendict/issues/151]<br />
|<br />
|-<br />
| {{Pkg|gramps}}<br />
| {{ic|~/.gramps/}}<br />
| [https://gramps-project.org/bugs/view.php?id=8025]<br />
|<br />
|-<br />
| {{Pkg|grsync}}<br />
| {{ic|~/.grsync/}}<br />
| [https://sourceforge.net/p/grsync/feature-requests/15/]<br />
|<br />
|-<br />
| [http://recordmydesktop.sourceforge.net/about.php gtk-recordMyDesktop]<br />
| {{ic|~/.gtk-recordmydesktop}}<br />
|<br />
|<br />
|-<br />
| {{AUR|kite}}<br />
| {{ic|~/.kite/}}<br />
| [https://github.com/kiteco/issue-tracker/issues/242]<br />
|<br />
|-<br />
| {{Pkg|hplip}}<br />
| {{ic|~/.hplip/}}<br />
| [https://bugs.launchpad.net/hplip/+bug/307152]<br />
|<br />
|-<br />
| [http://www.idris-lang.org/ idris]<br />
| {{ic|~/.idris}}<br />
| [https://github.com/idris-lang/Idris-dev/pull/3456]<br />
|<br />
|-<br />
| [[Java]] OpenJDK<br />
| {{ic|~/.java/fonts}}<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=1154277]<br />
| {{ic|1=$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java}}<br />
|-<br />
| [[Java]] OpenJFX<br />
| {{ic|~/.java/webview}}<br />
|<br />
|<br />
|-<br />
| [http://julialang.org/ julia]<br />
|<br />
{{ic|~/.juliarc.jl<br><br />
~/.julia_history}}<br />
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]<br />
|<br />
|-<br />
| [http://www.linux-pam.org/ Linux PAM]<br />
| {{ic|~/.pam_environment}}<br />
| [https://github.com/linux-pam/linux-pam/issues/7]<br />
| Hardcoded in [https://github.com/linux-pam/linux-pam/blob/master/modules/pam_env/pam_env.c modules/pam_env/pam_env.c]<br />
|-<br />
| [http://lldb.llvm.org/ lldb]<br />
|<br />
{{ic|~/.lldb<br><br />
~/.lldbinit}}<br />
|<br />
|<br />
|-<br />
| [http://www.mathomatic.org/ mathomatic]<br />
|<br />
{{ic|~/.mathomaticrc<br><br />
~/.matho_history}}<br />
|<br />
| History can be moved by using {{ic|rlwrap mathomatic -r}} with the {{ic|RLWRAP_HOME}} environment set appropriately.<br />
|-<br />
| [[Minecraft]]<br />
| {{ic|~/.minecraft/}}<br />
| [https://bugs.mojang.com/browse/MCL-2563]<br />
|<br />
|-<br />
| [[Minetest]]<br />
| {{ic|~/.minetest/}}<br />
| [https://github.com/minetest/minetest/issues/864 won't fix] [https://github.com/minetest/minetest/issues/8151]<br />
|<br />
|-<br />
| {{Pkg|minicom}}<br />
| {{ic|~/.minirc.dfl}}<br />
| <br />
| Upstream has a TODO entry for supporting configuration files under {{ic|~/.config/minicom}}. [https://salsa.debian.org/minicom-team/minicom/-/blob/fe9ff103/TODO#L27]<br />
|-<br />
| [https://www.mongodb.org/ mongodb]<br />
|<br />
{{ic|~/.mongorc.js<br><br />
~/.dbshell}}<br />
| [https://jira.mongodb.org/browse/DOCS-5652?jql=text%20~%20%22.mongorc.js%22]<br />
| [https://stackoverflow.com/questions/22348604/the-mongorc-js-is-not-found-but-there-is-one/22349050#22349050 This Stack Overflow thread] suggests a partial workaround using command-line switch {{ic|--norc}}.<br />
|-<br />
| [http://0ldsk00l.ca/nestopia/ Nestopia UE]<br />
| {{ic|~/.nestopia/}}<br />
| [https://github.com/0ldsk00l/nestopia/pull/292 won't fix]<br />
|<br />
|-<br />
|<br />
| {{ic|~/.netrc}}<br />
|<br />
| 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.<br />
|-<br />
| [[Networkmanager-openvpn]]<br />
| {{ic|~/.cert/nm-openvpn}}<br />
| [https://gitlab.gnome.org/GNOME/NetworkManager-openvpn/issues/35]<br />
|<br />
|-<br />
| [[OpenSSH]]<br />
| {{ic|~/.ssh}}<br />
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050 won't fix]<br />
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.<br />
|-<br />
| [https://www.palemoon.org/ palemoon]<br />
| {{ic|~/.moonchild productions}}<br />
| [https://forum.palemoon.org/viewtopic.php?f=5&t=9639]<br />
|<br />
|-<br />
| {{AUR|parsec-bin}}<br />
| {{ic|~/.parsec}}<br />
|<br />
|<br />
|-<br />
| [[PCManFM]]<br />
| {{ic|~/.thumbnails}}<br />
| [https://github.com/lxde/libfm/issues/57]<br />
|<br />
|-<br />
| {{AUR|pcsxr}}<br />
| {{ic|~/.pcsxr}}<br />
|<br />
| A {{ic|-cfg}} flag exists, but can only be set relative to {{ic|~/.pcsxr}}.<br />
|-<br />
| [https://perf.wiki.kernel.org/index.php/Main_Page perf]<br />
| {{ic|~/.debug}}<br />
|<br />
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L29 tools/perf/util/config.c:29].<br />
|-<br />
| [[perl]]<br />
| {{ic|~/.cpan}}<br />
|<br />
| Perl5's [https://github.com/andk/cpanpm CPAN] expects {{ic|~/.cpan}}.<br />
|-<br />
| various [[shell]]s and [[display manager]]s<br />
| {{ic|~/.profile}}<br />
|<br />
|<br />
|-<br />
| [[python]]<br />
| {{ic|~/.python_history}}<br />
| [https://bugs.python.org/issue29779]<br />
| All history from interactive sessions is saved to {{ic|~/.python_history}} by default since [https://bugs.python.org/issue5845 version 3.4], custom path can still be set the same way as in older versions (see [https://docs.python.org/3/library/readline.html?highlight=readline#example this example]).<br />
|-<br />
| {{Pkg|python-poetry}}<br />
| {{ic|~/.poetry}}<br />
| [https://github.com/python-poetry/poetry/issues/2148]<br />
| {{ic|POETRY_HOME}} can be used but it does not separate data and config.<br />
|-<br />
| {{Pkg|python-tensorflow}}<br />
| {{ic|~/.keras}}<br />
| [https://github.com/tensorflow/tensorflow/issues/38831]<br />
| The issues is for {{ic|tf.keras}} module<br />
|-<br />
| [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer]<br />
| {{ic|~/.designer}}<br />
|<br />
|<br />
|-<br />
| [http://rednotebook.sourceforge.net/ RedNotebook]<br />
| {{ic|~/.rednotebook}}<br />
|<br />
|<br />
|-<br />
| [https://remarkableapp.github.io/linux.html Remarkable]<br />
| {{ic|~/.remarkable}}<br />
|<br />
|<br />
|-<br />
| {{AUR|renderdoc}}<br />
| {{ic|~/.renderdoc}}<br />
| [https://github.com/baldurk/renderdoc/pull/1741 won't fix]<br />
|<br />
|-<br />
| [https://www.renpy.org/ Ren'Py]<br />
| {{ic|~/.renpy}}<br />
| [https://github.com/renpy/renpy/issues/1377#issuecomment-370118555 won't fix]<br />
|<br />
|-<br />
| [[SANE]]<br />
| {{ic|~/.sane/}}<br />
|<br />
| {{ic|scanimage}} creates a {{ic|.cal}} file there<br />
|-<br />
| {{Pkg|sbcl}}<br />
| {{ic|~/.sbclrc}}<br />
|<br />
| {{hc|/etc/sbclrc|<br />
(require :asdf)<br />
(setf sb-ext:*userinit-pathname-function*<br />
(lambda () (uiop:xdg-config-home #P"sbcl/sbclrc")))<br />
}}<br />
<br />
Note that this requires root privileges and will change the location of {{ic|~/.sbclrc}} for all users. This can be mitigated by checking for an existing {{ic|~/.sbclrc}} inside the {{ic|lambda}} form.<br />
|-<br />
| {{Pkg|scribus}}<br />
| {{ic|~/.scribus}}<br />
|<br />
|<br />
|-<br />
| [http://www.seamonkey-project.org/ SeaMonkey]<br />
| {{ic|~/.mozilla/}}<br />
| [https://bugzil.la/726939]<br />
|<br />
|-<br />
| {{Pkg|simplescreenrecorder}}<br />
| {{ic|~/.ssr/}}<br />
| [https://github.com/MaartenBaert/ssr/issues/407]<br />
| Will use {{ic|$XDG_CONFIG_HOME/simplescreenrecorder/}} ONLY if it already was created [https://github.com/MaartenBaert/ssr/issues/407#issuecomment-667600809] (not part of a release yet)<br />
|-<br />
| [https://www.gnu.org/software/solfege/solfege.html Solfege]<br />
|<br />
{{ic|~/.solfege<br><br />
~/.solfegerc<br><br />
~/lessonfiles}}<br />
| [https://savannah.gnu.org/bugs/index.php?50251]<br />
|<br />
|-<br />
| [https://spamassassin.apache.org/ SpamAssassin]<br />
| {{ic|~/.spamassassin}}<br />
|<br />
|<br />
|-<br />
| [[SQLite]]<br />
|<br />
{{ic|~/.sqlite_history<br><br />
~/.sqliterc}}<br />
| [https://www.sqlite.org/src/info/696e82f7c82d1720]<br />
| {{ic|1=$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history<br><br />
$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}<br />
|-<br />
| [[Steam]]<br />
|<br />
{{ic|~/.steam<br><br />
~/.steampath<br><br />
~/.steampid}}<br />
| [https://github.com/ValveSoftware/steam-for-linux/issues/1890]<br />
| 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.<br />
|-<br />
| [[TeamSpeak]]<br />
| {{ic|~/.ts3client}}<br />
|<br />
| {{ic|1=$ export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client"}}<br />
|-<br />
| {{pkg|texinfo}}<br />
| {{ic|~/.infokey}}<br />
|<br />
| {{ic|$ info --init-file "$XDG_CONFIG_HOME/infokey"}}<br />
|-<br />
| [http://www.texmacs.org/ TeXmacs]<br />
| {{ic|~/.TeXmacs}}<br />
|<br />
|<br />
|-<br />
| [[Thunderbird]]<br />
| {{ic|~/.thunderbird/}}<br />
| [https://bugzil.la/735285]<br />
|<br />
|-<br />
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]<br />
| {{ic|~/.texlive}}<br />
|<br />
|<br />
|-<br />
| {{AUR|vale}}<br />
| {{ic|~/.vale.ini}}<br />
| [https://github.com/errata-ai/vale/issues/152 won't fix]<br />
| {{ic|$ vale --config "$XDG_CONFIG_HOME/vale/config.ini"}}<br />
|-<br />
| [[vim]]<br />
|<br />
{{ic|~/.vim<br><br />
~/.vimrc<br><br />
~/.viminfo}}<br />
| [https://github.com/vim/vim/issues/2034]<br />
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.<br />
<br />
{{ic|1=<nowiki>$ mkdir -p "$XDG_DATA_HOME"/vim/{undo,swap,backup}</nowiki>}}<br />
<br />
{{hc|"$XDG_CONFIG_HOME"/vim/vimrc|<br />
set undodir&#61;$XDG_DATA_HOME/vim/undo<br />
set directory&#61;$XDG_DATA_HOME/vim/swap<br />
set backupdir&#61;$XDG_DATA_HOME/vim/backup<br />
set viewdir&#61;$XDG_DATA_HOME/vim/view<br />
set viminfo+&#61;'1000,n$XDG_DATA_HOME/vim/viminfo<br />
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after<br />
}}<br />
<br />
{{hc|~/.profile|2=<br />
export VIMINIT='source "$XDG_CONFIG_HOME/vim/vimrc"'<br />
}}<br />
<br />
{{ic|VIMINIT}} environment variable will also affect Neovim. If separate configs for Vim and Neovim are desired then the following will be a better choice:<br />
export VIMINIT='if !has('nvim') | source "$XDG_CONFIG_HOME/vim/vimrc" | endif'<br />
<br />
* https://tlvince.com/vim-respect-xdg<br />
|-<br />
| [http://www.vimperator.org/ vimperator]<br />
| {{ic|~/.vimperatorrc}}<br />
| [http://www.mozdev.org/pipermail/vimperator/2009-October/004848.html]<br />
| {{ic|1=$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"}}<br />
<br />
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}<br />
|-<br />
| {{Pkg|w3m}}<br />
| {{ic|~/.w3m}}<br />
| [https://sourceforge.net/p/w3m/feature-requests/31/]<br />
|<br />
|-<br />
| [https://w1.fi/ wpa_cli]<br />
| {{ic|~/.wpa_cli_history}}<br />
|<br />
|<br />
|-<br />
| {{Pkg|x2goclient}}<br />
| {{ic|~/.x2goclient}}<br />
|<br />
| {{ic|1=alias x2goclient="x2goclient --home=$HOME/.config"}}<br />
|-<br />
| {{Pkg|xdg-utils}}<br />
| {{ic|~/.gnome}}<br />
| [https://bugs.freedesktop.org/show_bug.cgi?id=90775] [https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/81] [https://gitlab.freedesktop.org/xdg/xdg-utils/-/merge_requests/22]<br />
| 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. Bug discussion has moved to gitlab and PR with fix exists, however it is not merged yet.<br />
|-<br />
| [https://opensource.conformal.com/wiki/xombrero xombrero]{{Dead link|2020|02|26}}<br />
| {{ic|~/.xombrero}}<br />
| [https://github.com/conformal/xombrero/issues/74]{{Dead link|2020|02|26}}<br />
|<br />
|-<br />
| {{Pkg|xournalpp}}<br />
| {{ic|~/.xournalpp}}<br />
| [https://github.com/xournalpp/xournalpp/issues/1101]<br />
| XDG will be honored in the next version [https://github.com/xournalpp/xournalpp/pull/1384]<br />
|-<br />
| {{Pkg|xpdf}}<br />
| {{ic|~/.xpdfrc}}<br />
|<br />
|<br />
|-<br />
| [https://yardoc.org YARD]<br />
| {{ic|~/.yard}}<br />
| [https://github.com/lsegal/yard/issues/1230]<br />
| Would accept Pull Request if anyone want to implement it.<br />
|-<br />
| [https://nmap.org/zenmap/ zenmap] {{Pkg|nmap}}<br />
| {{ic|~/.zenmap}}<br />
| [http://seclists.org/nmap-dev/2012/q2/163] [https://github.com/nmap/nmap/issues/590]<br />
|<br />
|-<br />
| {{AUR|zoom}}<br />
| {{ic|~/.zoom}}<br />
|<br />
|<br />
|-<br />
| {{AUR|zotero}}<br />
| {{ic|~/.zotero}} {{ic|~/Zotero}}<br />
| [https://github.com/zotero/zotero/issues/1203]<br />
|<br />
|-<br />
| [[zsh]]<br />
|<br />
{{ic|~/.zshrc<br><br />
~/.zprofile<br><br />
~/.zshenv<br><br />
~/.zlogin<br><br />
~/.zlogout<br><br />
~/.histfile<br><br />
~/.zcompdump}}<br />
| [http://www.zsh.org/mla/workers/2013/msg00692.html]<br />
| 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.<br />
<br />
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/zsh/history}}<br />
<br />
{{ic| $ compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION}} [https://unix.stackexchange.com/questions/391641/separate-path-for-zcompdump-files] /!\ The folder needs to exist<br />
<br />
|}<br />
<br />
== Libraries ==<br />
<br />
; C<br />
: [https://github.com/Cloudef/chck/tree/master/chck/xdg C99: Cloudef's simple implementation].<br />
<br />
; C++<br />
: [https://github.com/azubieta/xdg-utils-cxx xdg-utils-cxx]<br />
<br />
; Go<br />
: [https://github.com/ProtonMail/go-appdir go-appdir]<br />
<br />
; Haskell<br />
: Officially in [https://hackage.haskell.org/package/directory directory] since 1.2.3.0 [https://github.com/haskell/directory/commit/ab9d0810ce ab9d0810ce].<br />
: [https://hackage.haskell.org/package/xdg-basedir xdg-basedir]<br />
<br />
; JVM: Java, Kotlin, Clojure, Scala, ...<br />
: [https://github.com/soc/directories-jvm directories-jvm]<br />
<br />
; Perl<br />
: [http://search.cpan.org/dist/File-BaseDir/lib/File/BaseDir.pm File-BaseDir]<br />
<br />
; Python<br />
: [https://freedesktop.org/wiki/Software/pyxdg/ pyxdg]<br />
<br />
; Ruby<br />
: [https://github.com/rubyworks/xdg rubyworks/xdg]<br />
<br />
; Rust<br />
: [https://github.com/soc/directories-rs directories-rs]<br />
: [https://github.com/whitequark/rust-xdg rust-xdg]<br />
<br />
; Vala<br />
: Builtin support via [http://valadoc.org/#!api=glib-2.0/GLib.Environment GLib.Environment].<br />
: See {{ic|get_user_cache_dir}}, {{ic|get_user_data_dir}}, {{ic|get_user_config_dir}}, etc.<br />
<br />
==See also==<br />
<br />
* [https://wiki.gnome.org/Initiatives/GnomeGoals/XDGConfigFolders GNOME Goal: XDG Base Directory Specification Usage]<br />
* [https://web.archive.org/web/20180827160401/plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp Rob Pike: "Dotfiles" being hidden is a UNIXv2 mistake].<br />
* {{man|1|systemd-path}}<br />
* {{man|7|file-hierarchy}}<br />
* [https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes Grawity's notes on dotfiles].<br />
* [https://github.com/grawity/dotfiles/blob/master/.environ.notes Grawity's notes on environment variables].<br />
* [https://ploum.net/207-modify-your-application-to-use-xdg-folders/ ploum.net: Modify Your Application to use XDG Folders].<br />
* The [https://pcgamingwiki.com/wiki/Home PCGamingWiki] attempts to document whether or not Linux PC games follow the XDG Base Directory Specification.</div>Elbahekhttps://wiki.archlinux.org/index.php?title=PulseAudio&diff=509367PulseAudio2018-02-02T16:45:05Z<p>Elbahek: Added link to a great PA explanation document</p>
<hr />
<div>[[Category:Sound]]<br />
[[cs:PulseAudio]]<br />
[[es:PulseAudio]]<br />
[[fr:PulseAudio]]<br />
[[it:PulseAudio]]<br />
[[ja:PulseAudio]]<br />
[[pt:PulseAudio]]<br />
[[ru:PulseAudio]]<br />
[[zh-hans:PulseAudio]]<br />
{{Related articles start}}<br />
{{Related|PulseAudio/Examples}}<br />
{{Related|PulseAudio/Troubleshooting}}<br />
{{Related articles end}}<br />
[[Wikipedia:PulseAudio|PulseAudio]] PulseAudio is a general purpose sound server intended to run as a middleware between your applications and your hardware devices, either using [[ALSA]] or [[OSS]]. It also offers easy network streaming accross local devices using [[Avahi]] if enabled. While its main purpose is to ease audio configuration, its modular design allows more advanced users to configure the daemon precisely to best suit their needs.<br />
<br />
== Installation ==<br />
<br />
Install the {{Pkg|pulseaudio}} package.<br />
<br />
Some PulseAudio modules have been [https://www.archlinux.org/news/pulseaudio-split/ split] from the main package and must be installed separately if needed:<br />
<br />
* {{Pkg|pulseaudio-bluetooth}}: [[Bluetooth]] support (Bluez)<br />
* {{Pkg|pulseaudio-equalizer}}: Equalizer sink (qpaeq)<br />
* {{Pkg|pulseaudio-gconf}}: GConf support (paprefs)<br />
* {{Pkg|pulseaudio-jack}}: [[JACK]] sink, source and jackdbus detection<br />
* {{Pkg|pulseaudio-lirc}}: Infrared (LIRC) volume control<br />
* {{Pkg|pulseaudio-zeroconf}}: Zeroconf ([[Avahi]]/DNS-SD) support<br />
<br />
{{Note|Some confusion may occur between [[ALSA]] and PulseAudio. ALSA includes a Linux kernel component with sound card drivers, as well as a userspace component, {{ic|libalsa}}.[http://www.alsa-project.org/main/index.php/Download] PulseAudio builds only on the kernel component, but offers compatibility with {{ic|libalsa}} through {{Pkg|pulseaudio-alsa}}.[http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index14h3]}}<br />
<br />
=== Front-ends ===<br />
<br />
There are a number of front-ends available for controlling the PulseAudio daemon:<br />
<br />
* Configuration/volume control (graphical): {{Pkg|pavucontrol}}<br />
* General daemon configuration (graphical): {{Pkg|paprefs}}<br />
* Volume control via mapped keyboard keys: {{AUR|pulseaudio-ctl}}, {{AUR|pavolume-git}}<br />
* Console (CLI) mixers: {{Pkg|ponymix}} and {{Pkg|pamixer}}<br />
* Console (curses) mixer: {{AUR|pulsemixer}}<br />
* Web volume control: [https://github.com/Siot/PaWebControl PaWebControl]<br />
* System tray icon: {{AUR|pasystray}}, {{AUR|pasystray-git}}, {{AUR|pasystray-gtk2-standalone}}<br />
: {{Tip|The non-standalone versions of {{ic|pasystray}} can install both GTK2 and GTK3 versions and requires choosing which during build. The standalone versions install a single version.}}<br />
* KF5 plasma applet: {{Pkg|kmix}} and {{Pkg|plasma-pa}}<br />
* Xfce4 plugin: {{Pkg|xfce4-pulseaudio-plugin}}, {{AUR|pa-applet-git}}<br />
* If you want to use Bluetooth headsets or other Bluetooth audio devices with PulseAudio, see the [[Bluetooth headset]] article.<br />
<br />
== Configuration ==<br />
<br />
=== Configuration files ===<br />
<br />
{{Merge|PulseAudio/Configuration|Configuration should stay in the main article, so the linked page should be merged here.|section=Abandoned draft}}<br />
<br />
By default, PulseAudio is configured to automatically detect all sound cards and manage them. It takes control of all detected ALSA devices and redirects all audio streams to itself, making the PulseAudio daemon the central configuration point. The daemon should work mostly out of the box, only requiring a few minor tweaks. <br />
<br />
PulseAudio will first look for configuration files in the home directory {{ic|~/.config/pulse}}, then system-wide {{ic|/etc/pulse}}.<br />
<br />
PulseAudio runs as a server daemon that can run either system-wide or on per-user basis using a client/server architecture. The daemon by itself does nothing without its '''modules''' except to provide an API and host dynamically loaded modules. The audio routing and processing tasks are all handled by various modules. You can find a detailed list of all available modules at [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/ Pulseaudio Loadable Modules]. To enable them you can just add a line {{ic|load-module <module-name-from-list>}} to {{ic|~/.config/pulse/default.pa}}.<br />
<br />
{{Tip|<br />
* It is strongly suggested not to edit system-wide configuration files, but rather edit user ones. Create the {{ic|~/.config/pulse}} directory, then copy the system configuration files into it and edit according to your need.<br />
* Make sure you keep user configuration in sync with changes to the packaged files in {{ic|/etc/pulse/}}. Otherwise, PulseAudio may refuse to start due to configuration errors.<br />
* There is usually no need to add your user to the {{ic|audio}} group, as PulseAudio uses [[udev]] and ''logind'' to give access dynamically to the currently "active" user. Exceptions would include running the machine headless so that there is no currently "active" user.}}<br />
<br />
==== daemon.conf ====<br />
<br />
Defines base settings like the default sample rates used by modules, resampling methods, realtime scheduling and various other settings related to the server process. These can not be changed at runtime without restarting the PulseAudio daemon. The defaults are sensible for most users.<br />
<br />
{{Note|PulseAudio does not perform tilde expansion on paths in this file. Use absolute paths for any files.}}<br />
<br />
{| class="wikitable"<br />
|+ Notable configuration options<br />
! Option || Description<br />
|+<br />
| system-instance || If set to {{ic|yes}}, run the daemon as a [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ system-wide] instance. [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/WhatIsWrongWithSystemWide/ Highly discouraged] as it can introduce security issues. Useful on [[Xorg multiseat|Multiseat]] systems, or headless systems that have no real local users. Defaults to {{ic|no}}.<br />
|+<br />
| avoid-resampling || With {{ic|1=avoid-resampling = yes}}, PulseAudio automatically configures the hardware to the sample rate which the application uses, if the hardware supports this sample rate (needs [https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/ PA 11] or higher)<br />
{{Warning|Enabling this feature might cause audio distortion, therefore it is disabled by default, see the [https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/ release notes] for more information.}}<br />
|+<br />
| resample-method || Which resampler to use when audio with incompatible sample rates needs to be passed between modules (e.g. playback of 96kHz audio on hardware which only supports 48kHz). The available resamplers can be listed with {{ic|$ pulseaudio --dump-resample-methods}}. Choose the best tradeoff between CPU usage and audio quality for the present use-case. {{Tip|In some cases PulseAudio will generate a high CPU load. This can happen when multiple streams are resampled (individually). If this is a common use-case in a workflow, it should be considered to create an additional sink at a matching sample rate which can then be fed into the main sink, resampling only once.}}<br />
|+<br />
| flat-volumes ||{{ic|flat-volumes}} scales the device-volume with the volume of the "loudest" application. For example, raising the VoIP call volume will raise the hardware volume and adjust the music-player volume so it stays where it was, without having to lower the volume of the music-player manually. Defaults to {{ic|yes}} upstream, but to {{ic|no}} within Arch. {{Note|The default behavior upstream can sometimes be confusing and some applications, unaware of this feature, can set their volume to 100% at startup, potentially blowing your speakers or your ears. This is why Arch defaults to the classic (ALSA) behavior by setting this to {{ic|no}}.}}<br />
|+<br />
| default-fragments || Audio samples are split into multiple fragments of {{ic|default-fragment-size-msec}} each. The larger the buffer is, the less likely audio will skip when the system is overloaded. On the downside this will increase the overall latency. Increase this value if you have issues.<br />
|}<br />
<br />
==== default.pa ====<br />
<br />
This file is a startup script and is used to configure modules. It is actually parsed and read after the daemon has finished initializing and additional commands can be sent at runtime using {{ic|$ pactl}} or {{ic|$ pacmd}}. The startup script can also be provided on the command line by starting PulseAudio in a terminal using {{ic|$ pulseaudio -nC}}. This will make the daemon load the CLI module and will accept the configuration directly from the command line, and output resulting information or error messages on the same terminal. This can be useful when debugging the daemon or just to test various modules before setting them permanently on disk. The manual page is quite self-explanatory, consult {{man|5|pulse-cli-syntax}} for the details of the syntax.<br />
<br />
{{tip|<br />
* Rather than being a complete copy, {{ic|~/.config/pulse/default.pa}} can start with the line {{ic|.include /etc/pulse/default.pa}} and then just override the defaults.<br />
* Run {{ic|<nowiki>$ pacmd list-sinks|egrep -i 'index:|name:'</nowiki>}} to list available sinks. The present default sink is marked with an asterisk.<br />
* Edit {{ic|~/.config/pulse/default.pa}} to insert/alter the set-default-sink command using the sink's name as the numbering cannot be guaranteed repeatable.<br />
}}<br />
<br />
==== client.conf ====<br />
This is the configuration file read by every PulseAudio client application. It is used to configure runtime options for individual clients. It can be used to set and configure the default sink and source statically as well as allowing (or disallowing) clients to automatically start the server if not currently running.<br />
<br />
=== Configuration command ===<br />
<br />
The main command to configure a server during runtime is {{ic|$ pacmd}}. Run {{ic|$ pacmd --help}} for a list options, or just run {{ic|$ pacmd}} to enter the shell interactive mode and {{ic|Ctrl+d}} to exit. All modifications will immediately be applied.<br />
<br />
Once your new settings have been tested and meet your needs, edit the {{ic|default.pa}} accordingly to make the change persistent. See [[PulseAudio/Examples]] for some basic settings.<br />
<br />
{{Tip|leave the {{ic|load-module module-default-device-restore}} line in the {{ic|default.pa}} file untouched. It will allow you to restart the server in its default state, thus dismissing any wrong setting.}}<br />
<br />
It is important to understand that the "sources" (processes, capture devices) and "sinks" (sound cards, servers, other processes) accessible and selectable through PulseAudio depend upon the current hardware "Profile" selected. These "Profiles" are those ALSA "pcms" listed by the command {{ic|aplay -L}}, and more specifically by the command {{ic|pacmd list-cards}}, which will include a line "index:", a list beginning "profiles:", and a line "active profile: <...>" in the output, among other things. "Profiles" correspond to different card input/output configurations, notably the number of available input/output channels.<br />
<br />
The "active profile" can be set with the command {{ic|pacmd set-card-profile INDEX PROFILE}}, with ''no'' comma separating INDEX and PROFILE, where INDEX is just the number on the line "index:" and a PROFILE name is everything shown from the beginning of any line under "profile:" to just ''before'' the colon and first space, as shown by the command {{ic|pacmd list-cards}}. For instance, {{ic|pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo}}.<br />
<br />
It may be easier to select a "Profile" with a graphical tool like {{ic|pavucontrol}}, under the "Configuration" tab, or KDE System Settings, "Multimedia/Audio and Video Settings", under the "Audio Hardware Setup" tab. Each audio "Card", which are those devices listed by the command {{ic|aplay -l}}, or again by the command {{ic|pacmd list-cards}}, will have its own selectable "Profile". When a "Profile" has been selected, the then available "sources" and "sinks" can be seen by using the commands {{ic|pacmd list-sources}} and {{ic|pacmd list-sinks}}. Note that the "index" of the available sources and sinks will change each time a card profile is changed.<br />
<br />
The selected "Profile" can be an issue for some applications, especially the Adobe Flash players, typically {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}} and {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}}. Often, these Flash players will only work when one of the Stereo profiles is selected, and otherwise, will play video with no sound, or will simply "crash". When all else fails, you might try selecting a different profile.<br />
<br />
Of course, when configuring some variation of Surround Sound in PulseAudio, the appropriate Surround profile will have to be selected, before Surround Sound will work, or in order to do things like remap the speaker channels.<br />
<br />
== Running ==<br />
<br />
PulseAudio on Arch has {{ic|pulseaudio.socket}} enabled by default for the [[systemd/User]] instance. This means that PulseAudio will automatically start when needed.<br />
<br />
{{Note|<br />
* To disable {{ic|pulseaudio.socket}}, make sure that {{ic|$XDG_CONFIG_HOME/systemd/user/}} exists and run {{ic|systemctl --user mask pulseaudio.socket}}.<br />
* Many [[desktop environments]] autostart programs based on [[Desktop entries#Autostart|desktop files]] in the {{ic|/etc/xdg/autostart/}} directory. In this case, PulseAudio will be launched automatically regardless of the socket activation status.<br />
}}<br />
<br />
For more information, see [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/ PulseAudio: Running].<br />
<br />
== Back-end configuration ==<br />
<br />
=== ALSA ===<br />
<br />
If you have applications that do not support PulseAudio explicitly but rely on ALSA, these applications will try to access the sound card directly via ALSA and will therefore bypass PulseAudio. PulseAudio will thus not have access to the sound card any more. As a result, all applications relying on PulseAudio will not be working any more, leading to [[PulseAudio/Troubleshooting#The only device shown is "dummy output" or newly connected cards are not detected|this issue]]. To prevent this, you will need to install the {{Pkg|pulseaudio-alsa}} package. It contains the necessary {{ic|/etc/asound.conf}} for configuring ALSA to use PulseAudio. Also make sure that {{ic|~/.asoundrc}} does not exist, as it would override the {{ic|/etc/asound.conf}} file.<br />
<br />
Please also install {{Pkg|lib32-libpulse}} and {{Pkg|lib32-alsa-plugins}} if you run a x86_64 system and want to have sound for 32-bit [[multilib]] programs like [[Wine]] and [[Steam]].<br />
<br />
To prevent applications from using ALSA's OSS emulation and bypassing PulseAudio (thereby preventing other applications from playing sound), make sure the module {{ic|snd_pcm_oss}} is not being loaded at boot. If it is currently loaded ({{ic|<nowiki>lsmod | grep oss</nowiki>}}), disable it by executing:<br />
# rmmod snd_pcm_oss<br />
<br />
==== Expose PulseAudio sources, sinks and mixers to ALSA ====<br />
Although {{Pkg|pulseaudio-alsa}} contains the necessary configuration file to allow ALSA applications to use PulseAudio's default device, ALSA's {{ic|pulse}} plugin is more versatile than that:<br />
<br />
{{hc|~/.asoundrc (or /etc/asound.conf)|2=<br />
# Create an alsa input/output using specific PulseAudio sources/sinks<br />
pcm.pulse-example1 {<br />
type pulse<br />
device "my-combined-sink" # name of a source or sink<br />
fallback "pulse-example2" # if combined not available<br />
}<br />
<br />
pcm.pulse-example2 {<br />
type pulse<br />
device "other-sound-card" # name of a source or sink<br />
# example: device "alsa_output.pci-0000_00_1b.0.analog-stereo"<br />
}<br />
<br />
# Create an alsa mixer using specific PulseAudio sources/sinks<br />
# these can be tested with "alsamixer -D pulse-example3"<br />
ctl.pulse-example3 {<br />
type pulse<br />
device "my-output" # name of source or sink to control<br />
<br />
# example: always control the laptop speakers:<br />
# device "alsa_output.pci-0000_00_1b.0.analog-stereo"<br />
fallback "pulse-example4" # supports fallback too<br />
}<br />
<br />
# Mixers also can control a specific source and sink, separately:<br />
ctl.pulse-example4 {<br />
type pulse<br />
sink "my-usb-headphones"<br />
source "my-internal-mic"<br />
<br />
# example: output to HDMI, record using internal<br />
sink "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1"<br />
source "alsa_input.pci-0000_00_1b.0.analog-stereo"<br />
}<br />
<br />
# These can override the default mixer (example: for pnmixer integration)<br />
ctl.!default {<br />
type pulse<br />
sink "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1"<br />
source "alsa_input.pci-0000_00_1b.0.analog-stereo"<br />
}<br />
}}<br />
<br />
The [http://git.alsa-project.org/?p=alsa-plugins.git;a=tree;f=pulse;hb=HEAD source code] can be read to know all available options.<br />
<br />
==== ALSA/dmix without grabbing hardware device ====<br />
<br />
{{Note|This section describes alternative configuration, which is generally '''not''' recommended.}}<br />
<br />
You may want to use ALSA directly in most of your applications while still being able to use applications which require PulseAudio at the same time. The following steps allow you to make PulseAudio use dmix instead of grabbing ALSA hardware device.<br />
<br />
* Remove package {{Pkg|pulseaudio-alsa}}, which provides compatibility layer between ALSA applications and PulseAudio. After this your ALSA apps will use ALSA directly without being hooked by Pulse.<br />
<br />
* Edit {{ic|/etc/pulse/default.pa}}.<br />
:Find and uncomment lines which load back-end drivers. Add '''device''' parameters as follows. Then find and comment lines which load autodetect modules.<br />
load-module module-alsa-sink '''device=dmix'''<br />
load-module module-alsa-source '''device=dsnoop'''<br />
# load-module module-udev-detect<br />
# load-module module-detect<br />
<br />
* ''Optional:'' If you use {{Pkg|kmix}} you may want to control ALSA volume instead of PulseAudio volume:<br />
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh<br />
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh<br />
<br />
* Now, reboot your computer and try running ALSA and PulseAudio applications at the same time. They both should produce sound simultaneously.<br />
:Use {{Pkg|pavucontrol}} to control PulseAudio volume if needed.<br />
<br />
=== OSS ===<br />
<br />
There are multiple ways of making OSS-only programs output to PulseAudio:<br />
<br />
==== ossp ====<br />
<br />
Install {{Pkg|ossp}} package and start {{ic|osspd.service}}.<br />
<br />
==== padsp wrapper ====<br />
<br />
Programs using OSS can work with PulseAudio by starting it with padsp (included with PulseAudio):<br />
<br />
$ padsp OSSprogram<br />
<br />
A few examples:<br />
<br />
$ padsp aumix<br />
$ padsp sox foo.wav -t ossdsp /dev/dsp<br />
<br />
You can also add a custom wrapper script like this: <br />
<br />
{{hc|/usr/local/bin/OSSProgram|<nowiki><br />
#!/bin/sh<br />
exec padsp /usr/bin/OSSprogram "$@"<br />
</nowiki>}}<br />
<br />
Make sure {{ic|/usr/local/bin}} comes before {{ic|/usr/bin}} in your '''PATH'''.<br />
<br />
=== GStreamer ===<br />
<br />
Install {{Pkg|gst-plugins-good}}, or {{AUR|gstreamer0.10-good-plugins}} if your intended program has a legacy [[GStreamer]] implementation.<br />
<br />
=== OpenAL ===<br />
<br />
OpenAL Soft should use PulseAudio by default, but can be explicitly configured to do so: {{hc|/etc/openal/alsoft.conf|2=drivers=pulse,alsa}}<br />
<br />
=== libao ===<br />
<br />
Edit the libao configuration file:<br />
{{hc|/etc/libao.conf|2=default_driver=pulse}}<br />
Be sure to remove the {{ic|1=dev=default}} option of the alsa driver or adjust it to specify a specific Pulse sink name or number. <br />
<br />
{{Note|You could possibly also keep the libao standard of outputting to the ''alsa'' driver and its default device if you install {{pkg|pulseaudio-alsa}} since the ALSA default device then '''is''' PulseAudio.}}<br />
<br />
== Equalizer ==<br />
<br />
{{Warning|The equalizer module is considered unstable and might be removed from PulseAudio. For more, see the [https://lists.freedesktop.org/archives/pulseaudio-discuss/2014-March/020174.html mailing list].}}<br />
<br />
PulseAudio has an integrated 10-band equalizer system. In order to use the equalizer do the following:<br />
<br />
Install {{Pkg|pulseaudio-equalizer}}:<br />
<br />
=== Load equalizer sink and dbus-protocol module ===<br />
<br />
$ pactl load-module module-equalizer-sink<br />
$ pactl load-module module-dbus-protocol<br />
<br />
=== GUI front-end ===<br />
<br />
run:<br />
<br />
$ qpaeq<br />
<br />
{{Note|If qpaeq has no effect, install {{pkg|pavucontrol}} and change "ALSA Playback on" to "FFT based equalizer on ..." while the media player is running.}}<br />
<br />
=== Load equalizer and dbus module on every boot ===<br />
<br />
Edit the {{ic|/etc/pulse/default.pa}} or {{ic|~/.config/pulse/default.pa}} file with your favorite editor and append the following lines:<br />
<br />
### Load the integrated PulseAudio equalizer and D-Bus module<br />
load-module module-equalizer-sink<br />
load-module module-dbus-protocol<br />
<br />
{{Note|The equalizer sink needs to be loaded after the master sink is already available.}}<br />
<br />
=== Alternative equalizers ===<br />
<br />
{{AUR|pulseaudio-equalizer-ladspa}} (based on {{Pkg|swh-plugins}}) can be used as an alternative to {{Pkg|pulseaudio-equalizer}}.<br />
<br />
{{AUR|pulseeffects}} applies peak limiting, compression, reverberation, auto volume and 15 bands equalization to Pulseaudio applications output.<br />
<br />
== Applications ==<br />
<br />
=== QEMU ===<br />
<br />
Refer to [[QEMU#Host]] for a detailed guide on how to configure pulseaudio within [[QEMU]].<br />
<br />
=== AlsaMixer.app ===<br />
<br />
Make {{AUR|alsamixer.app}} dockapp for the {{AUR|windowmaker}} use pulseaudio, e.g.<br />
$ AlsaMixer.app --device pulse<br />
<br />
Here is a two examples where the first one is for ALSA and the other one is for pulseaudio. You can run multiple instances of it. Use the {{ic|-w}} option to choose which of the control buttons to bind to the mouse wheel.<br />
# AlsaMixer.app -3 Mic -1 Master -2 PCM --card 0 -w 1<br />
# AlsaMixer.app --device pulse -1 Capture -2 Master -w 2<br />
<br />
{{Note|It can use only those output sinks that set as default.}}<br />
<br />
=== XMMS2 ===<br />
<br />
Make it switch to pulseaudio output<br />
$ nyxmms2 server config output.plugin pulse<br />
and to alsa<br />
$ nyxmms2 server config output.plugin alsa<br />
To make xmms2 use a different output sink, e.g.<br />
$ nyxmms2 server config pulse.sink alsa_output.pci-0000_04_01.0.analog-stereo.monitor<br />
<br />
See also the official guide [https://xmms2.org/wiki/Using_the_application].<br />
<br />
=== KDE Plasma Workspaces and Qt4 ===<br />
<br />
PulseAudio will automatically be used by KDE/Qt4 applications. It is supported by default in the KDE sound mixer. For more information see the [https://www.freedesktop.org/wiki/Software/PulseAudio/Desktops/KDE/ KDE page in the PulseAudio wiki].<br />
<br />
One useful tidbit from that page is that {{ic|load-module module-device-manager}} should be loaded. This usually happens automatically at login through the script {{ic|/usr/bin/start-pulseaudio-x11}}; if you find that the module is not loaded automatically you can consider adding it manually to {{ic|/etc/pulse/default.pa}}. See [[#Switch on connect]] for possible conflicts with the {{ic|module-switch-on-connect}}.<br />
<br />
If the phonon-gstreamer backend is used for Phonon, GStreamer should also be configured as described in [[#GStreamer]].<br />
<br />
=== Audacious ===<br />
<br />
[[Audacious]] natively supports PulseAudio. In order to use it, set Audacious Preferences -> Audio -> Current output plugin to 'PulseAudio Output Plugin'.<br />
<br />
=== Music Player Daemon (MPD) ===<br />
<br />
[http://mpd.wikia.com/wiki/PulseAudio configure] [[MPD]] to use PulseAudio. See also [[MPD/Tips and Tricks#PulseAudio]].<br />
<br />
=== MPlayer ===<br />
<br />
[[MPlayer]] natively supports PulseAudio output with the {{ic|-ao pulse}} option. It can also be configured to default to PulseAudio output, in {{ic|~/.mplayer/config}} for per-user, or {{ic|/etc/mplayer/mplayer.conf}} for system-wide:<br />
{{hc|/etc/mplayer/mplayer.conf|2=ao=pulse}}<br />
<br />
=== guvcview ===<br />
<br />
{{Pkg|guvcview}} when using the PulseAudio input from a [[Webcam]] may have the audio input suspended resulting in no audio being recorded. You can check this by executing:<br />
<br />
$ pactl list sources<br />
<br />
If the audio source is "suspended" then modifying the following line in {{ic|/etc/pulse/default.pa}} and changing:<br />
<br />
load-module module-suspend-on-idle<br />
to<br />
#load-module module-suspend-on-idle<br />
<br />
And then either restarting PulseAudio or your computer will only idle the input source instead of suspending it. guvcview will then correctly record audio from the device.<br />
<br />
== Networked audio ==<br />
<br />
{{Expansion|please allow for some time for me to port the most important information here -- [[User:Nodiscc|Nodiscc]]|Talk:PulseAudio#Networked_audio}}<br />
Play sound through the outputs of another computer on the network<br />
<br />
=== Basic setup with direct connection ===<br />
<br />
===== On the server =====<br />
<br />
Edit {{ic|~/.config/pulse/default.pa}} or {{ic|/etc/pulse/default.pa}} (or {{ic|/etc/pulse/system.pa}} if PulseAudio is started in system mode) and add the following line:<br />
<br />
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/16<br />
<br />
Here only client from the IPs or IPs range specified here can stream sound.<br />
<br />
To allow access from everywhere:<br />
<br />
load-module module-native-protocol-tcp auth-anonymous=true<br />
<br />
{{Note| If {{ic|auth-ip-acl}} neither {{ic|auth-anonymous}} are specified, authentification is done via {{ic|~/.pulse-cookie}} which must be the same on clients and server.}}<br />
<br />
By default PulseAudio listens on port {{ic|tcp/4713}} for incoming connections, you may need to open this port in your [[firewall]].<br />
<br />
===== On the client =====<br />
<br />
Edit {{ic|~/.config/pulse/client.conf}} or {{ic|/etc/pulse/client.conf}}, to respectively apply this directive to one user or to all, and add :<br />
<br />
default-server = ''server-address''<br />
<br />
''server-address'' can be a simple domain-name or IPv4, for more see [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/ServerStrings/ the documentation]<br />
<br />
It is also possible to set the server address in the environment variable {{ic|$PULSE_SERVER}}.<br />
<br />
== Tips and tricks ==<br />
<br />
{{Merge|PulseAudio/Examples|Same topic.}}<br />
<br />
=== Keyboard volume control ===<br />
<br />
Map the following commands to your volume keys: {{ic|XF86AudioRaiseVolume}}, {{ic|XF86AudioLowerVolume}}, {{ic|XF86AudioMute}}. See [[Extra keyboard keys in Xorg]] for details.<br />
<br />
First find out which sink corresponds to the audio output you'd like to control.<br />
To list available sinks:<br />
pactl list sinks short<br />
<br />
Suppose sink 0 is to be used, to raise the volume:<br />
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"<br />
<br />
To lower the volume:<br />
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 -5%"<br />
<br />
To mute/unmute the volume:<br />
pactl set-sink-mute 0 toggle<br />
<br />
To mute/unmute the microphone:<br />
pactl set-source-mute 1 toggle<br />
<br />
{{Tip|To have keyboard shortcuts operate always on the default sink, specify {{ic|@DEFAULT_SINK@}} as the sink number, for example {{ic|pactl set-sink-mute @DEFAULT_SINK@ toggle}}.}}<br />
<br />
=== Play sound from a non-interactive shell (systemd service, cron) === <br />
<br />
Set {{ic|XDG_RUNTIME_DIR}} before the command (replace {{ic|''user_id''}} with the ID of the user running PulseAudio):<br />
<br />
XDG_RUNTIME_DIR=/run/user/''user_id'' paplay /usr/share/sounds/freedesktop/stereo/complete.oga<br />
<br />
Or use {{ic|machinectl}}:<br />
<br />
# machinectl shell .host --uid=''user_id'' /usr/bin/paplay /usr/share/sounds/freedesktop/stereo/complete.oga<br />
<br />
=== X11 Bell Events ===<br />
<br />
To get pulseaudio to handle X11 bell events, run the following commands after the X11 session has been started:<br />
<br />
pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell<br />
pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY<br />
<br />
To adjust the volume of the X11 bell, run the following command:<br />
<br />
xset b 100<br />
<br />
100 is a percentage. This requires the {{Pkg|xorg-xset}} package. See [[Autostarting]] for a way to run these commands automatically when the X11 session is started.<br />
<br />
=== Switch on connect ===<br />
This is a module used to switch the output sound to the newly connected device. For example, if you plug in a USB headset, the output will be switched to that. If you unplug it, the output will be set back to the last device. This used to be quite buggy but got a lot of attention in PulseAudio 8.0 and should work quite well now.<br />
<br />
If you just want to test the module then you can load it at runtime by calling:<br />
$ pactl load-module module-switch-on-connect<br />
<br />
If you want to make the change persistent you will have to add it to your local pulseaudio settings or to /etc/pulse/default.pa (system wide effect). In either case, add this line:<br />
load-module module-switch-on-connect<br />
<br />
{{Accuracy|Editing {{ic|/usr/bin/start-pulseaudio-x11}} will not survive package upgrade. The offending module can be unloaded in the config before loading {{ic|module-switch-on-connect}}, see [[Talk:Bluetooth_headset#GDMs_pulseaudio_instance_captures_bluetooth_headset]].}}<br />
<br />
On KDE/Plasma5 you should furthermore disable module-device-manager. As soon as Plasma5 is started it loads (via start-pulseaudio-x11) the module module-device-manager for pulseaudio to manage the devices. But that module apparently conflicts with module-switch-on-connect. Therefore you should disable that module by editing /bin/start-pulseaudio-x11 and commenting the lines for KDE. Simply logout and login again and in order to renew your pulseaudio session. On connect switching should now work properly.<br />
<br />
===Script for switching analogic outputs===<br />
<br />
Some sound cards present the option of multiple analog outputs, being switchable through using Pulseaudio profiles. But switching manually can become a chore, so you can use the following commands to switch it:<br />
$ pactl set-sink-port 'number of the card' 'port'<br />
<br />
This will set the default output to whatever port you chose.<br />
Example:<br />
$ pactl set-sink-port 0 "analog-output;output-speaker" <br />
<br />
The values can be easily obtained using:<br />
$ pactl list<br />
<br />
Current output can be obtained through:<br />
$ pactl list sinks | grep "active profile"| cut -d ' ' -f 3-<br />
<br />
This process can be automated through a simple script. This script then can be given a shortcut by the user:<br />
<br />
{{hc|~/pa.sh (or anything the user wants)|<nowiki><br />
#!/bin/bash<br />
# This script uses kdialog notification to warn the user of the currently swapped to profile. User could adapt it to their needs or change it.<br />
<br />
CURRENT_PROFILE=$(pactl list sinks | grep "active profile"| cut -d ' ' -f 3-)<br />
<br />
if [ "$CURRENT_PROFILE" = "analog-output;output-speaker" ] ; then<br />
pactl set-sink-port 0 "analog-output;output-headphones-1"<br />
kdialog --title "Pulseaudio" --passivepopup "Headphone" 2 & <br />
else <br />
pactl set-sink-port 0 "analog-output;output-speaker" <br />
kdialog --title "Pulseaudio" --passivepopup "Speaker" 2 &<br />
fi<br />
</nowiki>}}<br />
<br />
This script is intended to swap between two profiles. First checking the current profile then swapping it. Users are required to change the field 'active profile' according to the language pactl reports. Users might need to change the number of the card and the output to fit their machine.<br />
<br />
== Troubleshooting ==<br />
<br />
See [[PulseAudio/Troubleshooting]].<br />
<br />
== See also ==<br />
<br />
* [http://www.alsa-project.org/main/index.php/Asoundrc .asoundrc on ALSA wiki]<br />
* [http://www.pulseaudio.org/ PulseAudio official site]<br />
* [http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/ PulseAudio FAQ]<br />
* [https://gavv.github.io/blog/pulseaudio-under-the-hood/ Pulseaudio under the hood]</div>Elbahekhttps://wiki.archlinux.org/index.php?title=XDG_Base_Directory&diff=481922XDG Base Directory2017-07-14T23:54:25Z<p>Elbahek: Added postgresql related env variables</p>
<hr />
<div>[[Category:Dotfiles]]<br />
[[ja:XDG Base Directory サポート]]<br />
{{Related articles start}}<br />
{{Related|dotfiles}}<br />
{{Related|Xdg user directories}}<br />
{{Related articles end}}<br />
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.<br />
<br />
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.<br />
<br />
Hopefully this will provide a source of information about exactly what certain kinds of dotfiles are and where they come from.<br />
<br />
==XDG Base Directory specification==<br />
<br />
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.<br />
<br />
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.<br />
<br />
===User directories===<br />
<br />
* {{ic|XDG_CONFIG_HOME}}<br />
** Where user-specific configurations should be written (analogous to {{ic|/etc}}).<br />
** Should default to {{ic|$HOME/.config}}.<br />
<br />
* {{ic|XDG_CACHE_HOME}}<br />
** Where user-specific non-essential (cached) data should be written (analogous to {{ic|/var/cache}}).<br />
** Should default to {{ic|$HOME/.cache}}.<br />
<br />
* {{ic|XDG_DATA_HOME}}<br />
** Where user-specific data files should be written (analogous to {{ic|/usr/share}}).<br />
** Should default to {{ic|$HOME/.local/share}}.<br />
<br />
* {{ic|XDG_RUNTIME_DIR}}<br />
** Used for non-essential, user-specific data files such as sockets, named pipes, etc.<br />
** Not required to have a default value; warnings should be issued if not set or equivalents provided.<br />
** Must be owned by the user with an access mode of {{ic|0700}}.<br />
** Filesystem fully featured by standards of OS.<br />
** Must be on the local filesystem.<br />
** May be subject to periodic cleanup.<br />
** Modified every 6 hours or set sticky bit if persistence is desired.<br />
** Can only exist for the duration of the user's login.<br />
** Should not store large files as it may be mounted as a tmpfs.<br />
<br />
===System directories===<br />
<br />
* {{ic|XDG_DATA_DIRS}}<br />
** List of directories seperated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/usr/local/share:/usr/share}}.<br />
<br />
* {{ic|XDG_CONFIG_DIRS}}<br />
** List of directories seperated by {{ic|:}} (analogous to {{ic|PATH}}).<br />
** Should default to {{ic|/etc/xdg}}.<br />
<br />
==Contributing==<br />
<br />
When contributing make sure to use the correct section.<br />
<br />
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.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* 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).<br />
<br />
* The last column should include any appropriate workarounds or solutions. Please verify that your solution is correct and functional.<br />
<br />
==Supported==<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| [https://github.com/SirCmpwn/aerc aerc]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [https://github.com/Antimicro/antimicro/ antimicro]<br />
| {{ic|~/.antimicro}}<br />
| [https://github.com/Antimicro/antimicro/commit/edba864 edba864]<br />
| [https://github.com/Antimicro/antimicro/issues/5]<br />
|<br />
|-<br />
| [[aria2]]<br />
| {{ic|~/.aria2}}<br />
| [https://github.com/tatsuhiro-t/aria2/commit/8bc1d37 8bc1d37]<br />
| [https://github.com/tatsuhiro-t/aria2/issues/27]<br />
|<br />
|-<br />
| [[blender]]<br />
| {{ic|~/.blender}}<br />
| [http://git.blender.org/gitweb/gitweb.cgi/blender.git/commit/4293f473 4293f473]<br />
| [https://developer.blender.org/T28943]<br />
|<br />
|-<br />
| [https://github.com/falconindy/burp burp]<br />
|<br />
| [https://github.com/falconindy/burp/commit/f2388e9 f2388e9]<br />
|<br />
|<br />
|-<br />
| [[chromium]]<br />
| {{ic|~/.chromium}}<br />
| [https://src.chromium.org/viewvc/chrome?revision=23057&view=revision 23057]<br />
| [https://groups.google.com/forum/#!topic/chromium-dev/QekVQxF3nho] [https://code.google.com/p/chromium/issues/detail?id=16976]<br />
|<br />
|-<br />
| [http://citra-emu.org/ citra]<br />
| {{ic|~/.citra-emu}}<br />
| [https://github.com/citra-emu/citra/commit/f7c3193fec f7c3193fec]<br />
| [https://github.com/citra-emu/citra/pull/575]<br />
|<br />
|-<br />
| [[PHP#Composer|composer]]<br />
| {{ic|~/.composer}}<br />
| [https://github.com/composer/composer/releases/tag/1.0.0-beta1 1.0.0-beta1]<br />
| [https://github.com/composer/composer/pull/1407]<br />
|<br />
|-<br />
| [https://github.com/falconindy/cower cower]<br />
|<br />
| [https://github.com/falconindy/cower/commit/8b70805 8b70805]<br />
|<br />
|<br />
|-<br />
| [https://wiki.gnome.org/Apps/DFeet d-feet]<br />
| {{ic|~/.d-feet}}<br />
| [https://git.gnome.org/browse/d-feet/commit/?id==7f6104b 7f6104b]<br />
|<br />
|<br />
|-<br />
| [https://wiki.gnome.org/dconf dconf]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[Dolphin emulator|dolphin-emu]]<br />
| {{ic|~/.dolphin-emu}}<br />
| [https://github.com/dolphin-emu/dolphin/commit/a498c68 a498c68]<br />
| [https://github.com/dolphin-emu/dolphin/pull/2304]<br />
|<br />
|-<br />
| [http://dr14tmeter.sourceforge.net dr14-meter]<br />
| <br />
| [https://github.com/simon-r/dr14_t.meter/commit/7e777ca645298ec898b3c76e3ec472ed6ed43e8a 7e777ca64]<br />
| [https://github.com/simon-r/dr14_t.meter/pull/30]<br />
| Hardcoded {{ic|$HOME/.config/dr14meter}}<br />
|-<br />
| [http://www.knopwob.org/dunst/index.html dunst]<br />
|<br />
| [https://github.com/knopwob/dunst/commit/78b6e2b1 78b6e2b1]<br />
| [https://github.com/knopwob/dunst/issues/22]<br />
|<br />
|-<br />
| [[dwb]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[fish]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[fontconfig]]<br />
| {{ic|~/.fontconfig}}<br />
<br />
{{ic|~/.fonts}}<br />
| [http://cgit.freedesktop.org/fontconfig/commit/?id=8c255fb1 8c255fb1]<br />
|<br />
| Use {{ic|"$XDG_DATA_HOME"/fonts}} to store fonts instead.<br />
|-<br />
| [http://fontforge.github.io/ fontforge]<br />
| {{ic|~/.FontForge}}<br />
<br />
{{ic|~/.PfaEdit}}<br />
| [https://github.com/fontforge/fontforge/commit/e4c2cc7432 e4c2cc7432]<br />
| [https://github.com/fontforge/fontforge/issues/847] [https://github.com/fontforge/fontforge/issues/991]<br />
|<br />
|-<br />
| [http://www.freerdp.com/ freerdp]<br />
| {{ic|~/.freerdp}}<br />
| [https://github.com/FreeRDP/FreeRDP/commit/edf6e7258d edf6e7258d]<br />
|<br />
|<br />
|-<br />
| [https://projects.gnome.org/gconf gconf]<br />
| {{ic|~/.gconf}}<br />
| [https://git.gnome.org/browse/gconf/commit/?id=fc28caa7 fc28caa7]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=674803]<br />
|<br />
|-<br />
| [[git]]<br />
| {{ic|~/.gitconfig}}<br />
| [https://github.com/git/git/commit/0d94427e 0d94427e]<br />
|<br />
|<br />
|-<br />
| [http://gstreamer.freedesktop.org/ gstreamer]<br />
| {{ic|~/.gstreamer-0.10}}<br />
| [http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4e36f93924cf 4e36f93924cf]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=518597]<br />
|<br />
|-<br />
| [[gtk|gtk3]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [http://hisham.hm/htop/ htop]<br />
| {{ic|~/.htoprc}}<br />
| [https://github.com/hishamhm/htop/commit/93233a67 93233a67]<br />
|<br />
|<br />
|-<br />
| [[i3]]<br />
| {{ic|~/.i3}}<br />
| [http://code.stapelberg.de/git/i3/commit/?id=7c130fb54 7c130fb54]<br />
|<br />
|<br />
|-<br />
| [http://i3wm.org/i3status/ i3status]<br />
| {{ic|~/.i3status.conf}}<br />
| [http://code.stapelberg.de/git/i3status/commit/?id=c3f7fc4994 c3f7fc4994]<br />
|<br />
|<br />
|-<br />
| [http://www.imagemagick.org/script/index.php imagemagick]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[inkscape]]<br />
| {{ic|~/.inkscape}}<br />
| [http://wiki.inkscape.org/wiki/index.php/Release_notes/0.47#Preferences 0.47]<br />
| [https://bugs.launchpad.net/inkscape/+bug/199720]<br />
|<br />
|-<br />
| [https://www.ctan.org/pkg/latexmk?lang=en latexmk]<br />
| {{ic|~/.latexmkrc}}<br />
|<br />
|<br />
|<br />
|-<br />
| [http://lftp.yar.ru/ lftp]<br />
| {{ic|~/.lftp}}<br />
| [https://github.com/lavv17/lftp/commit/21dc400 21dc400]<br />
| [https://www.mail-archive.com/lftp@uniyar.ac.ru/msg04301.html]<br />
|<br />
|-<br />
| [https://github.com/Sude-/lgogdownloader/ lgogdownloader]<br />
| {{ic|~/.gogdownloader}}<br />
| [https://github.com/Sude-/lgogdownloader/commit/d430af63d000 d430af63d000]<br />
| [https://github.com/Sude-/lgogdownloader/issues/4]<br />
|<br />
|-<br />
| [[LibreOffice]]<br />
|<br />
| [https://cgit.freedesktop.org/libreoffice/ure/commit/?id=a6f56f70a4930d3f71bd9c9b90fdd0ba20e4da5f a6f56f70] [https://cgit.freedesktop.org/libreoffice/bootstrap/commit/?id=25bd2eec77ed774a37d1cddd0d72312e23d5e9fd 25bd2eec]<br />
| [https://bugs.documentfoundation.org/show_bug.cgi?id=32263]<br />
|<br />
|-<br />
| [[livestreamer]]<br />
| {{ic|~/.livestreamerrc}}<br />
| [https://github.com/chrippa/livestreamer/commit/ea805917 ea805917]<br />
| [https://github.com/chrippa/livestreamer/pull/106]<br />
|<br />
|-<br />
| [[llpp]]<br />
|<br />
| [http://repo.or.cz/w/llpp.git/commit/3ab86f0cb 3ab86f0cb]<br />
|<br />
| Currently llpp places the configuration directly under {{ic|XDG_CONFIG_HOME}} instead of creating a directory.<br />
|-<br />
| [[mc]]<br />
| {{ic|~/.mc}}<br />
| [https://www.midnight-commander.org/changeset/1b9957058 1b9957058] [https://www.midnight-commander.org/changeset/0b7115647 0b7115647]<br />
<br />
[https://www.midnight-commander.org/changeset/ce401d797 ce401d797]<br />
| [https://www.midnight-commander.org/ticket/1851]<br />
|<br />
|-<br />
| [[Mercurial]]<br />
| {{ic|~/.hgrc}}<br />
| [https://www.mercurial-scm.org/repo/hg/rev/354020079723 354020079723] [https://www.mercurial-scm.org/wiki/Release4.2 4.2]<br />
|<br />
| {{ic|XDG_CONFIG_HOME/hg/hgrc}}.<br />
|-<br />
| [https://www.mesa3d.org/ mesa]<br />
|<br />
| [https://cgit.freedesktop.org/mesa/mesa/commit/?id=87ab26b2ab35a29d446ae66f1795d40c184c0739 87ab26b2ab]<br />
|<br />
| {{ic|XDG_CACHE_HOME/mesa}}<br />
|-<br />
| [http://milkytracker.org/ milkytracker]<br />
| {{ic|~/.milkytracker_config}}<br />
| [https://github.com/Deltafire/MilkyTracker/commit/eb487c55 eb487c55]<br />
| [https://github.com/Deltafire/MilkyTracker/issues/12]<br />
|<br />
|-<br />
| [https://github.com/mintty/mintty mintty]<br />
| {{ic|~/.minttyrc}}<br />
| [https://github.com/mintty/mintty/commit/cff1bd8f cff1bd8f] v2.3.7.<br />
| [https://github.com/mintty/mintty/issues/525]<br />
|-<br />
| [[mpd]]<br />
| {{ic|~/.mpdconf}}<br />
| [http://git.musicpd.org/cgit/master/mpd.git/commit/?id=87b73284 87b73284]<br />
|<br />
|<br />
|-<br />
| [[mpv]]<br />
| {{ic|~/.mpv}}<br />
| [https://github.com/mpv-player/mpv/commit/cb250d490 cb250d490]<br />
| [https://github.com/mpv-player/mpv/pull/864]<br />
|<br />
|-<br />
| [[mutt]]<br />
| {{ic|~/.mutt}}<br />
| [https://dev.mutt.org/trac/changeset/42fee7585f 42fee7585f]<br />
| [http://dev.mutt.org/trac/ticket/3207]<br />
|<br />
|-<br />
| [http://mypaint.intilinux.com/ mypaint]<br />
| {{ic|~/.mypaint}}<br />
| [https://github.com/mypaint/mypaint/commit/cf723b74cd cf723b74cd]<br />
|<br />
|<br />
|-<br />
| [[ncmpcpp]]<br />
| {{ic|~/.ncmpcpp}}<br />
| [https://github.com/arybczak/ncmpcpp/commit/38d9f811de888e512b0115f551a9679eab4607f9 38d9f811] [https://github.com/arybczak/ncmpcpp/commit/27cd86e0638bba3a7a78e44ac40dc98a58d1d90d 27cd86e0]<br />
| [https://github.com/arybczak/ncmpcpp/issues/79] [https://github.com/arybczak/ncmpcpp/issues/110]<br />
| {{ic|ncmpcpp_directory}} should be set to avoid an {{ic|error.log}} file in {{ic|~/.ncmpcpp}}.<br />
|-<br />
| [[neovim]]<br />
| {{ic|~/.nvim}}<br />
<br />
{{ic|~/.nvimlog}}<br />
<br />
{{ic|~/.nviminfo}}<br />
| [https://github.com/neovim/neovim/commit/1ca5646bb 1ca5646bb]<br />
| [https://github.com/neovim/neovim/issues/78] [https://github.com/neovim/neovim/pull/3198]<br />
|<br />
|-<br />
| [[newsbeuter]]<br />
| {{ic|~/.newsbeuter}}<br />
| [https://github.com/akrennmair/newsbeuter/commit/3c57824c5 3c57824c5]<br />
| [https://github.com/akrennmair/newsbeuter/pull/39]<br />
| It is required to create both directories [http://newsbeuter.org/doc/newsbeuter.html#_xdg_base_directory_support]:<br />
<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter}}<br />
|-<br />
| [[OfflineIMAP]]<br />
| {{ic|~/.offlineimaprc}}<br />
| [https://github.com/OfflineIMAP/offlineimap/commit/5150de5 5150de5]<br />
| [https://github.com/OfflineIMAP/offlineimap/issues/32]<br />
|<br />
|-<br />
| [https://bitbucket.org/opentyrian/opentyrian/wiki/Home opentyrian]<br />
| {{ic|~/.opentyrian}}<br />
| [https://bitbucket.org/opentyrian/opentyrian/commits/8d45ff2 8d45ff2]<br />
| [https://web.archive.org/web/20140815181350/http://code.google.com/p/opentyrian/issues/detail?id=125]<br />
|<br />
|-<br />
| [http://pcsx2.net/ pcsx2]<br />
| {{ic|~/.pcsx2}}<br />
| [https://github.com/PCSX2/pcsx2/commit/87f1e8f77 87f1e8f77] [https://github.com/PCSX2/pcsx2/commit/a9020c606 a9020c606]<br />
<br />
[https://github.com/PCSX2/pcsx2/commit/3b22f0fb0 3b22f0fb0] [https://github.com/PCSX2/pcsx2/commit/0a012aec2 0a012aec2]<br />
| [https://github.com/PCSX2/pcsx2/issues/352] [https://github.com/PCSX2/pcsx2/issues/381]<br />
|<br />
|-<br />
| [https://pip.pypa.io/ pip]<br />
| {{ic|~/.pip}}<br />
| [https://github.com/pypa/pip/blob/548a9136525815dff41acd845c558a0b36eb1c5f/NEWS.rst#60-2014-12-22 6.0]<br />
| [https://github.com/pypa/pip/issues/1733]<br />
|<br />
|-<br />
| [http://www.ppsspp.org/ ppsspp]<br />
| {{ic|~/.ppsspp}}<br />
| [https://github.com/hrydgard/ppsspp/commit/132fe47c7d 132fe47c7d]<br />
| [https://github.com/hrydgard/ppsspp/issues/4623]<br />
|<br />
|-<br />
| {{pkg|procps-ng}}<br />
| {{ic|~/.toprc}}<br />
| [https://gitlab.com/procps-ng/procps/commit/af53e170b9 af53e170b9]<br />
| [https://gitlab.com/procps-ng/procps/merge_requests/38] [https://bugzilla.redhat.com/show_bug.cgi?id=1155265]<br />
|<br />
|-<br />
| [https://github.com/Cloudef/orbment/ orbment]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[pacman]]<br />
| {{ic|~/.makepkg.conf}}<br />
| [https://projects.archlinux.org/pacman.git/commit/?id=80eca94c8 80eca94c8]<br />
| [https://mailman.archlinux.org/pipermail/pacman-dev/2014-July/019178.html]<br />
|<br />
|-<br />
| [https://github.com/panda3d/panda3d Panda3D]<br />
| {{ic|~/.panda3d}}<br />
| [https://github.com/panda3d/panda3d/commit/2b537d2 2b537d2]<br />
|<br />
|<br />
|-<br />
| [[PulseAudio]]<br />
| {{ic|~/.pulse}}<br />
<br />
{{ic|~/.pulse-cookie}}<br />
| [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=59a8618dcd9 59a8618dcd9] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=87ae8307057 87ae8307057]<br />
<br />
[http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=9ab510a6921 9ab510a6921] [http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=4c195bcc9d5 4c195bcc9d5]<br />
| [https://bugzilla.redhat.com/show_bug.cgi?id=845607]<br />
|<br />
|-<br />
| [http://pyroom.org/index.html pyroom]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[qutebrowser]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[qtile]]<br />
|<br />
| [https://github.com/qtile/qtile/commit/fd8686e5b4e4fa20bb82039ed8a83768434585ec fd8686e] [https://github.com/qtile/qtile/commit/66d704bce83f631b3326f10a1bc9fc22f8e6a6fd 66d704b]<br />
<br />
[https://github.com/qtile/qtile/commit/51cff019917b87bda696b381493f969ceb6cc350 51cff01]<br />
| [https://github.com/qtile/qtile/pull/835]<br />
| Some optional bar widgets can create files and directories in non-compliant paths, but most often these are still configurable.<br />
|-<br />
| {{Pkg|rclone}}<br />
| {{ic|~/.rclone.conf}}<br />
| [https://github.com/ncw/rclone/commit/9d362589 9d362589]<br />
| [https://github.com/ncw/rclone/issues/868]<br />
|<br />
|-<br />
| [http://www.libretro.com/ retroarch]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [http://rr-project.org/ rr]<br />
| {{ic|~/.rr}}<br />
| [https://github.com/mozilla/rr/commit/02e7d41e 02e7d41e]<br />
| [https://github.com/mozilla/rr/issues/1455]<br />
|<br />
|-<br />
| [http://www.snes9x.com/ Snes9x]<br />
| {{ic|~/.snes9x}}<br />
| [https://github.com/snes9xgit/snes9x/commit/93b5f11641fa22d4518f251d6e3db99219864677 19864677]<br />
| [https://github.com/snes9xgit/snes9x/issues/194]<br />
| By default configuration is blank, is intended that the user fill it at they will (throw the gui or manually) before launch a rom<br />
|-<br />
| {{AUR|sublime-text-dev}}<br />
|<br />
|<br />
|<br />
| Cache is placed in {{ic|$XDG_CONFIG_HOME/sublime-text-3/Cache}} instead of expected {{ic|$XDG_CACHE_HOME/sublime-text-3}}.<br />
|-<br />
| [[surfraw]]<br />
| {{ic|~/.surfraw.conf}}<br />
<br />
{{ic|~/.surfraw.bookmarks}}<br />
| [http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=3e4591d8 3e4591d8] [http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=bd8c427d bd8c427d]<br />
<br />
[http://anonscm.debian.org/cgit/surfraw/surfraw.git/commit/?id=f57fc718 f57fc718]<br />
|<br />
|<br />
|-<br />
| [[sway]]<br />
| {{ic|~/.sway/config}}<br />
| [https://github.com/SirCmpwn/sway/commit/614393c09 614393c09]<br />
| [https://github.com/SirCmpwn/sway/issues/5]<br />
|<br />
|-<br />
| [[systemd]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[termite]]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[transmission]]<br />
| {{ic|~/.transmission}}<br />
| [https://trac.transmissionbt.com/changeset/5517 5517]<br />
| [https://trac.transmissionbt.com/ticket/684]<br />
|<br />
|-<br />
| [https://www.kernel.org/pub/linux/utils/util-linux/ util-linux]<br />
|<br />
| [http://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=570b32100 570b32100]<br />
|<br />
|<br />
|-<br />
| [[uzbl]]<br />
|<br />
| [https://github.com/uzbl/uzbl/commit/c6fd63a c6fd63a]<br />
| [https://github.com/uzbl/uzbl/pull/150]<br />
|<br />
|-<br />
| [http://fanglingsu.github.io/vimb/ vimb]<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
| [[VirtualBox]]<br />
| {{ic|~/.VirtualBox}}<br />
| [https://www.virtualbox.org/ticket/5099?action=diff&version=7 4.3]<br />
| [https://www.virtualbox.org/ticket/5099]<br />
|<br />
|-<br />
| [http://martanne.github.io/vis/ vis]<br />
| {{ic|~/.vis}}<br />
| [https://github.com/martanne/vis/pull/303]<br />
| [https://github.com/martanne/vis/commit/68a25c751c0219ef5df589a19513e46a08965d5a 68a25c75]<br />
[https://github.com/martanne/vis/commit/d138908cf8149eb10120957271cd6979272b4730 d138908c]<br />
|<br />
|-<br />
| [[VLC media player]]<br />
| {{ic|~/.vlcrc}}<br />
| [http://git.videolan.org/?p=vlc.git;a=commit;h=16f32e1500887c0dcd33cb06ad71759a81a52878 16f32e15]<br />
| [https://trac.videolan.org/vlc/ticket/1267]<br />
|<br />
|-<br />
| [https://www.warsow.gg/ warsow]<br />
| {{ic|~/.warsow-2.x}}<br />
| [https://github.com/Qfusion/qfusion/commit/98ece3f 98ece3f]<br />
| [https://github.com/Qfusion/qfusion/issues/298]<br />
|<br />
|-<br />
| [[wireshark]]<br />
| {{ic|~/.wireshark}}<br />
| [https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b0b53fa5937aa7ba258427ca0f3581dba725230d b0b53fa5]<br />
|<br />
|<br />
|-<br />
| [https://github.com/derat/xsettingsd xsettingsd]<br />
| {{ic|~/.xsettingsd}}<br />
| [https://github.com/derat/xsettingsd/commit/b4999f5e9e99224caf97d09f25ee731774ecd7be 4ecd7be]<br />
|<br />
|<br />
|-<br />
| [[xmonad]]<br />
| {{ic|~/.xmonad}}<br />
| [https://github.com/xmonad/xmonad/commit/40fc10b6a5682ce1d6ba7f0679962926ef6cfade 40fc10b6]<br />
| [https://github.com/xmonad/xmonad/issues/61] [https://code.google.com/p/xmonad/issues/detail?id=484]<br />
| Alternatively the environments {{ic|XMONAD_CONFIG_HOME}}, {{ic|XMONAD_DATA_HOME}}, and {{ic|XMONAD_CACHE_HOME}} are also available.<br />
|}<br />
<br />
==Partial==<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Supported Since<br />
! Discussion<br />
! Notes<br />
|-<br />
| [http://abook.sourceforge.net/ abook]<br />
| {{ic|~/.abook}}<br />
|<br />
|<br />
| {{ic|1=$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc \<br />
--datafile "$XDG_CACHE_HOME"/abook/addressbook}}<br />
|-<br />
| [[Anki]]<br />
| {{ic|~/Anki}}<br />
<br />
{{ic|~/Documents/Anki}}<br />
|<br />
| [https://github.com/dae/anki/pull/49] [https://github.com/dae/anki/pull/58]<br />
| {{ic|1=$ anki -b "$XDG_DATA_HOME"/Anki}}<br />
|-<br />
| [[aspell]]<br />
| {{ic|~/.aspell.conf}}<br />
|<br />
|<br />
|<br />
|-<br />
| [[Atom]]<br />
| {{ic|~/.atom}}<br />
|<br />
| [https://github.com/atom/atom/issues/8281]<br />
| {{ic|1=$ export ATOM_HOME="$XDG_DATA_HOME"/atom}}<br />
|-<br />
| [http://crates.io/ cargo]<br />
| {{ic|~/.cargo}}<br />
|<br />
| [https://github.com/rust-lang/cargo/pull/148] [https://github.com/rust-lang/cargo/issues/1734] [https://github.com/rust-lang/rfcs/pull/1615]<br />
| {{ic|1=$ export CARGO_HOME="$XDG_DATA_HOME"/cargo}}<br />
|-<br />
| [[ccache]]<br />
| {{ic|~/.ccache}}<br />
|<br />
|<br />
| {{ic|1=$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache}}<br />
|-<br />
| [https://github.com/cisco/ChezScheme ChezScheme]<br />
| {{ic|~/.chezscheme_history}}<br />
|<br />
|<br />
| {{ic|1=$ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history}}<br />
|-<br />
| [[conky]]<br />
| {{ic|~/.conkyrc}}<br />
| [https://github.com/brndnmtthws/conky/commit/00481ee9a97025e8e2acd7303d080af1948f7980 00481ee]<br />
| [https://github.com/brndnmtthws/conky/issues/144]<br />
| {{ic|1=$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc}}<br />
|-<br />
| [[coreutils]]<br />
| {{ic|~/.dircolors}}<br />
|<br />
|<br />
| {{ic|1=$ source "$(dircolors "$XDG_CONFIG_HOME"/dircolors)"}}<br />
|-<br />
| [http://www.dungeoncrawl.org/ crawl]<br />
| {{ic|~/.crawl}}<br />
|<br />
|<br />
| The trailing slash is required:<br />
<br />
{{ic|1=$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/}}<br />
|-<br />
| [[dict]]<br />
| {{ic|~/.dictrc}}<br />
|<br />
|<br />
| {{ic|1=$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc}}<br />
|-<br />
| [[ELinks]]<br />
| {{ic|~/.elinks}}<br />
|<br />
|<br />
| {{ic|1=$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks}}<br />
|-<br />
| [http://kripken.github.io/emscripten-site/ emscripten]<br />
| {{ic|~/.emscripten}}<br />
<br />
{{ic|~/.emscripten_sanity}}<br />
<br />
{{ic|~/.emscripten_ports}}<br />
<br />
{{ic|~/.emscripten_cache__last_clear}}<br />
|<br />
| [https://github.com/kripken/emscripten/issues/3624 3624]<br />
| {{ic|1=$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config}}<br />
<br />
{{ic|1=$ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache}}<br />
<br />
{{ic|1=$ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache}}<br />
<br />
{{ic|1=$ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config \<br />
--em-cache "$XDG_CACHE_HOME"/emscripten/cache}}<br />
|-<br />
| [http://www.gnu.org/software/gdb/ gdb]<br />
| {{ic|~/.gdbinit}}<br />
|<br />
|<br />
| {{ic|1=$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init}}<br />
|-<br />
| [https://github.com/get-iplayer/get_iplayer get_iplayer]<br />
| {{ic|~/.get_iplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer}}<br />
|-<br />
| [[GIMP]]<br />
| {{ic|~/.gimp-2.8}}<br />
{{ic|~/.thumbnails}}<br />
| [https://git.gnome.org/browse/gimp/commit/?id=60e0cfe 60e0cfe]<br />
| [https://bugzilla.gnome.org/show_bug.cgi?id=166643] [https://mail.gnome.org/archives/gimp-developer-list/2012-October/msg00028.html]<br />
| {{ic|1=$ export GIMP2_DIRECTORY="$XDG_CONFIG_HOME"/gimp}}<br />
|-<br />
| [http://guichaz.free.fr/gliv/ gliv]<br />
| {{ic|~/.glivrc}}<br />
|<br />
|<br />
| {{ic|1=$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc}}<br />
|-<br />
| [[GnuPG]]<br />
| {{ic|~/.gnupg}}<br />
|<br />
| [https://bugs.gnupg.org/gnupg/issue1456] [https://bugs.gnupg.org/gnupg/issue1018]<br />
| {{ic|1=$ export GNUPGHOME="$XDG_CONFIG_HOME"/gnupg}}<br />
<br />
{{ic|1=$ gpg2 --homedir "$XDG_CONFIG_HOME"/gnupg}}<br />
|-<br />
| [[Google Earth]]<br />
| {{ic|~/.googleearth}}<br />
|<br />
|<br />
| Some paths can be changed with the {{ic|KMLPath}} and {{ic|CachePath}} options in {{ic|~/.config/Google/GoogleEarthPlus.conf}}<br />
|-<br />
| [https://sourceforge.net/projects/gqclient GQ LDAP client]<br />
| {{ic|~/.gq}}<br />
{{ic|~/.gq-state}}<br />
| [https://sourceforge.net/p/gqclient/mailman/message/2053978 1.51]<br />
|<br />
| {{ic|1=$ export GQRC="$XDG_CONFIG_HOME"/gqrc}}<br />
<br />
{{ic|1=$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state}}<br />
<br />
{{ic|1=$ mkdir -p "$(dirname "$GQSTATE")"}}<br />
|-<br />
| [https://gradle.org/ gradle]<br />
| {{ic|~/.gradle}}<br />
|<br />
| [https://discuss.gradle.org/t/be-a-nice-freedesktop-citizen-move-the-gradle-to-the-appropriate-location-in-linux/2199]<br />
| {{ic|1=$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle}}<br />
|-<br />
| [[gtk]]<br />
| {{ic|~/.gtkrc}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc}}<br />
|-<br />
| [[gtk|gtk2]]<br />
| {{ic|~/.gtkrc-2.0}}<br />
|<br />
|<br />
| {{ic|1=$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc}}<br />
|-<br />
| [http://httpie.org httpie]<br />
| {{ic|~/.httpie}}<br />
|<br />
| [https://github.com/jakubroztocil/httpie/issues/145]<br />
| {{ic|1=$ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie}}<br />
|-<br />
| [http://ipython.org ipython]/[[jupyter]]<br />
| {{ic|~/.ipython}}<br />
|<br />
|<br />
| {{ic|1=$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter}}<br />
<br />
{{ic|1=$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter}}<br />
|-<br />
| [[irssi]]<br />
| {{ic|~/.irssi}}<br />
|<br />
| [https://github.com/irssi/irssi/pull/511]<br />
| {{ic|1=$ irssi --config="$XDG_CONFIG_HOME"/irssi/config \<br />
--home="$XDG_DATA_HOME"/irssi}}<br />
|-<br />
| [[isync]]<br />
| {{ic|~/.mbsyncrc}}<br />
|<br />
|<br />
| {{ic|1=$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc}}<br />
|-<br />
| [[core utilities#less|less]]<br />
| {{ic|~/.lesshst}}<br />
|<br />
|<br />
| {{ic|1=$ mkdir -p "$XDG_CACHE_HOME"/less}}<br />
<br />
{{ic|1=$ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history}}<br />
<br />
{{ic|1=$ export LESSHISTFILE=-}} can be used to disable this feature.<br />
<br />
{{ic|1=$ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey}}<br />
|-<br />
| [http://www.videolan.org/developers/libdvdcss.html libdvdcss]<br />
| {{ic|~/.dvdcss}}<br />
|<br />
| [https://mailman.videolan.org/pipermail/libdvdcss-devel/2014-August/001022.html]<br />
| {{ic|1=$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss}}<br />
|-<br />
| [https://www.x.org/releases/current/doc/libICE/ice.html libice]<br />
| {{ic|~/.ICEauthority}}<br />
|<br />
| [https://bugs.freedesktop.org/show_bug.cgi?id=49173]<br />
| {{ic|1=$ export ICEAUTHORITY="$XDG_RUNTIME_DIR"/ICEauthority}}<br />
|-<br />
| [[Xorg|libx11]]<br />
| {{ic|~/.XCompose}}<br />
|<br />
|<br />
| {{ic|1=$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose}}<br />
|-<br />
| [http://ltrace.org/ ltrace]<br />
| {{ic|~/.ltrace.conf}}<br />
|<br />
|<br />
| {{ic|1=$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf}}<br />
|-<br />
| {{pkg|maven}}<br />
| {{ic|~/.m2}}<br />
|<br />
|<br />
| {{ic|1=$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml}}<br />
{{hc|[http://maven.apache.org/settings.html settings.xml]|<nowiki><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"<br />
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0<br />
https://maven.apache.org/xsd/settings-1.0.0.xsd"><br />
...<br />
<localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository><br />
...<br />
</settings></nowiki>}}<br />
|-<br />
| [[Mathematica]]<br />
| {{ic|~/.Mathematica}}<br />
|<br />
|<br />
| {{ic|1=$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica}}<br />
|-<br />
| [http://mednafen.sourceforge.net/ mednafen]<br />
| {{ic|~/.mednafen}}<br />
|<br />
|<br />
| {{ic|1=$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen}}<br />
|-<br />
| [[moc]]<br />
| {{ic|~/.moc}}<br />
|<br />
|<br />
| {{ic|1=$ mocp -M "$XDG_CONFIG_HOME"/moc}}<br />
<br />
{{ic|1=$ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc}}<br />
|-<br />
| [[MPlayer]]<br />
| {{ic|~/.mplayer}}<br />
|<br />
|<br />
| {{ic|1=$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer}}<br />
|-<br />
| {{pkg|ncurses}}<br />
| {{ic|~/.terminfo}}<br />
|<br />
|<br />
| Precludes system path searching:<br />
<br />
{{ic|1=$ export TERMINFO="$XDG_DATA_HOME"/terminfo}}<br />
<br />
{{ic|1=$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo}}<br />
|-<br />
| [http://www.musicpd.org/clients/ncmpc/ ncmpc]<br />
| {{ic|~/.ncmpc}}<br />
|<br />
|<br />
| {{ic|ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config}}<br />
|-<br />
| [[NetBeans]]<br />
| {{ic|~/.netbeans}}<br />
|<br />
| [https://netbeans.org/bugzilla/show_bug.cgi?id=215961]<br />
| {{ic|1=$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans}}<br />
|-<br />
| [[notmuch]]<br />
| {{ic|~/.notmuch-config}}<br />
|<br />
| [http://notmuchmail.org/pipermail/notmuch/2011/007007.html]<br />
| {{ic|1=$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc}}<br />
<br />
{{ic|1=$ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug}}<br />
|-<br />
| {{pkg|npm}}<br />
| {{ic|~/.npm}}<br />
<br />
{{ic|~/.npmrc}}<br />
|<br />
| [https://github.com/npm/npm/issues/6675]<br />
| {{ic|1=$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc}}<br />
{{hc|npmrc|<nowiki>cache=$XDG_CACHE_HOME/npm<br />
prefix=$XDG_DATA_HOME/npm</nowiki>}}<br />
{{ic|prefix}} is unnecessary (and unsupported) if Node.js is installed by {{AUR|nvm}}.<br />
|-<br />
| [[NVIDIA]], [[CUDA]]<br />
| {{ic|~/.nv}}<br />
|<br />
|<br />
| {{ic|1=$ export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME"/nv}}<br />
<br />
{{ic|1=$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv}}<br />
|-<br />
| [https://github.com/NVIDIA/nvidia-settings nvidia-settings]<br />
| {{ic|~/.nvidia-settings-rc}}<br />
|<br />
|<br />
| {{ic|1=$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings}}<br />
|-<br />
| {{AUR|nvm}}<br />
| {{ic|~/.nvm}}<br />
|<br />
|<br />
| {{ic|1=$ export NVM_DIR="$XDG_DATA_HOME"/nvm}}<br />
|-<br />
| [http://www.openscad.org/ openscad]<br />
| {{ic|~/.OpenSCAD}}<br />
| [https://github.com/openscad/openscad/commit/7c3077b0f 7c3077b0f]<br />
| [https://github.com/openscad/openscad/issues/125]<br />
| Does not fully honour XDG Base Directory Specification, see [https://github.com/openscad/openscad/issues/373]<br />
<br />
Currently it [https://github.com/openscad/openscad/blob/master/src/PlatformUtils-posix.cc#L20 hard-codes] {{ic|~/.local/share}}.<br />
|-<br />
| [[OpenSSL]]<br />
| {{ic|~/.rnd}}<br />
|<br />
|<br />
| Seeding file .rnd's location can be set with RANDFILE environment variable per [https://www.openssl.org/docs/faq.html FAQ].<br />
|-<br />
| {{pkg|pass}}<br />
| {{ic|~/.password-store}}<br />
|<br />
|<br />
| {{ic|1=$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass}}<br />
|-<br />
| {{pkg|pidgin}}<br />
| {{ic|~/.purple}}<br />
|<br />
|<br />
| {{ic|1=$ pidgin --config="$XDG_DATA_HOME"/purple}}<br />
|-<br />
| [https://www.postgresql.org/ postgresql]<br />
| {{ic|~/.psqlrc}}<br />
{{ic|~/.psql_history}}<br />
<br />
{{ic|~/.pgpass}}<br />
<br />
{{ic|~/.pg_service.conf}}<br />
| 9.2<br />
9.2<br />
<br />
8.1<br />
<br />
9.0<br />
| [https://www.postgresql.org/docs/current/static/app-psql.html]<br />
[https://www.postgresql.org/docs/current/static/app-psql.html]<br />
<br />
[https://www.postgresql.org/docs/current/static/libpq-envars.html]<br />
<br />
[https://www.postgresql.org/docs/current/static/libpq-envars.html]<br />
| {{ic|1=$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc"}}<br />
{{ic|1=$ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history"}}<br />
<br />
{{ic|1=$ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass"}}<br />
<br />
{{ic|1=$ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"}}<br />
<br />
It is required to create both directories {{ic|1=$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"}}<br />
|-<br />
| [[PulseAudio]]<br />
| {{ic|~/.esd_auth}}<br />
|<br />
|<br />
| Very likely generated by the {{ic|module-esound-protocol-unix.so}} module. It can be configured to use a different location but it makes much more sense to just comment out this module in {{ic|/etc/pulse/default.pa}} or {{ic|"$XDG_CONFIG_HOME"/pulse/default.pa}}.<br />
|-<br />
| [https://pypi.python.org/pypi/setuptools python-setuptools]<br />
| {{ic|~/.python-eggs}}<br />
|<br />
|<br />
| {{ic|1=$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs}}<br />
|-<br />
| [[readline]]<br />
| {{ic|~/.inputrc}}<br />
|<br />
|<br />
| {{ic|1=$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc}}<br />
|-<br />
| [http://utopia.knoware.nl/~hlub/uck/rlwrap/ rlwrap]<br />
| {{ic|~/.*_history}}<br />
|<br />
| [https://github.com/hanslub42/rlwrap/issues/25]<br />
| {{ic|1=$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap}}<br />
|-<br />
| [http://www.scala-sbt.org/ sbt]<br />
| {{ic|~/.sbt}}<br />
{{ic|~/.ivy2}}<br />
|<br />
|<br />
| {{ic|1=$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt}}<br />
|-<br />
| [[screen]]<br />
| {{ic|~/.screenrc}}<br />
|<br />
|<br />
| {{ic|1=$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc}}<br />
|-<br />
| [https://www.stackage.org/ stack]<br />
| {{ic|~/.stack}}<br />
|<br />
| [https://github.com/commercialhaskell/stack/issues/342]<br />
| {{ic|1=$ export STACK_ROOT="$XDG_DATA_HOME"/stack}}<br />
|-<br />
| [[subversion]]<br />
| {{ic|~/.subversion}}<br />
|<br />
| [https://issues.apache.org/jira/browse/SVN-4599] [https://mail-archives.apache.org/mod_mbox/subversion-users/201204.mbox/%3c4F8FBCC6.4080205@ritsuka.org%3e][http://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3c20150917222954.GA20331@teapot%3e]<br />
| {{ic|1=$ svn --config-dir "$XDG_CONFIG_HOME"/subversion}}<br />
|-<br />
| {{pkg|task}}<br />
| {{ic|~/.task}}<br />
<br />
{{ic|~/.taskrc}}<br />
|<br />
|<br />
| {{ic|1=$ export TASKDATA="$XDG_DATA_HOME"/task}}<br />
<br />
{{ic|1=$ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc}}<br />
|-<br />
| [http://jonas.nitro.dk/tig/ tig]<br />
| {{ic|~/.tigrc}}<br />
|<br />
|<br />
| {{ic|1=$ export TIGRC_USER="$XDG_CONFIG_HOME"/tig/tigrc}}<br />
|-<br />
| [http://tiptop.gforge.inria.fr/ tiptop]<br />
| {{ic|~/.tiptoprc}}<br />
|<br />
|<br />
| This will still expect the {{ic|.tiptoprc}} file.<br />
{{ic|$ tiptop -W "$XDG_CONFIG_HOME"/tiptop}}<br />
|-<br />
| [[tmux]]<br />
| {{ic|~/.tmux.conf}}<br />
|<br />
| [http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/6013] [http://sourceforge.net/p/tmux/mailman/message/30619546/]<br />
| {{ic|1=$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf}}<br />
<br />
{{ic|1=$ export TMUX_TMPDIR="$XDG_RUNTIME_DIR"}}<br />
|-<br />
| [https://github.com/bengardner/uncrustify uncrustify]<br />
| {{ic|~/.uncrustify.cfg}}<br />
|<br />
|<br />
| {{ic|1=$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg}}<br />
|-<br />
| [[Unison]]<br />
| {{ic|~/.unison}}<br />
|<br />
|<br />
| {{ic|1=$ export UNISON="$XDG_DATA_HOME"/unison}}<br />
|-<br />
| [[Rxvt-unicode/Tips_and_tricks#Daemon-client|urxvtd]]<br />
| {{ic|~/.urxvt/urxvtd-hostname}}<br />
|<br />
|<br />
| {{ic|1=$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd}}<br />
|-<br />
| [[WeeChat]]<br />
| {{ic|~/.weechat}}<br />
|<br />
| [http://savannah.nongnu.org/task/?10934]<br />
| {{ic|1=$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat}}<br />
<br />
{{ic|1=$ weechat -d "$XDG_CONFIG_HOME"/weechat}}<br />
|-<br />
| [[wget]]<br />
| {{ic|~/.wgetrc}}<br />
|<br />
|<br />
| {{ic|1=$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"}}<br />
|-<br />
| [[wine]]<br />
| {{ic|~/.wine}}<br />
|<br />
| [https://bugs.winehq.org/show_bug.cgi?id=20888]<br />
| [[Wine#Winetricks|Winetricks]] uses XDG-alike location below for [[Wine#WINEPREFIX|WINEPREFIX]] management:<br />
{{ic|1=$ mkdir -p "$XDG_DATA_HOME"/wineprefixes}}<br />
<br />
{{ic|1=$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default}}<br />
|-<br />
| {{pkg|xorg-xauth}}<br />
| {{ic|~/.Xauthority}}<br />
|<br />
|<br />
| {{ic|1=$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority}}<br />
|-<br />
| {{pkg|xorg-xinit}}<br />
| {{ic|~/.xinitrc}}<br />
<br />
{{ic|~/.xserverrc}}<br />
|<br />
|<br />
| {{ic|1=$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc}}<br />
{{ic|1=$ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc}}<br />
<br />
Note that these variables are respected by ''xinit'', but not by ''startx''.<br />
|-<br />
| {{pkg|xorg-xrdb}}<br />
| {{ic|~/.Xresources}}<br />
<br />
{{ic|~/.Xdefaults}}<br />
|<br />
|<br />
| 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}}.<br />
|-<br />
| [http://www.vergenet.net/~conrad/software/xsel/ xsel]<br />
| {{ic|~/.xsel.log}}<br />
|<br />
| [https://github.com/kfish/xsel/issues/10]<br />
| {{ic|1=$ xsel --logfile "$XDG_CACHE_HOME"/xsel/xsel.log}}<br />
|}<br />
<br />
==Hardcoded==<br />
<br />
{| class="wikitable sortable" style="width: 100%"<br />
! Application<br />
! Legacy Path<br />
! Discussion<br />
! Notes<br />
|-<br />
| [[adb]]<br />
| {{ic|~/.android}}<br />
| [https://developer.android.com/studio/command-line/variables.html#android_sdk_root]<br />
| {{ic|1=$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android}}<br />
|-<br />
| [[AMule]]<br />
| {{ic|~/.aMule}}<br />
|<br />
|<br />
|-<br />
| [https://developer.android.com/studio/index.html Android Studio]<br />
| {{ic|~/.AndroidStudio2.3}}<br />
<br />
{{ic|~/.android}}<br />
<br />
{{ic|~/.java}}<br />
|<br />
|<br />
|-<br />
| [https://osdn.net/projects/anthy/ anthy]<br />
| {{ic|~/.anthy}}<br />
| [https://osdn.net/ticket/browse.php?group_id=14&tid=28397]<br />
|<br />
|-<br />
| [https://directory.apache.org/studio/ Apache Directory Studio]<br />
| {{ic|~/.ApacheDirectoryStudio}}<br />
|<br />
|-<br />
| [https://www.audacityteam.org/ Audacity]<br />
| {{ic|~/.audacity-data}}<br />
|<br />
|<br />
|-<br />
| [http://fixounet.free.fr/avidemux/ Avidemux]<br />
| {{ic|~/.avidemux6}}<br />
|<br />
|<br />
|-<br />
| [[bash]]<br />
| {{ic|~/.bashrc}}<br />
<br />
{{ic|~/.bash_history}}<br />
<br />
{{ic|~/.bash_profile}}<br />
<br />
{{ic|~/.bash_login}}<br />
<br />
{{ic|~/.bash_logout}}<br />
| [http://savannah.gnu.org/support/?108134]<sup>won't<br />
| A specified {{ic|bashrc}} can be sourced from {{ic|/etc/bashrc}}<br />
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/bash/history}}<br />
|-<br />
| [[bazaar]]<br />
| {{ic|~/.bazaar}}<br />
<br />
{{ic|~/.bzr.log}}<br />
|<br />
|<br />
|-<br />
| [https://www.haskell.org/cabal/ cabal]<br />
| {{ic|~/.cabal}}<br />
| [https://github.com/haskell/cabal/issues/680]<br />
| See discussion for potential workarounds. It is not very easy or straightforward but may be possible to emulate Base Directory compliance.<br />
|-<br />
| [https://calibre-ebook.com/ calibre]<br />
| {{ic|~/Calibre Library}}<br />
|<br />
|<br />
|-<br />
| [[CUPS]]<br />
| {{ic|~/.cups}}<br />
| [http://www.cups.org/str.php?L4243]<sup>won't<br />
|<br />
|-<br />
| [[darcs]]<br />
| {{ic|~/.darcs}}<br />
| [http://bugs.darcs.net/issue2453]<br />
|<br />
|-<br />
| [[dbus]]<br />
| {{ic|~/.dbus}}<br />
| [https://bugs.freedesktop.org/show_bug.cgi?id=35887]<br />
| This should be avoidable with kdbus [citation needed].<br />
|-<br />
| [https://wiki.gnome.org/Apps/Dia Dia]<br />
| {{ic|~/.dia}}<br />
|<br />
|-<br />
| [[eclipse]]<br />
| {{ic|~/.eclipse}}<br />
| [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200809]<br />
| 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}})<br />
|-<br />
| [https://www.gnu.org/software/emacs/ emacs]<br />
| {{ic|~/.emacs}}<br />
<br />
{{ic|~/.emacs.d}}<br />
| [http://debbugs.gnu.org/cgi/bugreport.cgi?bug=583]<br />
| 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.<br />
|-<br />
| [http://www.fetchmail.info/ Fetchmail]<br />
| {{ic|~/.fetchmailrc}}<br />
|<br />
|<br />
|-<br />
| [[Firefox]]<br />
| {{ic|~/.mozilla}}<br />
| [https://bugzil.la/259356]<br />
|<br />
|-<br />
| [https://www.haskell.org/ghc/ GHC]<br />
| {{ic|~/.ghc}}<br />
| [https://ghc.haskell.org/trac/ghc/ticket/6077]<br />
|<br />
|-<br />
| [http://www.gnu.org/software/parallel/ GNU parallel]<br />
| {{ic|~/.parallel}}<br />
|<br />
|<br />
|-<br />
| [http://recordmydesktop.sourceforge.net/about.php gtk-recordMyDesktop]<br />
| {{ic|~/.gtk-recordmydesktop}}<br />
|<br />
|<br />
|-<br />
| [http://www.idris-lang.org/ idris]<br />
| {{ic|~/.idris}}<br />
| [https://github.com/idris-lang/Idris-dev/pull/3456]<br />
|<br />
|-<br />
| [http://julialang.org/ julia]<br />
| {{ic|~/.juliarc.jl}}<br />
<br />
{{ic|~/.julia_history}}<br />
| [https://github.com/JuliaLang/julia/issues/4630] [https://github.com/JuliaLang/julia/issues/10016]<br />
|<br />
|-<br />
| [http://www.linux-pam.org/ Linux PAM]<br />
| {{ic|~/.pam_environment}}<br />
|<br />
| Hardcoded in [https://github.com/linux-pam/linux-pam/blob/master/modules/pam_env/pam_env.c modules/pam_env/pam_env.c]<br />
|-<br />
| [http://lldb.llvm.org/ lldb]<br />
| {{ic|~/.lldb}}<br />
<br />
{{ic|~/.lldbinit}}<br />
|<br />
|<br />
|-<br />
| [http://www.mathomatic.org/ mathomatic]<br />
| {{ic|~/.mathomaticrc}}<br />
<br />
{{ic|~/.matho_history}}<br />
|<br />
| History can be moved by using {{ic|rlwrap mathomatic -r}} with the {{ic|RLWRAP_HOME}} environment set appropriately.<br />
|-<br />
| [http://www.milkytracker.org/ milkytracker]<br />
| {{ic|~/.milkytracker_config}}<br />
| [https://github.com/Deltafire/MilkyTracker/issues/12]<br />
|<br />
|-<br />
| [https://minecraft.net/ Minecraft]<br />
| {{ic|~/.minecraft}}<br />
| [https://bugs.mojang.com/browse/MCL-2563]<br />
|<br />
|-<br />
| [https://www.mongodb.org/ mongodb]<br />
| {{ic|~/.mongorc.js}}<br />
<br />
{{ic|~/.dbshell}}<br />
| [https://jira.mongodb.org/browse/DOCS-5652?jql=text%20~%20%22.mongorc.js%22]<br />
| [http://stackoverflow.com/a/22349050/4200039 This Stack Overflow thread] suggests a partial workaround using command-line switch {{ic|--norc}}.<br />
|-<br />
|<br />
| {{ic|~/.netrc}}<br />
|<br />
| 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.<br />
|-<br />
| [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS NSS]<br />
| {{ic|~/.pki}}<br />
| [https://bugzilla.mozilla.org/show_bug.cgi?id=818686]<br />
|<br />
|-<br />
| [https://www.openssh.com/ OpenSSH]<br />
| {{ic|~/.ssh}}<br />
| [https://bugzilla.mindrot.org/show_bug.cgi?id=2050]<br />
| Assumed to be present by many ssh daemons and clients such as DropBear and OpenSSH.<br />
|-<br />
| [https://www.palemoon.org/ palemoon]<br />
| {{ic|~/.moonchild productions}}<br />
| [https://forum.palemoon.org/viewtopic.php?f=5&t=9639]<br />
|<br />
|-<br />
| [https://perf.wiki.kernel.org/index.php/Main_Page perf]<br />
| {{ic|~/.debug}}<br />
|<br />
| Hardcoded in [https://github.com/torvalds/linux/blob/master/tools/perf/util/config.c#L18 tools/perf/util/config.c:18].<br />
|-<br />
| various [[shell]]s and [[display manager]]s<br />
| {{ic|~/.profile}}<br />
|<br />
|<br />
|-<br />
| [[python]]<br />
| {{ic|~/.python_history}}<br />
|<br />
| All history from interactive sessions is saved to {{ic|~/.python_history}} by default since [https://bugs.python.org/issue5845 version 3.4], custom path can still be set the same way as in older versions (see [https://docs.python.org/3/library/readline.html?highlight=readline#example this example]).<br />
|-<br />
| [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer]<br />
| {{ic|~/.designer}}<br />
|<br />
|<br />
|-<br />
| [https://quodlibet.readthedocs.io/en/latest/ quodlibet]<br />
| {{ic|~/.quodlibet}}<br />
|<br />
|<br />
|-<br />
| [https://racket-lang.org/ racket]<br />
| {{ic|~/.racketrc}}<br />
|<br />
|<br />
|-<br />
| [http://rednotebook.sourceforge.net/ RedNotebook]<br />
| {{ic|~/.rednotebook}}<br />
|<br />
|<br />
|-<br />
| [https://remarkableapp.github.io/linux.html Remarkable]<br />
| {{ic|~/.remarkable}}<br />
|<br />
|<br />
|-<br />
| [https://www.scribus.net/ Scribus]<br />
| {{ic|~/.scribus}}<br />
|<br />
|-<br />
| [http://www.seamonkey-project.org/ SeaMonkey]<br />
| {{ic|~/.mozilla}}<br />
| [https://bugzil.la/726939]<br />
|<br />
|-<br />
| [[Skype]] < 5.0<br />
| {{ic|~/.Skype}}<br />
| [https://community.skype.com/t5/Linux-archive/Skype-violates-XDG-basedir-spec-on-linux/td-p/4175884]<br />
|<br />
|-<br />
| [https://www.gnu.org/software/solfege/solfege.html Solfege]<br />
| {{ic|~/.solfege}}<br />
<br />
{{ic|~/.solfegerc}}<br />
<br />
{{ic|~/lessonfiles}}<br />
| [https://savannah.gnu.org/bugs/index.php?50251]<br />
|<br />
|-<br />
| [https://spamassassin.apache.org/ SpamAssassin]<br />
| {{ic|~/.spamassassin}}<br />
|<br />
|<br />
|-<br />
| [[spectrwm]]<br />
| {{ic|~/.spectrwm}}<br />
|<br />
|<br />
|-<br />
| [[SQLite]]<br />
| {{ic|~/.sqlite_history}}<br />
<br />
{{ic|~/.sqliterc}}<br />
| [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]<br />
| {{ic|$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc}}<br />
|-<br />
| [[Steam]]<br />
| {{ic|~/.steam}}<br />
| [https://github.com/ValveSoftware/steam-for-linux/issues/1890]<br />
|<br />
|-<br />
| [[TeamSpeak]]<br />
| {{ic|~/.ts3client}}<br />
|<br />
|-<br />
| [http://www.texmacs.org/ TeXmacs]<br />
| {{ic|~/.TeXmacs}}<br />
|<br />
|<br />
|-<br />
| [[Thunderbird]]<br />
| {{ic|~/.thunderbird}}<br />
| [https://bugzil.la/735285]<br />
|<br />
|-<br />
| [https://git.archlinux.org/users/remy/texlive-localmanager.git/ tllocalmgr]<br />
| {{ic|~/.texlive}}<br />
|<br />
|-<br />
| [[vim]]<br />
| {{ic|~/.vim}}<br />
<br />
{{ic|~/.vimrc}}<br />
<br />
{{ic|~/.viminfo}}<br />
|<br />
| Since [https://github.com/vim/vim/commit/6a459902592e2a4ba68 7.3.1178] vim will search for {{ic|~/.vim/vimrc}} if {{ic|~/.vimrc}} is not found.<br />
<br />
{{ic|1=<nowiki>$ mkdir -p "$XDG_CACHE_HOME"/vim/{undo,swap,backup}</nowiki>}}<br />
<br />
{{hc|"$XDG_CONFIG_HOME"/vim/vimrc|<br />
set undodir&#61;$XDG_CACHE_HOME/vim/undo<br />
set directory&#61;$XDG_CACHE_HOME/vim/swap<br />
set backupdir&#61;$XDG_CACHE_HOME/vim/backup<br />
set viminfo+&#61;'1000,n$XDG_CACHE_HOME/vim/viminfo<br />
set runtimepath&#61;$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIMRUNTIME<br />
}}<br />
<br />
{{hc|~/.profile|<br />
export VIMINIT&#61;":source $XDG_CONFIG_HOME"/vim/vimrc<br />
}}<br />
<br />
* https://tlvince.com/vim-respect-xdg<br />
|-<br />
| [http://www.vimperator.org/ vimperator]<br />
| {{ic|~/.vimperatorrc}}<br />
| [http://www.mozdev.org/pipermail/vimperator/2009-October/004848.html]<br />
| {{ic|1=$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"}}<br />
<br />
{{ic|1=$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator}}<br />
|-<br />
| [https://w1.fi/ wpa_cli]<br />
| {{ic|~/.wpa_cli_history}}<br />
|<br />
|<br />
|-<br />
| {{pkg|xdg-utils}}<br />
| {{ic|~/.gnome}}<br />
|<br />
| 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.<br />
|-<br />
| [https://opensource.conformal.com/wiki/xombrero xombrero]<br />
| {{ic|~/.xombrero}}<br />
| [https://github.com/conformal/xombrero/issues/74]<br />
|<br />
|-<br />
| [[zsh]]<br />
| {{ic|~/.zshrc}}<br />
<br />
{{ic|~/.zprofile}} {{ic|~/.zshenv}}<br />
<br />
{{ic|~/.zlogin}} {{ic|~/.zlogout}}<br />
<br />
{{ic|~/.histfile}}<br />
| [http://www.zsh.org/mla/workers/2013/msg00692.html]<br />
| 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.<br />
<br />
{{ic|1=$ export HISTFILE="$XDG_DATA_HOME"/zsh/history}}<br />
|}<br />
<br />
==Library and language support==<br />
<br />
; C<br />
: [https://github.com/Cloudef/chck/tree/master/chck/xdg C99: Cloudef's simple implementation].<br />
<br />
; Haskell<br />
: Officially in [https://hackage.haskell.org/package/directory directory] since 1.2.3.0 [https://github.com/haskell/directory/commit/ab9d0810ce ab9d0810ce].<br />
: [https://hackage.haskell.org/package/xdg-basedir xdg-basedir]<br />
<br />
; Perl<br />
: [http://search.cpan.org/dist/File-BaseDir/lib/File/BaseDir.pm File-BaseDir]<br />
: [https://github.com/Aerdan/perl-file-xdg perl-file-xdg]<br />
<br />
; Python<br />
: [http://freedesktop.org/wiki/Software/pyxdg/ pyxdg]<br />
<br />
; Vala<br />
: Builtin support via [http://valadoc.org/#!api=glib-2.0/GLib.Environment GLib.Environment].<br />
: See {{ic|get_user_cache_dir}}, {{ic|get_user_data_dir}}, {{ic|get_user_config_dir}}, etc.<br />
<br />
==See also==<br />
<br />
* [https://wiki.gnome.org/Initiatives/GnomeGoals/XDGConfigFolders GNOME Goal: XDG Base Directory Specification Usage]<br />
* [https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp Rob Pike: "Dotfiles" being hidden is a UNIXv2 mistake].<br />
* [http://www.freedesktop.org/software/systemd/man/systemd-path.html systemd-path(1)]<br />
* [http://www.freedesktop.org/software/systemd/man/file-hierarchy.html file-hierarchy(7)]<br />
* [https://github.com/grawity/dotfiles/blob/master/.dotfiles.notes Grawity's notes on dotfiles].<br />
* [https://github.com/grawity/dotfiles/blob/master/.environ.notes Grawity's notes on environment variables].<br />
* [https://ploum.net/207-modify-your-application-to-use-xdg-folders/ ploum.net: Modify Your Application to use XDG Folders].</div>Elbahekhttps://wiki.archlinux.org/index.php?title=Vagrant&diff=355879Vagrant2015-01-08T13:18:47Z<p>Elbahek: </p>
<hr />
<div>[[Category:Virtualization]]<br />
[[ja:Vagrant]]<br />
{{Related articles start}}<br />
{{Related|Docker}}<br />
{{Related|KVM}}<br />
{{Related|Libvirt}}<br />
{{Related|VirtualBox}}<br />
{{Related articles end}}<br />
<br />
[http://www.vagrantup.com Vagrant] is a tool for managing and configuring virtualised development environments.<br />
<br />
Vagrant has a concept of 'providers', which map to the virtualisation engine and its API. The most popular and well-supported provider is Virtualbox; plugins exist for {{ic|libvirt}}, {{ic|kvm}}, {{ic|lxc}}, {{ic|vmware}} and more.<br />
<br />
Vagrant uses a mostly declarative {{ic|Vagrantfile}} to define virtualised machines. A single Vagrantfile can define multiple machines.<br />
<br />
See also [[Wikipedia:Vagrant (software)]].<br />
<br />
== Installing Vagrant ==<br />
<br />
Install {{Pkg|vagrant}} from the [[official repositories]].<br />
<br />
== Plugins ==<br />
<br />
Vagrant [https://news.ycombinator.com/item?id=4408754 has a middleware architecture] providing support for powerful plugins.<br />
<br />
Plugins can be installed with Vagrant's built-in plugin manager. You can specify multiple plugins to install:<br />
<br />
$ vagrant plugin install vagrant-vbguest vagrant-share<br />
<br />
=== vagrant-kvm ===<br />
<br />
This plugin supports [[KVM]] as the virtualisation provider.<br />
<br />
Vagrant installs a self-contained rainbow environment in /opt which [https://github.com/adrahon/vagrant-kvm/issues/14 interacts with the system ruby in Arch in confusing ways]. As of vagrant 1.4.3, this invocation will install vagrant-kvm successfully:<br />
<br />
$ CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-kvm<br />
<br />
=== vagrant-libvirt ===<br />
<br />
This plugin adds [[Libvirt]] support.<br />
<br />
It currently has the same issue with ruby as the vagrant-kvm plugin.<br />
As of vagrant 1.6.5, this invocation will install vagrant-libvirt successfully:<br />
$ CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt<br />
<br />
=== vagrant-lxc ===<br />
<br />
First install {{Pkg|lxc}} from the official repositories, then:<br />
<br />
$ vagrant plugin install vagrant-lxc<br />
<br />
Next, configure lxc and some systemd unit files per [https://github.com/fgrehm/vagrant-lxc/issues/109#issuecomment-21274392 this comment]. The plugin can now be used with a {{ic|Vagrantfile}} like so:<br />
<br />
VAGRANTFILE_API_VERSION = "2"<br />
<br />
Vagrant.configure("2") do |config|<br />
<br />
config.vm.define "main" do |config|<br />
<nowiki>config.vm.box = 'http://bit.ly/vagrant-lxc-wheezy64-2013-10-23'</nowiki><br />
<br />
config.vm.provider :lxc do |lxc|<br />
lxc.customize 'cgroup.memory.limit_in_bytes', '512M'<br />
end<br />
<br />
config.vm.provision :shell do |shell|<br />
shell.path = 'provision.sh'<br />
end<br />
end<br />
end<br />
<br />
The {{ic|provision.sh}} file should be a shell script beside the {{ic|Vagrantfile}}. Do whatever setup is appropriate; for example, to remove puppet, which is packaged in the above box:<br />
<br />
rm /etc/apt/sources.list.d/puppetlabs.list<br />
apt-get purge -y puppet facter hiera puppet-common puppetlabs-release ruby-rgen<br />
<br />
== Provisioning ==<br />
<br />
''Provisioners'' allow you to automatically install software, alter and automate configurations as part of the vagrant up process. The two most common provisioners are {{Pkg|puppet}} from [[official repositories]] and {{AUR|chef}} from the [[AUR]] Arch User Repository.<br />
<br />
== Base Boxes for Vagrant ==<br />
<br />
Here is a list of places to get all sorts of vagrant base boxes for different purposes: development, testing, or even production.<br />
<br />
* A well maintained up-to-date [https://github.com/terrywang/vagrantboxes/blob/master/archlinux-x86_64.md Arch Linux x86_64] base box for Vagrant<br />
<br />
* The same Arch Linux x86_64 base box can also be obtained via Vagrant Cloud by running: {{ic|vagrant init terrywang/archlinux}}<br />
<br />
* [https://vagrantcloud.com/ Vagrant Cloud] is HashiCorp's official site for Vagrant boxes. You can browse user-submitted boxes or upload your own. A single Vagrant Cloud box can support multiple providers with versioning.<br />
<br />
* [http://vagrantbox.es/ vagrantbox.es]<br/>A List of vagrant base boxes. Initiated by Gareth Rushgrove [https://twitter.com/garethr @garethr] hosted on Heroku using Nginx. See the story here: [http://www.morethanseven.net/2012/07/01/The-vagrantbox.es-story/ The Vagrantbox.es Story].<br />
<br />
* Opscode [https://github.com/opscode/bento bento]<br/>We all know what bento means in Japanese, right? In this case, they are '''NOT''' lunch boxes '''BUT''' extremely useful base boxes which can be used to test cookbooks or private chef (Chef Server and Client). Distributions included: Ubuntu Server, Debian, CentOS, Fedora and FreeBSD.<br />
<br />
* [http://puppet-vagrant-boxes.puppetlabs.com/ Puppet Labs Vagrant Boxes]<br/>Pre-rolled vagrant boxes, ready for use. Made by the folks at Puppet Labs.<br />
<br />
* [http://cloud-images.ubuntu.com/vagrant/ Vagrant Ubuntu Cloud Images]<br/>It has been there since Jan, 2013. For some reason Canonical has NOT officially promoted it yet, may be still in beta. Remember these are vanilla images, NOT very useful without Chef or Puppet.<br />
<br />
== Troubleshooting ==<br />
=== No ping between host and vagrant box (host-only networking) ===<br />
Sometimes there are troubles with host-only networking not functioning. Host have no ip on vboxnet interface, host cannot ping vagrant boxes and cannot be pinged from them. This is solved by installing good old {{Pkg|net-tools}} as mentioned in [https://bbs.archlinux.org/viewtopic.php?pid=1178607#p1178607 this thread] by kevin1024<br />
<br />
== See also ==<br />
* [http://docs.vagrantup.com/v2/getting-started/project_setup.html official Vagrant documentation]</div>Elbahekhttps://wiki.archlinux.org/index.php?title=Lenovo/IBM_Notebooks&diff=278700Lenovo/IBM Notebooks2013-10-15T07:58:15Z<p>Elbahek: /* Ideapad */</p>
<hr />
<div>[[Category:IBM]]<br />
[[Category:Lenovo]]<br />
<br />
Lenovo and previously IBM are producing wonderful machines which are known to support Linux very well. There are wiki pages with hints and guides for many models in the Arch wiki. The following table tries to give an overview.<br />
<br />
Indented list entries are duplicates.<br />
<br />
==Models==<br />
<br />
Taken from [http://www.thinkwiki.org/wiki/ThinkPad_History] and [http://www.thinkwiki.org/wiki/Category:Models].<br />
<br />
===Withdrawn Series===<br />
<br />
*[[IBM ThinkPad 600E]] (1998)<br />
<br />
===ThinkPad R===<br />
<br />
*[[IBM ThinkPad R40]] (2003)<br />
*[[IBM ThinkPad R60E]] (2006)<br />
*Lenovo ThinkPad R500 (2008)<br />
<br />
===ThinkPad T===<br />
*[[IBM ThinkPad T21]] (2000)<br />
*[[IBM ThinkPad T23]] (2001)<br />
*[[IBM ThinkPad T30]] (2002)<br />
*[[IBM ThinkPad T41]] (2003)<br />
*[[IBM ThinkPad T42]] (2004)<br />
*[[IBM ThinkPad T43p]] (2005)<br />
*[[Lenovo Thinkpad T61]] (2007)<br />
**[[IBM ThinkPad T61]] (2007)<br />
*[[Lenovo ThinkPad T400]] (2008)<br />
*[[Lenovo ThinkPad T400s]] (2009)<br />
*[[Lenovo ThinkPad T420]] (2011)<br />
*[[Lenovo ThinkPad T420s]] (2011)<br />
<br />
===ThinkPad W===<br />
<br />
===ThinkPad X===<br />
<br />
*[[IBM ThinkPad X31]] (2003)<br />
*[[IBM ThinkPad X41]] (2005)<br />
*[[IBM ThinkPad X60]] (2006)<br />
*[[IBM ThinkPad X60s]] (2006)<br />
*[[Lenovo Thinkpad X60 Tablet]] (2006)<br />
*[[Lenovo ThinkPad X61T]] (2007)<br />
*[[Lenovo Thinkpad X300]] (2008)<br />
*[[Lenovo ThinkPad X200]] (2008)<br />
*[[Lenovo ThinkPad X201]] (2010)<br />
*[[Lenovo ThinkPad X1]] (2011)<br />
*[[Lenovo ThinkPad X100e]] (2010)<br />
*[[Lenovo ThinkPad X120e]] (2011)<br />
*[[Lenovo ThinkPad X220]] (2011)<br />
*[[Lenovo ThinkPad X230]] (2012)<br />
<br />
===ThinkPad SL===<br />
<br />
*[[Lenovo Thinkpad SL500]] (2008)<br />
*[[Lenovo ThinkPad SL510]]<br />
<br />
===Ideapad===<br />
<br />
*[[Lenovo Ideapad S10]]<br />
*[[Lenovo Ideapad y530]]<br />
*[[Lenovo Ideapad G580]]<br />
*[[Lenovo IdeaPad Y580]]<br />
*[[Lenovo Ideapad S10-3]]<br />
*[[Lenovo Ideapad s10-3t]]<br />
<br />
===Edge===<br />
<br />
*[[ThinkPad Edge]]<br />
<br />
==See also==<br />
<br />
* [[HCL/Laptops/IBM]]<br />
* [[Thinkpad Fan Control]]<br />
* [[Thinkpad Multimedia Buttons]]<br />
* [http://www.thinkwiki.org Thinkwiki]</div>Elbahekhttps://wiki.archlinux.org/index.php?title=Lenovo/IBM_Notebooks&diff=278699Lenovo/IBM Notebooks2013-10-15T07:57:50Z<p>Elbahek: /* Ideapad */</p>
<hr />
<div>[[Category:IBM]]<br />
[[Category:Lenovo]]<br />
<br />
Lenovo and previously IBM are producing wonderful machines which are known to support Linux very well. There are wiki pages with hints and guides for many models in the Arch wiki. The following table tries to give an overview.<br />
<br />
Indented list entries are duplicates.<br />
<br />
==Models==<br />
<br />
Taken from [http://www.thinkwiki.org/wiki/ThinkPad_History] and [http://www.thinkwiki.org/wiki/Category:Models].<br />
<br />
===Withdrawn Series===<br />
<br />
*[[IBM ThinkPad 600E]] (1998)<br />
<br />
===ThinkPad R===<br />
<br />
*[[IBM ThinkPad R40]] (2003)<br />
*[[IBM ThinkPad R60E]] (2006)<br />
*Lenovo ThinkPad R500 (2008)<br />
<br />
===ThinkPad T===<br />
*[[IBM ThinkPad T21]] (2000)<br />
*[[IBM ThinkPad T23]] (2001)<br />
*[[IBM ThinkPad T30]] (2002)<br />
*[[IBM ThinkPad T41]] (2003)<br />
*[[IBM ThinkPad T42]] (2004)<br />
*[[IBM ThinkPad T43p]] (2005)<br />
*[[Lenovo Thinkpad T61]] (2007)<br />
**[[IBM ThinkPad T61]] (2007)<br />
*[[Lenovo ThinkPad T400]] (2008)<br />
*[[Lenovo ThinkPad T400s]] (2009)<br />
*[[Lenovo ThinkPad T420]] (2011)<br />
*[[Lenovo ThinkPad T420s]] (2011)<br />
<br />
===ThinkPad W===<br />
<br />
===ThinkPad X===<br />
<br />
*[[IBM ThinkPad X31]] (2003)<br />
*[[IBM ThinkPad X41]] (2005)<br />
*[[IBM ThinkPad X60]] (2006)<br />
*[[IBM ThinkPad X60s]] (2006)<br />
*[[Lenovo Thinkpad X60 Tablet]] (2006)<br />
*[[Lenovo ThinkPad X61T]] (2007)<br />
*[[Lenovo Thinkpad X300]] (2008)<br />
*[[Lenovo ThinkPad X200]] (2008)<br />
*[[Lenovo ThinkPad X201]] (2010)<br />
*[[Lenovo ThinkPad X1]] (2011)<br />
*[[Lenovo ThinkPad X100e]] (2010)<br />
*[[Lenovo ThinkPad X120e]] (2011)<br />
*[[Lenovo ThinkPad X220]] (2011)<br />
*[[Lenovo ThinkPad X230]] (2012)<br />
<br />
===ThinkPad SL===<br />
<br />
*[[Lenovo Thinkpad SL500]] (2008)<br />
*[[Lenovo ThinkPad SL510]]<br />
<br />
===Ideapad===<br />
<br />
*[[Lenovo Ideapad S10]]<br />
*[[Lenovo Ideapad y530]]<br />
*[[Lenovo Ideapad G580]]<br />
*[[Lenovo Ideapad Y580]]<br />
*[[Lenovo Ideapad S10-3]]<br />
*[[Lenovo Ideapad s10-3t]]<br />
<br />
===Edge===<br />
<br />
*[[ThinkPad Edge]]<br />
<br />
==See also==<br />
<br />
* [[HCL/Laptops/IBM]]<br />
* [[Thinkpad Fan Control]]<br />
* [[Thinkpad Multimedia Buttons]]<br />
* [http://www.thinkwiki.org Thinkwiki]</div>Elbahekhttps://wiki.archlinux.org/index.php?title=List_of_applications&diff=169683List of applications2011-11-11T22:00:14Z<p>Elbahek: /* Multi-Protocol Clients */</p>
<hr />
<div>[[Category:Software (English)]]<br />
{{i18n|Common Applications}}<br />
==Backup programs==<br />
{{Box||See the article on this subject: [[Backup Programs]]|#E5E5FF|#FCFCFC}}<br />
*{{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive|http://dar.linux.free.fr/|{{Pkg|dar}}}}<br />
*{{App|[[Duplicity|duplicity]]|A utility for encrypted, bandwidth-efficient backups using the rsync algorithm|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
*{{App|Packrat|A simple, modular backup system that uses dar to take full/incremental backups of files and can store them locally, on a remote system via SSH, or on Amazon S3|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
*{{App|[[Wikipedia:Rsync#Variations|rdiff-backup]]|A utility for local/remote mirroring and incremental backups|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
*{{App|rsnapshot|A remote filesystem snapshot utility|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
*{{App|[[Rsync|rsync]]|A file transfer program to keep remote files in sync|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
*{{App|Safekeep|A client/server backup system which enhances the power of rdiff-backup|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
*{{App|Unison|Synchronizes files between two machines over network (Lan or Inet) using smart diff method + rsync, allows one to interactively choose which changes to push, pull, or merge. |http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
==Internet==<br />
===BitTorrent Clients===<br />
<!--Keep in sync with [[Lightweight Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of BitTorrent clients}}<br />
*{{App|[[aria2]]|Command-line download manager that supports HTTP/HTTPS, FTP, BitTorrent and MetaLink protocols|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
*{{App|[[Deluge]]|User-friendly BitTorrent client written in Python and wrapped with PyGTK|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
*{{App|[[Wikipedia:KTorrent|KTorrent]]|Feature-rich BitTorrent client developed using Qt|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
*{{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client supporting BitTorrent|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
*{{App|[[Wikipedia:QBittorrent|qBittorrent]]|The closest open source (GNU GPL v2 license) equivalent to µtorrent|http://qbittorrent.sourceforge.net/|{{Pkg|qbittorrent}}}}<br />
*{{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client|http://libtorrent.rakshasa.no/|{{Pkg|rtorrent}}}}<br />
*{{App|[[Wikipedia:Transmission (BitTorrent client)|Transmission]]|Simple and easy-to-use BitTorrent client with daemon version and (GTK+) GUI, web and CLI front-ends|http://www.transmissionbt.com/|{{Pkg|transmission}}}}<br />
*{{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus)|http://www.vuze.com/|{{Pkg|vuze}}}}<br />
<br />
===eDonkey Clients===<br />
eDonkey is still the second-largest p2p network (see [http://www.ipoque.com/en/resources/internet-studies Internet Study 2008/2009]).<br />
*{{App|[[aMule]]|Well-known eDonkey/Kad client with daemon version and GTK, web, and CLI front-ends|http://www.amule.org/|{{Pkg|amule}}}}<br />
<br />
===Chat Clients===<br />
====IRC Clients====<br />
{{Wikipedia|Comparison of Internet_Relay_Chat_clients}}<br />
* {{App|Conspire|Lightweight, simple, and powerful|http://nenolod.net/|{{AUR|conspire-client}}}}<br />
* {{App|ERC|A powerful, modular, and extensible IRC client for [[Emacs]]|http://erc.sourceforge.net/|{{AUR|erc-git}}}}<br />
* {{App|II|A featherweight IRC client, literally `tail -f` the convo and `echo` back your replies|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|A file system interface to irc written in [http://limbo.cat-v.org Limbo]|http://www.ueber.net/code/r/ircfs|}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client|http://www.irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE4 desktop|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support|http://www.kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|A GTK IRC client with only one dependency|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|A simple IRC client|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|A frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel (depends on [http://bitbucket.org/emg/srw srw] by default)|http://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}}}<br />
* {{App|ScrollZ|An advanced IRC client based on ircII|http://www.scrollz.com|{{AUR|scrollz}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client|http://www.weechat.org/|{{Pkg|weechat}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
==== Jabber/XMPP Clients ====<br />
* {{App|Finch| A CLI Jabber/aim/etc/etc chat client based on libpurple (part of Pidgin) |http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|Freetalk|A console based Jabber client|http://www.gnu.org/software/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK|http://www.gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|jabber.el|A minimal jabber client for emacs|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|A small Jabber console client, includes features: SSL, PGP, MUC, and UTF8|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|A Qt based Jabber client|http://psi-im.org/|{{Pkg|psi}}}}<br />
* {{App|Psi+|Psi+ is an enhanced version of Psi Jabber client.|http://code.google.com/p/psi-dev/|{{AUR|psi-plus}}}}<br />
<br />
==== MSN Clients ====<br />
* {{App|[[Wikipedia:AMSN|aMSN]]|MSN client written in Tcl/Tk|http://www.amsn-project.net/|{{Pkg|amsn}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|A pygtk MSN Messenger client|http://www.emesene.org/|{{Pkg|emesene}}}}<br />
* {{App|Galaxium Messenger|A multi-protocol instant messenger application designed for the GNOME desktop|http://code.google.com/p/galaxium/|{{AUR|galaxium}}}}<br />
* {{App|[[Wikipedia:Kmess|KMess]]|KMess is a MSN Messenger client for Linux|http://kmess.org/|{{Pkg|kmess}}}}<br />
* {{App|[[Wikipedia:Mercury Messenger|Mercury]]|Java Based MSN client|http://www.mercury.im/|{{Pkg|mercury}}}}<br />
<br />
==== Multi-Protocol Clients ====<br />
{{Wikipedia|Comparison of instant messaging clients}}<br />
<br />
* {{App|BarnOwl|A console chat client for the AIM, IRC, Jabber, and Zephyr protocols|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|A way to use other IM to your [[#IRC]] client|http://www.bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|Carrier|Pidgin fork providing minor GUI enhancements (formerly funpidgin)|http://funpidgin.sourceforge.net/|{{AUR|carrier}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ - A text mode menu- and window-driven IM interface|http://www.centerim.org/index.php/Main_Page|{{Pkg|centerim}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|A Python/GTK+ instant messenger for the Windows Live Messenger network|http://www.emesene.org/|{{Pkg|emesene}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|A GNOME instant messaging client using the Telepathy framework|http://live.gnome.org/Empathy|{{Pkg|empathy}}}}<br />
* {{App|Finch|A ncurses-based messaging client|http://pidgin.im/|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multiprotocol chat client using Mozilla's XUL and libpurple.|http://www.instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|Instant Messenger|http://www.kde.org/|{{Pkg|kopete}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client|http://pidgin.im/|{{Pkg|pidgin}}}}<br />
** {{App|Pidgin Light|A light Pidgin version without gstreamer, tcl, tk, xscreensaver support|http://www.pidgin.im/|{{AUR|pidgin-light}}}}<br />
* {{App|[[Wikipedia:QutIM|qutIM]]|Multiplatform instant messenger|http://qutim.org/|{{AUR|qutim}}}}<br />
<br />
===Email clients===<br />
<!--Keep in sync with [[Lightweight Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of e-mail clients}}<br />
====Console====<br />
*{{App|[[Alpine]]|The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)|http://www.washington.edu/alpine|{{Pkg|alpine}}}}<br />
*{{App|[[Wikipedia:Gnus|Gnus]]|mail, nntp, rss client for Emacs.|http://www.gnus.org/|[[package]]}}<br />
*{{App|[[Wikipedia:mailx|heirloom-mailx]]|A full-featured command-line MUA derived from Berkeley Mail.|http://heirloom.sourceforge.net/mailx.html|{{Pkg|heirloom-mailx}}}}<br />
*{{App|[[mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
*{{App|[[Sup]]|A CLI mail client with very fast searching, tagging, threading and gmail like operation.|http://sup.rubyforge.org/|{{AUR|sup}}}}<br />
<br />
====Graphical====<br />
*{{App|[[Wikipedia:Claws Mail|Claws Mail]]|A GTK+ based e-mail client|http://www.claws-mail.org/|{{Pkg|claws-mail}}}}<br />
*{{App|[[Evolution]]|A mature and feature-rich e-mail client used in GNOME by default.|http://projects.gnome.org/evolution/|{{Pkg|evolution}}}}<br />
*{{App|[[Wikipedia:Kmail|Kmail]]|A mature and feature-rich e-mail client part of the kde project.|http://kontact.kde.org/kmail/{{Linkrot|2011|09|03}}|{{Pkg|kmail}}}}<br />
*{{App|[[Postler]]|simple desktop mail client built in vala.|http://git.xfce.org/apps/postler|{{AUR|postler}}}}<br />
*{{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly e-mail client (GTK)|http://sylpheed.sraoss.jp/en/|{{AUR|sylpheed}}}}<br />
*{{App|[[Thunderbird]]|Mozilla's GTK2-based client.|http://www.mozillamessaging.com/en-US/|{{Pkg|thunderbird}}}}<br />
<br />
===Network Managers===<br />
<!--Use the App template.--><br />
*{{App|[[netcfg]]|Network configuration and profile scripts|http://projects.archlinux.org/netcfg.git/|{{Pkg|netcfg}}}}<br />
*{{App|[[Wicd|wicd]]|Manages wireless and wired interfaces, requiring fewer dependencies than other network managers. In addition to GUI interfaces, a curses version is also available.|http://wicd.sourceforge.net/|{{Pkg|wicd}}}}<br />
<br />
===News Aggregators===<br />
{{Wikipedia|Comparison of feed aggregators}}<br />
* [[Akregator]] - KDE's news aggregator (in kdepim package)<br />
* [[BlogBridge]] - Another excellent java-based aggregator http://www.blogbridge.com<br />
* {{App|[[Wikipedia:Canto_(news_aggregator)|Canto]]|A ncurses RSS aggregator|http://codezen.org/canto/|{{AUR|canto}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|A mail, nntp, rss client for Emacs|http://www.gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|[[Liferea]] | A GTK desktop news aggregator for online news feeds and weblogs| http://liferea.sourceforge.net|{{AUR|liferea}}}}<br />
* {{App|Newsbeuter|A ncurses RSS aggregator with layout and keybinding similar to mutt. Does not use the traditional 3 panes setup|http://www.newsbeuter.org/|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|A "RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in date order|http://offog.org/code/rawdog.html|{{AUR|rawdog}}}}<br />
* [[Rssowl]] - A powerful java-based RSS reader http://boreal.rssowl.org<br />
* {{App|Snownews|Text mode RSS newsreader|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
* [[Thunderbird]] - A mail client from Mozilla which also functions as a pretty nice news aggregator<br />
<br />
=== Web Browsers ===<br />
{{Wikipedia|Comparison of web browsers}}<br />
==== Text Based ====<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|An advanced and well-established feature-rich text mode web browser|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|A text WWW browser, similar to Lynx|http://links.twibright.com/|{{Pkg|links}}}}<br />
* [[Lynx]] A text browser for the World Wide Web http://lynx.isc.org<br />
* [[w3m]] A pager/text-based WWW browser http://w3m.sourceforge.net/<br />
<br />
==== Graphical ====<br />
* {{App|[[Wikipedia:Abaco (web browser)|Abaco]]|A multi-page graphical web browser|http://lab-fgb.com/abaco/|{{AUR|abaco}}}}<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|A cross platform web browser built using Qt and WebKit|http://code.google.com/p/arora/|{{Pkg|arora}}}}<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|A highly programmable web browser based on Mozilla XULRunner|http://conkeror.org/|{{Pkg|conkeror}}}}<br />
* [[Chromium]] - The open-source project behind Google Chrome, a web browser developed by Google that uses the WebKit layout engine and application framework. http://code.google.com/chromium/<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|A small, fast graphical web browser built on FLTK|http://www.dillo.org/|{{Pkg|dillo}}}}<br />
* [[Epiphany]] - The default GNOME browser, which uses the webkit rendering engine. http://projects.gnome.org/epiphany/<br />
* [[Firefox]] - [https://addons.mozilla.org/firefox/ Extensible] GTK2 browser based on Gecko with fast rendering. http://www.mozilla.com/firefox/<br />
* {{App|Hv3|A minimalist web browser based on tkhtml3|http://tkhtml.tcl.tk/hv3.html|{{AUR|hv3}}}}<br />
* {{App|[[Jumanji]]|A highly customizable and functional web browser|http://pwmt.org/projects/jumanji|{{AUR|jumanji}}}}<br />
* [[Kazehakase]] - A much lighter, but rather feature-lacking alternative to other browsers (GTK2 and Gecko). http://kazehakase.sourceforge.jp/<br />
* [[Konqueror]] - Qt- and KHTML-based browser. A part of the KDE desktop. http://www.konqueror.org/<br />
* {{App|Luakit| A highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license|http://luakit.org/projects/luakit/|{{Pkg|luakit}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]| A lightweight web browser based on Gtk and WebKit. It passes the ACID3 test|http://www.twotoasts.de/index.php?/pages/midori_summary.html|{{Pkg|midori}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]| A featherweight browser written in C. Notable is its lack of JavaScript support and fast rendering through its own custom rendering engine|http://www.netsurf-browser.org Netsurf|{{Pkg|netsurf}}}}<br />
* [[Opera]] - Highly customizable browser with focuses on an adherence to web rendering standards http://www.opera.com/<br />
* {{App|[[wikipedia:Rekonq|Rekonq]]| A WebKit based web browser for KDE|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Sb|A very lightweight webkit-based browser that uses keybindings to perform most things the URL bar would usually do|https://github.com/mutantturkey/sb/|{{AUR|sb-git}}}} <br />
* {{App|Surf|Another lightweight WebKit-based browser, which follows the [[suck less philosophy|suckless ideology]]. Which means, the software is even more lightweight (basically, the browser itself is a single C source file)|http://surf.suckless.org|{{AUR|surf-hg}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Web interface tools which adhere to the unix philosophy|http://www.uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|[[Vimprobable]]|A browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine (using GTK bindings)|http://vimprobable.org/|{{AUR|vimprobable}}}}<br />
<br />
=== Microblogging Clients ===<br />
* [[Gwibber]] - Gwibber is an open source microblogging client for Linux. It brings the most popular social networking web services to your desktop and gives you the ability to control how you communicate. http://gwibber.com/<br />
* [[Hotot]] - Hotot, is a lightweight & open source Microblogging Client, coding using Python language and designed for Linux. http://hotot.org<br />
* [[Pino]] - Pino is a simple and fast X11 client for Twitter and Identi.ca. It is compiled to native code, which assures small size and speed, and thanks to use of Vala language it can perfectly integrate into your Gnome or XFCE desktop. http://pino-app.appspot.com/<br />
<br />
===FTP Clients===<br />
*{{App|[[curlftp]]| A filesystem for acessing FTP hosts based on FUSE and libcurl. |http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
*{{App|[[fuseftp]]| FTP filesystem written in Perl, using FUSE|http://freshmeat.net/projects/fuseftp/|{{AUR|fuseftp}}}}<br />
<br />
== Document Indexers ==<br />
* [[pinot]] - Personal search and metasearch tool http://pinot.berlios.de/<br />
* [[recoll]] - Full text search tool based on Xapian backend http://www.lesbonscomptes.com/recoll/<br />
<br />
== Document Readers ==<br />
*{{App|apvlv|A lightweight PDF viewer with VIM key bindings|http://code.google.com/p/apvlv/|{{Pkg|apvlv}}}}<br />
*{{App|ePDFView|A free lightweight PDF document viewer using Poppler and GTK+ libraries|http://www.emma-soft.com/projects/epdfview/|{{Pkg|epdfview}}}}<br />
*[[Evince]] - Document viewer for multiple document formats. Supports pdf, postscript, djvu, tiff and dvi http://projects.gnome.org/evince/<br />
*[[Foxit Reader]] - A small, fast PDF viewer http://www.foxitsoftware.com/pdf/desklinux/<br />
*{{App|llpp|A very fast PDF reader based off of MuPDF, that supports continuous page scrolling, bookmarking, and text search through the whole document|http://repo.or.cz/w/llpp.git|{{AUR|llpp}}}}<br />
*{{App|MuPDF|A very fast PDF viewer and toolkit written in portable C. Features CJK font support|http://ccxvii.net/mupdf|{{Pkg|mupdf}}}}<br />
*[[Okular]] r for KDE. http://okular.kde.org/<br />
*{{App|Xpdf|A viewer for Portable Document Format (PDF) files|http://www.foolabs.com/xpdf/|{{Pkg|xpdf}}}}<br />
*{{App|zathura|Another lightweight PDF viewer similar to apvlv, only lighter|http://zathura.pwmt.org/projects/zathura|{{Pkg|zathura}}}}<br />
<br />
== Multimedia ==<br />
=== Audio ===<br />
{{Wikipedia|Comparison of audio player software}}<br />
====Music player daemon and clients====<br />
<br />
[[Music Player Daemon]] - a lightweight and scalable choice for music management<br />
*{{App|Ario|A very feature-rich GTK2 GUI client for mpd, inspired by Rhythmbox|http://ario-player.sourceforge.net/|{{Pkg|ario}}}}<br />
*{{App|ncmpc|A curses client for mpd|http://mpd.wikia.com/wiki/Client:Ncmpc|{{Pkg|ncmpc}}}}<br />
*{{App|ncmpcpp|An almost exact clone of ncmpc with some new features|http://unkart.ovh.org/ncmpcpp/|{{Pkg|ncmpcpp}}}}<br />
*{{App|QmpdClient|A GUI client Qt4 based for mpd|http://bitcheese.net/wiki/QMPDClient|{{Pkg|qmpdclient}}}}<br />
*{{App|Sonata|An elegant GTK+ music GUI client for mpd|http://sonata.berlios.de/|{{Pkg|sonata}}}}<br />
<br />
====Command line players====<br />
*{{App|Herrie|A minimalistic console-based music player with native AudioScrobbler support|http://herrie.info/|{{AUR|herrie}}}}<br />
*{{App|[[Wikipedia:Mpg123|Mpg123]]|A fast free MP3 console audio player for Linux, FreeBSD, Solaris, Hpux and near all other UNIX systems. Also decodes mp1 and mp2 files|http://www.mpg123.org/|{{Pkg|mpg123}}}}<br />
<br />
====GUI players====<br />
* [[Amarok]] - A mature Qt-based player known for its plethora of features<br />
* [http://www.atunes.org/ aTunes] - An audio-player written in Java<br />
* [[Audacious]] - A Winamp clone like Beep and old XMMS versions<br />
* [http://banshee.fm/ Banshee] - yet another GTK2 iTunes clone, yet more feature-rich and more actively developed.<br />
* [http://www.clementine-player.org/ Clementine] - Amarok 1.4 ported to QT4<br />
* {{App|DeaDBeeF|A light and fast music player with many features, no GNOME or KDE dependencies, supports console-only and as well GTK2-gui, comes with many plugins, and has a metadata editor|http://deadbeef.sourceforge.net/|{{Pkg|deadbeef}}}}<br />
* [[Exaile]] - A GTK2 clone of Amarok<br />
* {{App|[[Goggles Music Manager]]|A music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support. Uses the [[Fox Toolkit]].|http://code.google.com/p/gogglesmm/|{{Pkg|gogglesmm}}}}<br />
* [http://guayadeque.org/ Guayadeque] - A full featured media player that can easily manage large collections and uses the Gstreamer media framework.<br />
* {{App|Potamus|A lightweight, intuitive GTK+ audio player with an emphasis on high audio quality|http://offog.org/code/potamus.html|{{AUR|potamus}}}}<br />
* {{App|Pragha|A GTK+ music manager that was a fork of Consonance Music Manager|http://pragha.wikispaces.com/|{{Pkg|pragha}}}}<br />
* [http://code.google.com/p/quodlibet/ Quod Libet] - an audio player written with pygtk and gstreamer<br />
* [[Rhythmbox]] - A GTK2 clone of iTunes, used by default in GNOME<br />
* [http://getnightingale.com/ Nightingale] - ([http://getsongbird.com/ Songbird] for linux) an open source clone of iTunes that uses Mozilla technologies as well as Gstreamer and is being developed by the team that made WinAMP<br />
* [http://legacy.xmms2.org/ XMMS] - A skinnable GTK+1 standalone media player similar to winamp<br />
<br />
====Text user interface players====<br />
* {{App|[[Wikipedia:cmus|cmus]]|A very feature-rich ncurses-based music player|http://cmus.sourceforge.net/|{{Pkg|cmus}}}}<br />
* {{App|cplay|A curses front-end for various audio players|http://sourceforge.net/projects/cplay/{{Linkrot|2011|09|04}}|{{AUR|cplay}}}}<br />
* {{App|[[Moc]]|A ncurses console audio player with support for the MP3, Ogg, and WAV formats|http://moc.daper.net/|{{Pkg|moc}}}}<br />
* [http://www.luga.de/pytone/ PyTone] - An advanced music jukebox with a console interface<br />
<br />
====Ripping from CD====<br />
*{{App|abcde|Comprehensive command line tool for ripping audio CDs|http://lly.org/~rcw/abcde/page/|{{Pkg|abcde}}}}<br />
<br />
==== Visualization ====<br />
* [http://projectm.sourceforge.net/ projectM]<br />
<br />
==== Editing ====<br />
* [http://audacity.sourceforge.net/ Audacity]<br />
* [http://kwave.sourceforge.net/ Kwave]<br />
<br />
=== Graphics and Image Manipulation ===<br />
* [[Blender]]<br />
* {{App|darktable|A photography workflow and RAW development application|http://www.darktable.org//|{{Pkg|darktable}}}}<br />
* [[Dia]]<br />
* [[Gimp]]<br />
* [[graphicsmagick]]<br />
* [[imagemagick]]<br />
* [[Inkscape]]<br />
* [[Krita]]<br />
* {{App|mtPaint|A graphic editing program geared towards creating indexed palette images and pixel art|http://mtpaint.sourceforge.net/|{{Pkg|mtpaint}}}}<br />
* [[mypaint]]<br />
* [[Nathive]]<br />
* [[Shotwell]]<br />
* [[Xara]]<br />
<br />
===Image Viewers===<br />
{{Wikipedia|Comparison of image viewers}}<br />
*{{App|[[Feh]]|A fast, lightweight image viewer that uses imlib2|http://linuxbrit.co.uk/feh/|{{Pkg|feh}}}}<br />
*{{App|GalaPix|OpenGL-based image viewer for simultaneously viewing and zooming large collection of image files|http://code.google.com/p/galapix/|{{AUR|galapix}}}}<br />
*{{App|GpicView|A simple and fast image viewer for X. Made by the developers of [[LXDE]]|http://lxde.sourceforge.net/gpicview/|{{Pkg|gpicview}}}}<br />
*{{App|[[Wikipedia:GQview|GQview]]|An image browser that features single click access to view images and move around the directory tree|http://gqview.sourceforge.net/|{{Pkg|gqview}}}}<br />
*{{App|Geeqie|An image browser/viewer fork of GQview. Adds additional functionality such as support for RAW files|http://geeqie.sourceforge.net/|{{Pkg|geeqie}}}}<br />
*{{App|Mirage|PyGTK image viewer featuring support for crop and resize, custom actions and a thumbnail panel|http://mirageiv.berlios.de|{{Pkg|mirage}}}}<br />
*{{App|QIV|A very small and fast gdk/Imlib image viewer|http://spiegl.de/qiv/|{{Pkg|qiv}}}}<br />
*{{App|Ristretto|A fast and lightweight picture-viewer for the Xfce desktop environment|http://goodies.xfce.org/projects/applications/ristretto|{{Pkg|ristretto}}}}<br />
*{{App|SXIV|Simple X Image Viewer; works well with tiling window managers, uses imlib2|http://github.com/muennich/sxiv|{{AUR|sxiv}}}}<br />
*{{App|Viewnior|Minimalistic GTK2 viewer featuring support for flip, rotate, animations and configurable mouse actions|http://xsisqox.github.com/Viewnior/about.html|{{Pkg|viewnior}}}}<br />
*{{App|Xloadimage|The classic X image viewer|http://web.archive.org/web/19981207030422/http://world.std.com/~jimf/xloadimage.html|{{Pkg|xloadimage}}}}<br />
*{{App|XnView|An efficient image viewer, browser and converter|http://www.xnview.com/|{{AUR|xnview}}}}<br />
<!-- Broken links, need to be turned into App Templates.<br />
* [[Background Setter]]<br />
* [[eog]]<br />
* [[GQview]]<br />
* [[gThumb]]<br />
* [[Quick Image Viewer]]<br />
* [[XnView]]<br />
* [[xv]]<br />
* [[Picasa]]<br />
--><br />
<br />
=== Phone ===<br />
* [[moto4lin]]<br />
<br />
=== Video Players===<br />
{{Wikipedia|Comparison of video player software}}<br />
====Console====<br />
*{{App|[[mplayer]]|Support a complete and versatile array of video/audio formats|http://www.mplayerhq.hu/design7/news.html|{{Pkg|mplayer}}}}<br />
<br />
====Graphical====<br />
*{{App|[[Wikipedia:Kdemultimedia#Dragon Player|Dragon Player]]|A simple video player for KDE 4 developed by Ian Monroe.|http://www.dragonplayer.net/|{{Pkg|kdemultimedia-dragonplayer}}}}<br />
*{{App|Gnome-Mplayer|A simple GTK-based GUI for [[mplayer]]|http://kdekorte.googlepages.com/gnomemplayer|{{Pkg|gnome-mplayer}}}}<br />
*{{App|[[Parole]]|A modern media player based on the GStreamer framework|http://goodies.xfce.org/projects/applications/parole/|{{AUR|parole}}}}<br />
*{{App|[[Wikipedia:SMPlayer|SMPlayer]]|A middleweight QT frontend for mplayer with additional patches|http://smplayer.sourceforge.net/|{{Pkg|smplayer}}}}<br />
*{{App|[[Wikipedia:VLC media player|VLC media player]]|A middleweight video player with support for a wide variety of audio/video formats|http://www.videolan.org/vlc/|{{Pkg|vlc}}}}<br />
*{{App|[[Whaaw! Media Player]]|A lightweight Gstreamer-based audio/video player that can serve as a good alternative to Totem for those who do not like all those GNOME dependencies.|http://home.gna.org/whaawmp/|[[package]]}}<br />
*{{App|Xnoise|A GTK+ media player for both audio and video with "a slick GUI, great speed and lots of features.". Uses gstreamer.|http://www.xnoise-media-player.com/|{{AUR|xnoise}}}}<br />
<br />
=== Video Editors ===<br />
* http://www.pitivi.org/ {{AUR|pitivi}}<br />
* http://lives.sourceforge.net/ {{AUR|lives}}<br />
* http://www.openmovieeditor.org/ {{Pkg|openmovieeditor}}<br />
* [http://www.openshotvideo.com/ openshotvideo]<br />
* http://www.avidemux.org/ {{Pkg|avidemux}}<br />
* http://kdenlive.org/ {{Pkg|kdenlive}}<br />
* [http://www.kinodv.org/ kinodv]<br />
* http://cinelerra.org/ {{Pkg|cinelerra-cv}}<br />
<br />
== Note Taking Organizers ==<br />
===Console===<br />
*{{App|todo.txt|Manages your Todo list from the command line|http://ginatrapani.github.com/todo.txt-cli/|{{AUR|todotxt}}}}<br />
*{{App|Taskwarrior|Another cli todo list application with support for lua customization and more|http://taskwarrior.org|Available in the community repository as "task".}}<br />
<br />
===Graphical===<br />
* [[Cherrytree]] - A hierarchical note taking application [http://www.giuspen.com/cherrytree/ Home page]<br />
* {{AUR|glista}} with notes support [http://prematureoptimization.org/glista/downloads.php Home page]<br />
* [[Gnote]] - Gnote is an experimental port of Tomboy to C++ [http://live.gnome.org/Gnote Home page]<br />
* [[hnb]] - A program to organize many kinds of data in one place [http://hnb.sourceforge.net/ Home page] [http://aur.archlinux.org/packages.php?ID=16630 Package]<br />
* {{AUR|KeepNote}} A cross-platform GTK note-taking app with rich text formatting [http://keepnote.org Home page]<br />
* [[NoteCase]] - A portable hierarchical note manager, coded in C++ using the GTK+ toolkit [http://notecase.sourceforge.net Home page]<br />
* {{App|[[Wikipedia:Org-mode|org-mode]]|An [[Emacs]] Mode for Notes, Project Planning, and Authoring|http://orgmode.org|{{AUR|emacs-org-mode}}}}<br />
* [[Task]] - A command-line TODO list manager [http://www.beckingham.net/task.html Home page]<br />
* [[tomboy]] - Desktop note-taking application for Linux and Unix [http://www.gnome.org/projects/tomboy/ Home page]<br />
* [[zim]] - A WYSIWYG text editor that aims at bringing the concept of a wiki to the desktop [http://zim-wiki.org/ Home page]<br />
<br />
==Office suites==<br />
* [[Koffice]]->[[Calligra]] - KOffice is a free, integrated office suite for KDE, the K Desktop Environment. http://www.calligra-suite.org/<br />
* [[LibreOffice]] - A fork of OpenOffice.org, which integrates various patches<br />
* [[OpenOffice.org]] - An office suite http://www.OpenOffice.org/<br />
<br />
==Word processors==<br />
{{Wikipedia|Comparison of word processors}}<br />
*{{App|[[Abiword]]|A full-featured word processor|http://www.abisource.com/|{{Pkg|abiword}}}}<br />
**{{App|Abiword Light|A lighter version of Abiword|http://www.abisource.com/|{{AUR|abiword-light}}}}<br />
*{{App|[[Wikipedia:Markdown|Markdown]]|A text-to-HTML conversion tool that allows you to write using a simple plain text format|http://daringfireball.net/projects/markdown|{{AUR|markdown}}}}<br />
*[[OpenOffice.org Writer]] - A full-featured word processor included in the OpenOffice.org suite<br />
*{{App|pandoc|A swiss-army knife for converting one markup format into another (supports Markdown)|http://johnmacfarlane.net/pandoc|{{AUR|pandoc}}}}<br />
*[http://www.archlinux.org/packages/community/i686/ted/ Ted] - An easy GTK-based rich text processor (with footnote support) http://www.nllgg.nl/Ted/<br />
*{{App|[[Wikipedia:Txt2tags|txt2tags]]|A dead-simple, KISS-compliant lightweight, human-readable markup language to produce rich format content out of plain text files|http://txt2tags.sourceforge.net|{{AUR|txt2tags}}}}<br />
<br />
== Spreadsheets ==<br />
*[[gnumeric]] - A GNOME Spreadsheet Program http://www.gnome.org/projects/gnumeric<br />
*[[LibreOffice|Libreoffice Calc]]<br />
*[[OpenOffice.org|OpenOffice.org Calc]] - A full-featured spreadsheet included in OpenOffice.org suite<br />
<br />
== Security ==<br />
* [[iptables]] - A powerful [[firewall]] built into the linux kernel that is part of the [http://en.wikipedia.org/wiki/Netfilter netfilter] project<br />
* [[arpwatch]] - arpwatch and arpsnmp network monitoring tools ftp://ftp.ee.lbl.gov/<br />
* [[DenyHosts]] - a script to help thwart ssh server attacks http://denyhosts.sourceforge.net/<br />
* [[fail2ban]] - bans IP that makes too many password failures http://www.fail2ban.org/<br />
* [[Sshguard]] - Same as DenyHosts and fail2ban, only lighter, simpler and written in plain C http://www.sshguard.net/<br />
* [[etherape]] - A graphical network monitor for various OSI layers and protocols http://etherape.sourceforge.net/<br />
* [[iptraf]] - An IP network monitor http://iptraf.seul.org/<br />
* [[logwatch]] - Logwatch is a customizable log analysis system http://www.logwatch.org/<br />
* [[nessus]] - Vulnerability scanner http://www.nessus.org<br />
* [[nmap]] - A command line network exploration tool and security/port scanner http://nmap.org<br />
* [[ntop]] - A network traffic probe based on libcap http://ntop.org<br />
* [[portbunny]] - Extremly fast CLI portscanner http://www.recurity-labs.com/portbunny/index.shtml<br />
* [[snort]] - A lightweight network intrusion detection system http://www.snort.org<br />
* [[swatch]] - The active log file monitoring tool http://swatch.sourceforge.net/<br />
* [[tcpdump]] - A tool for network monitoring and data acquisition http://www.tcpdump.org<br />
* [[vnstat]] - console-based network traffic monitor that keeps a log of network traffic http://humdi.net/vnstat/<br />
* [[wireshark]] - A free network protocol analyzer for Unix/Linux and Windows http://www.wireshark.org/<br />
<br />
== Time Management ==<br />
===Console===<br />
* {{App|Calcurse|A text-based curses calendar and scheduling system|http://calcurse.org/|{{Pkg|calcurse}}}}<br />
* {{App|Remind|A highly sophisticated text-based calendaring and notification system|http://www.roaringpenguin.com/products/remind|{{Pkg|remind}}}}<br />
* [[When]] - A simple command line personal calendar program [http://www.lightandmatter.com/when/when.html Home page]<br />
<br />
===Graphical===<br />
* {{App|etm|Event and Task Manager. A "Getting Things Done" approach handling events, tasks, activities, reminders and projects|http://www.duke.edu/~dgraham/ETM/|{{AUR|etm}}}}<br />
* [[Orage]] - A GTK+ calendar and task manager often seen integrated with Xfce [http://www.xfce.org/projects/orage/ Home page]<br />
* [[Osmo]] - A GTK+ personal organizer, which includes calendar, tasks manager and address book modules. [http://clayo.org/osmo/ Home page]<br />
* [http://aur.archlinux.org/packages.php?ID=21675 Rachota] - A portable time tracker for personal projects [http://rachota.sourceforge.net/en/ Home page]<br />
* {{App|Pal|A very lightweight calendar with both interactive and non-interactive interfaces|http://palcal.sourceforge.net/|{{AUR|pal}}}}<br />
* [[Sunbird]] - The standalone Mozilla calendar application [http://www.mozilla.org/projects/calendar/sunbird/ Home page]<br />
* [[taskcoach]] - A simple open source todo manager to manage personal tasks and todo lists [http://taskcoach.sourceforge.net/ Home page] [http://aur.archlinux.org/packages.php?ID=6005 Package]<br />
* {{App|Wyrd|A curses front-end to Remind|http://pessimization.com/software/wyrd/|{{Pkg|wyrd}}}}<br />
* {{App|wxRewind|A Python text and graphical frontend to Remind|http://www.duke.edu/~dgraham/wxRemind/|{{AUR|wxremind}}}}<br />
<br />
==Translation and Localisation==<br />
* [[Lokalize]] - the standard [[KDE]] tool for software translation. Available in Extra. [http://userbase.kde.org/Lokalize Home page]<br />
* [[virtaal]] - an editor for translation of both software and other text, based on Translate Toolkit. [http://aur.archlinux.org/packages.php?ID=21709 Available in AUR]. [http://translate.sourceforge.net/wiki/virtaal/index Home page]<br />
** Supported formats: Gettext (.po and .mo), XLIFF (.xlf), TMX, TBX, WordFast TM (.txt), Qt Linguist (.ts), Qt Phrase Book (.qph), OmegaT glossary (.tab and .utf8), ...<br />
** Shows suggestions from [[Apertium]], Google Translate, Microsoft Translator, [[Moses]], http://open-tran.eu, Translation Memories or TM servers<br />
* [[poedit]] - a simple Gettext/po-file translation tool. Available in Community. [http://www.poedit.net/ Home page]<br />
* [[OmegaT]] - "the translation memory tool", a general translators tool which contains a lot of translation memory features<br />
** Supported formats: html, MS Office 2007 XML, OpenDocument format, XLIFF/Okapi, MediaWiki, plain text, TMX, ...<br />
** Shows suggestions from Google Translate<br />
* [[pology]] - a set of Python tools for dealing with Gettext/po-files. See the [http://techbase.kde.org/Localization/Tools/Pology#About home page] for simple installation instructions.<br />
** May be used to translate po-files with [[Apertium]], see http://wiki.apertium.org/wiki/Translating_gettext for instructions.<br />
* [[Apertium]] - a free and open source rule-based machine translation platform. All released language data is [http://aur.archlinux.org/packages.php?K=apertium available in AUR]. [http://apertium.org/ Home page]<br />
** Supported formats: html, MS Office 2007 XML, OpenDocument format, TMX, some MediaWiki support, ... (use [[Pology]] or [[Virtaal]] for po-files)<br />
** See [http://wiki.apertium.org/wiki/Main_Page the wiki] for supported languages<br />
* [[Moses]] - a statistical machine translation tool (language data not included). [http://www.statmt.org/moses/ Home page]<br />
<br />
== Utilities ==<br />
===Arch Package Management===<br />
<!--shouldn't duplicate info from [[AUR Helpers]]--><br />
* {{App|Aurnotify|A tool set to notify the status of your favorite packages from AUR.|To use the aurnotify desklet visit: http://adesklets.sourceforge.net/desklets.html|{{AUR|aurnotify}}}}<br />
* {{App|pacman-color|Command-line frontend for libalpm aka pacman with color patch.|http://www.archlinux.org/pacman/|{{AUR|pacman-color}}}}<br />
* {{App|Pacman-contrib|Utilities for use with the pacman package manager.|http://www.archlinux.org/pacman/|{{Pkg|pacman-contrib}}}}<br />
* {{App|Pkgtools|A collection of scripts for Arch Linux packages.|Which includes '''pkgfile'''; find what package owns a file. [[http://bbs.archlinux.org/viewtopic.php?pid=384196 Forum topic]]|{{Pkg|pkgtools}}}}<br />
<!--{{Warning|''Powerpill'' development has been officially discontinued: its latest version does not work with ''pacman>&#61;3.5''. See [https://bbs.archlinux.org/viewtopic.php?id&#61;115660].}}<br />
* [[Powerpill]] A wrapper for pacman that speeds up package retrieval by using aria2c for concurrent/segmented downloads. http://xyne.archlinux.ca/old_projects/powerpill--><br />
* {{App|[[TuPac]]|A cached pacman implementation that boosts some pacman operations: faster searches, AND searches, aur support, colored output, system sanity check, frontend friendly and more...|http://sourceforge.net/projects/tupac|{{AUR|tupac}}}}<br />
* {{App|[[Yaourt]]|A Pacman frontend with more features and AUR support.|http://www.archlinux.fr/yaourt-en/|{{AUR|yaourt}}}}<br />
<br />
Also see [[AUR Helpers]].<br />
<br />
=== Disk Usage Display Programs===<br />
* {{App|[[ncdu]]|A simple ncurses disk usage analyzer.|http://dev.yorhel.nl/ncdu|{{Pkg|ncdu}}}}<br />
* {{App|[[gt5]]|A diff-capable 'du-browser'.|http://gt5.sourceforge.net|{{AUR|gt5}}}}<br />
* {{App|[[Baobab]]|Baobab is a C/gtk+ application to analyse disk usage in any Gnome environment.|http://www.marzocca.net/linux/baobab|{{AUR|Baobab}}}}<br />
* {{App|[[Filelight]]|Filelight creates an interactive map of concentric, segmented rings that help visualise disk usage on your computer.|http://www.methylblue.com/filelight|{{Pkg|Filelight}}}}<br />
* {{App|[[gdmap]]|Draw map of rectangles where size of rectangle relate to size of file or dir.|http://gdmap.sourceforge.net/|{{Pkg|gdmap}}}}<br />
<br />
=== CD/DVD Burning Tools===<br />
{{Wikipedia|Comparison of disc authoring software}}<br />
* [[bashburn]] - A lightweight terminal based menu frontend for CD/DVD burning tools.<br />
* [[brasero]] - An application to burn CDs/DVDs for the Gnome Desktop.<br />
* {{App|cdw|Ncurses frontend to cdrecord, mkisofs, growisofs, dvd+rw-mediainfo, dvd+rw-format, xorriso.|http://cdw.sourceforge.net/|{{AUR|cdw}}}}<br />
* [[gnomebaker]] - A GTK based CD/DVD burning application.<br />
* [[graveman]] - A GTK based CD/DVD burning application.<br />
* [[k3b]] - A feature-rich and easy to handle CD burning application for KDE.<br />
* [[nerolinux]] - A commercial CD/DVD burning tool (requires a valid key).<br />
* {{App|recorder|Simple frontend to cdrkit/cdrtools, cdrdao, mkisofs and growisofs with limited options and preferences|http://code.google.com/p/recorder/|{{Pkg|recorder}}}}<br />
* [[xcdroast]] - A lightweight CD/DVD burning tool.<br />
* {{App|Xfburn|Simple frontend to the libburnia libraries with support for CD/DVD(-RW), ISO images and BurnFree|http://www.xfce.org/projects/xfburn/|{{Pkg|xfburn}}}}<br />
<br />
===Clipboard Managers===<br />
* [[Anamnesis]] - stores all clipboard history (!) and offers an interface to do a full-text search. Both command line and GUI modes available [http://anamnesis.sourceforge.net/ Home page] | [http://aur.archlinux.org/packages.php?ID=41542 AUR package]<br />
* [[ClipIt]] - a fork of Parcellite with additional features and bugfixes [http://sourceforge.net/projects/gtkclipit/ Home page]<br />
* [[Glipper]] - clipboardmanager for GNOME with more features and plugin support [http://glipper.sourceforge.net/ Home page]<br />
* [[klipper]] - full featured clipboardmanager for KDE (kdebase-workspace package) [http://userbase.kde.org/Klipper]<br />
* [[Parcellite]] - a lightweight yet feature-rich clipboard manager [http://parcellite.sourceforge.net/ Home page]<br />
<br />
=== Compression Tools ===<br />
{{Wikipedia|Comparison of file archivers}}<br />
====Console====<br />
* {{App|[[atool]]|A script for managing file archives of various types|http://www.nongnu.org/atool/|{{Pkg|atool}}}}<br />
* {{App|[[p7zip]]|A command line port of 7-Zip for POSIX systems, including Linux.|http://p7zip.sourceforge.net/|{{Pkg|p7zip}}}}<br />
<br />
====Graphical====<br />
* {{App|[[Ark]]|Archiving Tool for KDE4.|http://kde.org/applications/utilities/ark/|{{Pkg|kdeutils-ark}}}}<br />
* {{App|[[File Roller]]|The default archive manager for GNOME.|http://fileroller.sourceforge.net/|{{Pkg|file-roller}}}}<br />
* {{App|[[Peazip]]|Open source file and archive manager|http://www.peazip.org/peazip-linux.html|{{AUR|peazip}}}}<br />
* {{App|[[Squeeze]]|A featherweight front-end for command line archiving tools.|http://http://squeeze.xfce.org/|{{AUR|squeeze}}}}<br />
* {{App|[[Xarchive]]|A GTK+ 2 front-end for various command line archiving tools.|http://xarchive.sourceforge.net/|{{AUR|xarchive}}}}<br />
* {{App|[[Xarchiver]]|A lightweight desktop independent archive manager built with GTK+ 2.|http://xarchiver.sourceforge.net/|{{Pkg|xarchiver}}}}<br />
* {{App|[[p7zip]]|A command line port of 7-Zip for POSIX systems, including Linux. Includes 7zFM as GUI. |http://p7zip.sourceforge.net/|{{Pkg|p7zip}}}}<br />
<br />
===eMoney===<br />
* {{App|[[Bitcoin]]|A tool to manage bitcoins, a p2p currency.|Official website : http://bitcoin.org/|{{AUR|bitcoin}}}}<br />
<br />
=== File Managers ===<br />
{{Wikipedia|Comparison of file managers}}<br />
====Console====<br />
*{{App|[[Wikipedia:Midnight commander|Midnight Commander]]|A console-based, dual-paned, file manager|http://www.midnight-commander.org|{{Pkg|mc}}}}<br />
*{{App|[[Ranger]]|A console based file manager with vi bindings, customizability, and lots of features|http://nongnu.org/ranger|{{Pkg|ranger}}}}<br />
<br />
====Graphical====<br />
* {{App|[[Dolphin]]|Default file manager for KDE 4.|http://dolphin.kde.org/|{{Pkg|kdebase-dolphin}}}}<br />
* {{App|[[emelFM2]]|A file manager that implements the popular two-panel design|http://emelfm2.net/|{{Pkg|emelfm2}}}}<br />
* {{App|[[Konqueror]]|File manager for KDE.|http://www.konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Krusader]]|Advanced twin panel (commander style) file manager for KDE|http://www.krusader.org/|{{Pkg|krusader}}}}<br />
* {{App|[[Nautilus]]|Extensible, heavyweight file manager used by default in GNOME with support for custom scripts|http://projects.gnome.org/nautilus/|{{Pkg|nautilus}}}}<br />
* {{App|[[PCManFM]]|A lightweight file manager which features tabbed browsing and can optionally manage the desktop background|http://pcmanfm.sourceforge.net/|{{AUR|pcmanfm}}}}<br />
* {{App|[[qtfm]]|A small, lightweight filemanager for Linux desktops based on pure Qt.|http://www.qtfm.org/|{{Pkg|qtfm}}}}<br />
* {{App|[[ROX-Filer]]|A small and fast file manager which can optionally manage the desktop background and panels|http://rox.sourceforge.net|{{Pkg|rox}}}}<br />
* {{App|[[Sunflower]]|Small and highly customizable twin-panel file manager for Linux with support for plugins.|http://code.google.com/p/sunflower-fm/|{{AUR|sunflower}}}}<br />
* {{App|[[Thunar]]|Can be run as a daemon with excellent start up and directory load times. Features support for customizable actions|http://thunar.xfce.org/index.html|{{Pkg|thunar}}}}<br />
* {{App|[[tuxcmd]]|Windowed file manager with 2 panels side by side similar to popular Total Commander or Midnight Commander file managers|http://tuxcmd.sourceforge.net/description.php|{{Pkg|tuxcmd}}}}<br />
* {{App|[[Vifm]]|A ncurses based two-pane file manager with vi like keybindings|http://vifm.sourceforge.net/|{{Pkg|vifm}}}}<br />
* {{App|[[Xfe]]|A MS-Explorer or Commander like file manager for X|http://roland65.free.fr/xfe/index.php/|{{Pkg|xfe}}}}<br />
<br />
=== Merge tools ===<br />
* [[diffuse]]: http://diffuse.sourceforge.net/<br />
* ediff: part of [[Emacs|emacs]]<br />
* [[kdiff]]: http://kdiff3.sourceforge.net/<br />
* [[kompare]]: http://kde.org/applications/development/kompare<br />
* [[meld]]: http://meld.sourceforge.net<br />
* [[Vim#Merging_Files_.28Vimdiff.29|vimdiff]]<br />
<br />
=== Taskbars ===<br />
* {{App|[[Avant Window Navigator]]|A lightweight dock which sits at the bottom of the screen.|http://wiki.awn-project.org/|{{Pkg|avant-window-navigator}}}}<br />
* {{App|[[Bmpanel]]|A lightweight, NETWM compliant panel for the X11 system|http://nsf.110mb.com/bmpanel/|{{Pkg|bmpanel}}}}<br />
* {{App|[[Cairo-Dock]]|A highly customizable dock/laucher.|http://www.glx-dock.org/|{{AUR|cairo-dock}}}}<br />
* {{App|[[Docker]]|A docking application which acts as a system tray.|http://icculus.org/openbox/2/docker/|{{Pkg|docker}}}}<br />
* {{App|[[fbpanel]]|Lightweight, NETWM compliant desktop panel.|http://fbpanel.sourceforge.net/|{{AUR|fbpanel}}}}<br />
* {{App|[[LXPanel]]|Lightweight X11 desktop panel and part of the LXDE DE.|http://lxde.org/|{{AUR|lxpanel}}}}<br />
* {{App|pancake|A highly configurable, modular panel for X|http://www.failedprojects.de/pancake/|{{AUR|pancake}}}}<br />
* {{App|[[PyPanel]]|Lightweight panel/taskbar written in Python and C.|http://pypanel.sourceforge.net/|{{AUR|pypanel}}}}<br />
* {{App|qtpanel|A project to create useful and beautiful panel in Qt|https://bbs.archlinux.org/viewtopic.php?id&#61;117528|{{AUR|qtpanel-git}}}}<br />
* {{App|[[Stalonetray]]|A stand-alone system tray.|http://stalonetray.sourceforge.net/|{{Pkg|stalonetray}}}}<br />
* {{App|[[Tint2]]|Simple panel/taskbar developed specifically for Openbox.|http://code.google.com/p/tint2/|{{Pkg|tint2}}}}<br />
* {{App|[[Trayer]]|Swallows GTK 1.2/2.x application docklets, and KDE docklets.|https://gna.org/projects/fvwm-crystal/|{{Pkg|trayer}}}}<br />
* {{App|[[Xfce4panel]]|Default [[Xfce]] panel|http://www.xfce.org/projects/xfce4-panel/|{{Pkg|xfce4-panel}}}}<br />
<br />
==Window managers and desktop environments==<br />
*[[Desktop Environment#List of desktop environments|List of desktop environments]]<br />
*[[Window Manager#List of window managers|List of window managers]]<br />
<br />
===Login managers===<br />
<!--Use the App template.--><br />
*{{App|[[CDM]]|An ultra-minimalistic, yet full-featured login manager written in bash|http://cdm.ghost1227.com/|{{AUR|cdm}}}}<br />
*{{App|[[SLiM]]|A lightweight and elegant graphical login solution|http://slim.berlios.de/|{{Pkg|slim}}}}<br />
*{{App|[[Qingy]]|An ultralight and very configurable graphical login independent on X Windows|http://qingy.sourceforge.net/|{{Pkg|qingy}}}}<br />
<br />
== System Monitoring ==<br />
*[[adesklet-systemmonitor]] - Modular stackable system monitors for adesklets http://adesklets.sourceforge.net/desklets.html<br />
*{{App|[[Conky]]|A lightweight, scriptable system monitor|http://conky.sourceforge.net/|{{Pkg|conky}}}}<br />
*[[gkrellm]] - Simple, flexible system monitor package for GTK2; many plug-ins are available on AUR. http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html<br />
*{{App|[[Wikipedia:Htop|Htop]]|A simple, ncurses interactive process viewer|http://htop.sourceforge.net/|{{Pkg|htop}}}}<br />
*{{App|LXTask|A lightweight task manager for [[LXDE]]|http://wiki.lxde.org/en/LXTask|{{Pkg|lxtask}}}}<br />
<br />
== Terminal emulators ==<br />
{{Wikipedia|List of terminal emulators}}<br />
* [[Wikipedia:aterm|aterm]] - An xterm replacement with transparency support http://aterm.sourceforge.net/<br />
* Eterm ([[Enlightenment]], derived from rxvt)<br />
*[http://www.calno.com/evilvte/ evilvte] (The name apparently is a reference to [[Evilwm|evilwm]], although the two projects do not appear to be related.) (VTE)<br />
* [[gnome-terminal]] - [[GNOME]] default (standalone) terminal with support for Unicode and pseudo-transparency (VTE)<br />
* [[guake]] - A a drop-down terminal for Gnome Desktop Environment. https://aur.archlinux.org/packages.php?ID=15547<br />
* [[Wikipedia:Konsole|konsole]] - [[KDE]]'s default terminal<br />
* [[lxterminal]] - VTE-based terminal emulator and c part of the LXDE DE. http://lxde.org/<br />
* {{App|[[LilyTerm]]|A light and easy to use libvte based X Terminal Emulator|http://lilyterm.luna.com.tw/|{{Pkg|lilyterm}}}}<br />
* [[mrxvt]] - Tabbed X terminal emulator based on rxvt code http://materm.sourceforge.net/index.html<br />
*[http://aur.archlinux.org/packages.php?ID=36730 mt] written as nice light-er-weight replacement for sakura (the binary is one third the size), keeping most of the functionality, except settings are defined during compilation, and removes some stupid features. (VTE)<br />
* {{App|ROXTerm|A tabbed, VTE-based terminal emulator with a small footprint|http://rox.sourceforge.net|{{Pkg|roxterm}}}}<br />
* [[Wikipedia:Rxvt|rxvt]] {{AUR|rxvt}}<br />
*{{App|[[urxvt]]|A highly extendable unicode enabled rxvt-clone terminal emulator featuring tabbing, url launching, quake-style dropdown, pseudo-transparency, and is extensible with perl|http://software.schmorp.de/pkg/rxvt-unicode|{{Pkg|rxvt-unicode}}}}<br />
*{{App|Sakura|A terminal emulator based on GTK+ and VTE|http://www.pleyades.net/david/sakura.php|{{Pkg|sakura}}}}<br />
*{{App|[[Stjerm]]|is a GTK+-based drop-down terminal emulator. Stjerm sets itself apart from similar programs by providing a minimalistic interface combined with a small file size, lightweight memory usage and easy integration with composite window managers such as Compiz. |http://code.google.com/p/stjerm-terminal-emulator/downloads/list|}}<br />
* [[terminal]] - Xfce default terminal with support for a colorized prompt and a tabbed interface http://www.xfce.org/projects/terminal/ (VTE)<br />
* [[terminator]] - A terminal emulator supporting multiple resizable terminal panes<br />
* [[Termit]] http://wiki.github.com/nonstop/termit/<br />
*{{App|[[Wikipedia:Tilda (software)|Tilda]]|A Linux terminal taking after the likeness of many classic terminals from first person shooter games, Quake, Doom and Half-Life (to name a few), where the terminal has no border and is hidden from the desktop until a key is pressed|http://sourceforge.net/projects/tilda/files/|{{Pkg|tilda}}}}<br />
*{{App|[[Xterm]]|A terminal emulator for the X Window System|http://invisible-island.net/xterm/|{{Pkg|xterm}}}}<br />
* [[yakuake]] - A drop-down terminal emulator based on KDE Konsole technology http://extragear.kde.org/apps/yakuake/<br />
<br />
==Text editors==<br />
<!--Keep in sync with [[Lightweight Applications]] and use the App template.--><br />
{{Wikipedia|Comparison of text editors}}<br />
===Console===<br />
*{{App|[[Emacs|GNU Emacs]]|The somewhat intimidating but famously extensible text editor with hundreds of tricks and add-ons|http://www.gnu.org/software/emacs/|{{Pkg|emacs}}}}<br />
<!-- joe --><br />
*{{App|[[nano]]|A console text editor based on pico with on-screen key binding help|http://www.nano-editor.org/|{{Pkg|nano}}}}<br />
*{{App|[[Vim]]|Vi IMproved|http://www.vim.org/|{{Pkg|vim}}}}<br />
<br />
===Graphical===<br />
*{{App|[[Wikipedia:Acme (text editor)|Acme]]|A minimalist and flexible programming environment by Rob Pike|http://acme.cat-v.org|{{Pkg|plan9port}}}}<br />
*{{App|[[Beaver]]|An Early AdVanced EditoR|http://www.nongnu.org/beaver/|{{Pkg|beaver}}}}<br />
*{{App|[[Wikipedia:Bluefish (text editor)|Bluefish]]|GTK editor/IDE with an MDI interface, syntax highlighting and support for Python plugins|http://bluefish.openoffice.nl/|{{Pkg|bluefish}}}}<br />
*{{App|Cssed|GTK2 based Cascading Style Sheets (CSS) editor|http://cssed.sourceforge.net/|[[package]]}}<br />
*{{App|Edile|A PyGTK code/scripting editor implemented in one file|http://edile.googlecode.com|{{AUR|edile}}}}<br />
*{{App|[[Wikipedia:Geany|Geany]]|A text editor using the GTK+ 2 toolkit with basic features of an integrated development environment|http://www.geany.org|{{Pkg|geany}}}}<br />
*{{App|[[Wikipedia:Gedit|Gedit]]|Part of the GNOME desktop, but has minimal dependencies: a GTK2 editor with syntax highlighting, automatic indentation, matching brackets, etc., and a number of add-ons to increase functionality|http://projects.gnome.org/gedit/|{{Pkg|gedit}}}}<br />
*{{App|[[gVim]]|Vi IMproved|http://www.vim.org/|{{Pkg|gvim}}}}<br />
*{{App|[[Kate]]|The KDE Advanced Text Editor. A full-featured programmer's editor, with MDI and a filesystem browser|[[project]]|[[package]]}}<br />
*{{App|[[KWrite]]|(part of the KDE desktop) A lightweight text editor with syntax highlighting.|[[project]]|{{Pkg|kwrite}}}}<br />
*{{App|[[Leafpad]]|A notepad clone for GTK+ 2.x that emphasizes simplicity|http://tarot.freeshell.org/leafpad/|{{Pkg|leafpad}}}}<br />
*{{App|medit|medit is a programming and around-programming text editor|http://mooedit.sourceforge.net/|{{Pkg|medit}}}}<br />
*{{App|[[Wikipedia:PyRoom|PyRoom]]|A great distractionless PyGTK text editor, a clone of the infamous WriteRoom|http://pyroom.org/|{{AUR|pyroom}}}}<br />
*{{App|[[Wikipedia:Sam (text editor)|Sam]]|A graphical text editor by Rob Pike (still used by Ken Thompson and others)|http://sam.cat-v.org|{{Pkg|plan9port}} or {{Pkg|9base}}}}<br />
*{{App|[[Scite]]|A generally useful editor with facilities for building and running programs|http://www.scintilla.org/SciTE.html|{{Pkg|scite}}}}<br />
*{{App|[[Tea]]|a QT based feature rich text editor|[[project]]|{{Pkg|tea}}}}<br />
<br />
== OCR tools ==<br />
There are several steps to the whole OCR process, the actual OCR engine is only part of this:<br />
# scanning<br />
# document layout analysis<br />
# optical character recognition<br />
# post-processing (formatting, PDF creation)<br />
<br />
=== OCR Engines ===<br />
* [[CuneiForm]] is a command line OCR system originally developed and open sourced by Cognitive technologies. Supported languages: eng, ger, fra, rus, swe, spa, ita, ruseng, ukr, srp, hrv, pol, dan, por, dut, cze, rum, hun, bul, slo, lav, lit, est, tur. Available from [[pacman]]/community. https://launchpad.net/cuneiform-linux<br />
* [[GOCR]]/JOCR (http://jocr.sourceforge.net/) is an OCR engine which also supports barcode recognition. Available from [[pacman]]/extra as "gocr". http://www.gnu.org/software/ocrad/<br />
* [[Ocrad]] is an OCR (Optical Character Recognition) program based on a feature extraction method. Available from [[pacman]]/extra. http://www.gnu.org/software/ocrad/<br />
* [[Tesseract]] is "probably one of the most accurate open source OCR engines available". Available from [[pacman]]/community. http://code.google.com/p/tesseract-ocr/<br />
<br />
=== Layout analysers and user interfaces ===<br />
* [[gscan2pdf]] scans, runs Tesseract and creates a PDF all in one go<br />
* [[Kooka]] is a scanner GUI for KDE which supports the OCR engines [[GOCR]], [[Ocrad]] or [[KADMOS]]. Used to be part of kdegraphics4, but dropped out due to lack of development. http://kooka.kde.org/{{Linkrot|2011|09|03}}<br />
* [[OCRFeeder]] is a Python GUI for Gnome which performs document analysis and rendition, and can use either [[CuneiForm]], [[GOCR]], [[Ocrad]] or [[Tesseract]] as OCR engines. It can import from PDF or image files, and export to HTML or OpenDocument. Available from [[AUR]]. http://live.gnome.org/OCRFeeder<br />
* [[OCRopus]] is an OCR ''platform'', modules exist for document layout analysis, OCR engines (it can use Tesseract or its own engine), natural language modelling, etc. Available from [[AUR]]. http://code.google.com/p/ocropus/<br />
* [[YAGF]] is a graphical interface for the [[CuneiForm]] text recognition program on the Linux platform. Available from community repository. http://symmetrica.net/cuneiform-linux/yagf-en.html<br />
<br />
==Application Launchers==<br />
<!--Use the App template.--><br />
*{{App|Fehlstart|A small application launcher written in c99|https://bbs.archlinux.org/viewtopic.php?id=122009/|{{AUR|fehlstart-git}}}}<br />
*{{App|Adeskbar|An easy, simple, unobtrusive application launcher for Openbox|https://launchpad.net/adeskbar|{{AUR|adeskbar}}}}<br />
<br />
==Games==<br />
*[[Games]]<br />
*[[Netbook Games]]<br />
<br />
==See also==<br />
*[[Scientific Applications]]<br />
*[https://bbs.archlinux.org/viewtopic.php?id=88515 Arch Linux Forums / LnF Awards 2010] - The best Light & Fast apps of 2010.<br />
*[https://bbs.archlinux.org/viewtopic.php?id=111878 Arch Linux Forums / LnF Awards 2011] - The best Light & Fast apps of 2011.<br />
*http://linuxappfinder.com/<br />
*http://www.linuxlinks.com/<br />
*http://en.wikipedia.org/wiki/List_of_open_source_software_packages<br />
*http://linuxappfinder.com/alternatives - Windows and OS X Software Alternatives<br />
*http://alternativeto.net/ - find alternatives to popular programs<br />
*http://www.linuxalt.com/ - Linux equivalents of Windows software<br />
*http://lin-app.com/ - on-line information service of various commercial applications and games for Linux</div>Elbahekhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics&diff=134553Touchpad Synaptics2011-03-23T01:28:00Z<p>Elbahek: /* Disable touchpad upon external mouse detection */</p>
<hr />
<div>{{i18n|Touchpad Synaptics}}<br />
[[de:Synaptics Touchpad Treiber]]<br />
[[Category:Input devices (English)]][[Category:HOWTOs (English)]]<br />
This article details the installation and configuration process of the '''''Synaptics input driver''''' for Synaptics (and ALPS) touchpads found on most notebooks.<br />
<br />
==Installation==<br />
<br />
The Synaptics driver is now bundled as ''xf86-input-synaptics'', and is available in the [[Official_Repositories|[extra] repository]]:<br />
<br />
# pacman -S xf86-input-synaptics<br />
<br />
== Configuration ==<br />
<br />
The primary method of configuration for the touchpad is through an xorg server configuration file. After installation of ''xf86-input-synaptics'', a default configuration file is located at ''/etc/X11/xorg.conf.d/10-synaptics.conf''. <br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection<br />
<br />
Users can edit this file to configure the various driver options available, for a complete list of all available options users should refer to the synaptics manual page.<br />
<br />
=== Available options ===<br />
<br />
The Synaptics driver allows for a vast amount of options to be tweaked. Luckily, all of them are consistently named and well documented in Synaptic's manpage. Before you proceed to learn about the various configuration methods documented below: read the manpage so that you are aware of the available options.<br />
<br />
man synaptics<br />
<br />
==== Frequently used options ====<br />
<br />
The following lists options that many users may wish to configure. Note that all these options can simply be added to the main configuration file in ''/etc/X11/xorg.conf.d/10-synaptics.conf'', as shown in this example configuration file where we have enabled vertical, horizontal and circular scrolling:<br />
<br />
Section "InputClass"<br />
Identifier "touchpad"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "VertEdgeScroll" "on"<br />
Option "VertTwoFingerScroll" "on"<br />
Option "HorizEdgeScroll" "on"<br />
Option "HorizTwoFingerScroll" "on"<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "2"<br />
Option "EmulateTwoFingerMinZ" "0"<br />
...<br />
EndSection<br />
<br />
* '''TapButton1''': (integer) configures which mouse-button is reported on a non-corner, one finger tap.<br />
* '''TapButton2''': (integer) configures which mouse-button is reported on a non-corner, two finger tap<br />
* '''TapButton3''': (integer) configures which mouse-button is reported on a non-corner, three finger tap<br />
* '''RBCornerButton''': (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use '''Option "RBCornerButton" "3"''' to achieve Ubuntu- style tap behaviour for right mouse button in lower right corner)<br />
* '''VertEdgeScroll''': (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.<br />
* '''HorizEdgeScroll''': (boolean) enables horizontal scrolling while dragging across the right edge of the touch pad.<br />
<br />
[[Touchpad_Synaptics/10-synaptics.conf_example|An example]] with a brief description of all options. As usual settings will vary between machines. It is recommended that you discover your own options using [[Touchpad_Synaptics#fine-tuning_with_synclient|synclient]].<br />
<br />
{{Note|If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you don't mind losing two-finger-tap functionality, set {{Codeline|TapButton2}} to 0.}}<br />
<br />
=== Configuration on the fly ===<br />
<br />
Next to the traditional method of configuration, the Synaptics driver also supports on the fly configuration. This means that users can set certain options through a software application, these options are applied immediately without needing a restart of X. There are four ways to do on the fly configuration:<br />
*GPointingDeviceSettings (recommended)<br />
*GSynaptics<br />
*synclient<br />
*xinput (recommended) [TODO]<br />
<br />
==== xinput ====<br />
Use `xinput list` to find your device name.<br />
<br />
Use `xinput list-props "SynPS/2 Synaptics TouchPad"` to list props.<br />
<br />
Read the xinput and synaptics manuals and such.<br />
<br />
==== GPointingDeviceSettings ====<br />
GPointingDeviceSettings provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver. GPointingDeviceSettings is available through the [https://aur.archlinux.org/packages.php?ID=25663 AUR]. If this is your first time using the AUR, please refer [http://wiki.archlinux.org/index.php/AUR here].<br />
<br />
GPointingDeviceSettings requires '''xf86-input-synaptics''' and '''libsynaptics''' to be installed for use with synaptics touch pads. These are available in the [extra] and [community] repositories, respectively. Both are installable through pacman.<br />
$ sudo pacman -S xf86-input-synaptics libsynaptics<br />
<br />
==== GSynaptics (deprecated but functional) ====<br />
{{Note|Though the [http://gsynaptics.sourceforge.jp/ GSynaptics website] mentions that its development has stopped and it will eventually be outdated, the application functions perfectly with xorg 1.8. Users are suggested to use '''GPointingDeviceSettings''' instead, GSynaptics should only be used as a last resort.}}<br />
<br />
{{Note|The GPointingDeviceSettings info http://live.gnome.org/GPointingDeviceSettings and http://aur.archlinux.org/packages.php?ID=25663 should help.}}<br />
<br />
On the fly configuration can also be done graphically through GSynaptics, a GTK application available in the [community] repository. GSynaptics allows the user to configure options such as horizontal, vertical and circular scrolling as well as the option to enable or disable the touchpad. GSynaptics requires that the '''SHMConfig''' option is enabled.<br />
$ sudo pacman -S gsynaptics<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
Option "SHMConfig" "true"<br />
EndSection<br />
<br />
==== fine-tuning with synclient ====<br />
Synclient is a command line utility to configure and query Synaptics driver settings.<br />
<br />
{{ Box Note|In recent versions of synaptics monitoring the touchpad via synclient -m is broken. You can still change options with synclient.}}<br />
<br />
The synclient monitor can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings.<br />
<br />
You can start the Synaptics monitor with the following command:<br />
$ synclient -m 100<br />
Where -m activates the monitor and the following number specifies the update interval in milliseconds.<br />
<br />
This monitor provides information about the current state of your touchpad. For example, if you move the mouse with the touchpad, the x and y values in the monitor will change. Therewith you can easy figure out your touchpad's dimension which is defined in the LeftEdge-, RightEdge-, BottomEdge- and TopEdge-Options.<br />
<br />
The abbreviations for the parameters are as follow:<br />
<br />
{| class="wikitable"<br />
|- align="left"<br />
!width="200"|+Abbreviation+<br />
!width="400|+Description+<br />
|-<br />
|'''time'''<br />
|Time in seconds since the logging was started.<br />
|-<br />
|'''x, y'''<br />
|The x/y coordinates of the finger on the touchpad. The origin is in the upper left corner.<br />
|-<br />
|'''z'''<br />
|The pressure value. It represents the pressure you are using to navigate on your touchpad.<br />
|-<br />
|'''f'''<br />
|Number of fingers currently touching the touchpad.<br />
|-<br />
|'''w'''<br />
|Value that represents the finger width.<br />
|-<br />
|'''l,r,u,d,m,multi'''<br />
|Those values represent the state of the left, right, up, down, middle and multi buttons pressed where zero means not pressed and one means pressed.<br />
|-<br />
|'''gl,gm,gr'''<br />
|For touchpads which have a guest device, this are the associated button states for guest left, guest middle and guest right pressed (1) and not pressed (0).<br />
|-<br />
|'''gdx, gdy'''<br />
|x/y coordinates of the guest device.<br />
|}<br />
If a value constantly is zero, it implies that this option is not supported by your device.<br />
<br />
Now use {{Codeline|synclient}} to test new values. For example, to adjust minimum pointer speed:<br />
<br />
synclient MinSpeed=0.5<br />
<br />
The changes will not be permanent, they will need to be put in your conf file ('''/etc/X11/xorg.conf.d/10-synaptics.conf''') to make them so.<br />
<br />
==== ALPS Touchpads ====<br />
<br />
{{warning|TODO needs to be rewritten for udev}}<br />
<br />
For ALPS Touchpads, if the above configuration does not provide the desired results, try the following configuration instead:<br />
<br />
Section "ServerLayout"<br />
...<br />
InputDevice "USB Mouse" "CorePointer"<br />
InputDevice "Touchpad" "SendCoreEvents"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "Touchpad"<br />
Driver "synaptics"<br />
Option "Device" "/dev/input/mouse0"<br />
Option "Protocol" "auto-dev"<br />
Option "LeftEdge" "130"<br />
Option "RightEdge" "840"<br />
Option "TopEdge" "130"<br />
Option "BottomEdge" "640"<br />
Option "FingerLow" "7"<br />
Option "FingerHigh" "8"<br />
Option "MaxTapTime" "180"<br />
Option "MaxTapMove" "110"<br />
Option "EmulateMidButtonTime" "75"<br />
Option "VertScrollDelta" "20"<br />
Option "HorizScrollDelta" "20"<br />
Option "MinSpeed" "0.25"<br />
Option "MaxSpeed" "0.50"<br />
Option "AccelFactor" "0.010"<br />
Option "EdgeMotionMinSpeed" "200"<br />
Option "EdgeMotionMaxSpeed" "200"<br />
Option "UpDownScrolling" "1"<br />
Option "CircularScrolling" "1"<br />
Option "CircScrollDelta" "0.1"<br />
Option "CircScrollTrigger" "2"<br />
Option "SHMConfig" "on"<br />
Option "Emulate3Buttons" "on"<br />
EndSection<br />
<br />
==Advanced Configuration==<br />
<br />
===Circular scrolling===<br />
<br />
Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise.<br />
To enable circular scrolling, add the following options to the touchpad device section of '''/etc/X11/xorg.conf.d/10-synaptics.conf''':<br />
Section "InputClass"<br />
...<br />
Option "CircularScrolling" "on"<br />
Option "CircScrollTrigger" "0"<br />
...<br />
EndSection<br />
<br />
The option '''CircScrollTrigger''' may be one of the following values, determining which edge circular scrolling should start:<br />
0 All Edges<br />
1 Top Edge<br />
2 Top Right Corner<br />
3 Right Edge<br />
4 Bottom Right Corner<br />
5 Bottom Edge<br />
6 Bottom Left Corner<br />
7 Left Edge<br />
8 Top Left Corner<br />
<br />
Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.<br />
<br />
To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.<br />
<br />
===Software Toggle===<br />
<br />
You may find it useful to have a software toggle that will turn on or off your touchpad, esplicially if it's extremely sensitive and your doing a lot of typing. Please also see [[#Disable touchpad upon external mouse detection]] as that may be better solution, a matter of choice. The advantage here is you have the control, while the other solution has a daemon determine when to turn off the trackpad.<br />
<br />
You will want to grab [[xbindkeys]] if you don't already have key binding software.<br />
<br />
Then save this script to something such as /sbin/trackpad-toggle.sh:<br />
<br />
#!/bin/bash<br />
<br />
if [ $(synclient -l | grep TouchpadOff | gawk -F '= ' '{ print $2 }') -eq 0 ]; then<br />
synclient TouchpadOff=1<br />
else<br />
synclient TouchpadOff=0<br />
fi<br />
<br />
Then finally add a key binding to use the script. It is best to call with xbindkeys like so (file ''~/.xbindkeysrc''):<br />
<br />
"/sbin/trackpad-toggle.sh"<br />
m:0x5 + c:65<br />
Control+Shift + space<br />
<br />
Now just (re)start xbindkeys and ctrl+Shift+Space will now toggle your trackpad !<br />
<br />
Of course you could easily use any other keybinding software, such as the ones provided by Xfce4 and Gnome.<br />
<br />
==Troubleshooting==<br />
<br />
=== The touchpad isn't working, Xorg.0.log shows "Query no Synaptics: 6003C8" ===<br />
<br />
Due to the way synaptics is currently set-up, 2 instances of the synaptics module are loaded. We can recognize this situation by opening the xorg log file (/var/log/Xorg.0.log) and noticing this:<br />
<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"<br />
[ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"<br />
<br />
Notice how 2 differently named instances of the module are being loaded. In some cases, this causes the touchpad to become nonfunctional.<br />
<br />
we can prevent this double loading by editing our ''/etc/X11/xorg.conf.d/10-synaptics.conf'' file. We should add '''MatchDevicePath "/dev/input/event*"'''<br />
<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "2"<br />
Option "TapButton3" "3"<br />
EndSection <br />
<br />
Restart X and check xorg logs again, the error should be gone and the touchpad should be functional.<br />
<br />
related bugreport: <br />
*https://bugs.archlinux.org/task/20830<br />
<br />
related forum topics:<br />
* https://bbs.archlinux.org/viewtopic.php?id=104769<br />
* https://bbs.archlinux.org/viewtopic.php?pid=825690<br />
<br />
===Synaptics Special Ability===<br />
<br />
By default, Synaptics touchpads are able to detect the number of fingers on the touchpad; ALPS touchpads are not. If the touchpad is tapped with two fingers, it will emulate a middle click. If the touchpad is typed with three fingers, a right click will be emulated.<br />
<br />
===Non-functional Synaptics Special Abilities (multi-tap, scrolling, etc.)===<br />
<br />
In some cases Synaptics touchpads only work partially. Features like two-finger scrolling or two-finger middle-click do not work even if properly enabled. This is probably related to the [http://wiki.archlinux.org/index.php/Synaptics#The_touchpad_isn.27t_working.2C_Xorg.0.log_shows_.22Query_no_Synaptics:_6003C8.22 The touchpad isn't working] problem mentioned above. Fix is the same, prevent double module loading.<br />
<br />
===Disable touchpad upon external mouse detection===<br />
<br />
With the assistance of [[udev]], it is possible to automatically disable the touchpad if an external mouse has been plugged in. To achieve this, add the following udev rules to '''/etc/udev/rules.d/01-touchpad.rules''':<br />
<br />
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0", <br />
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
GDM stores Xauthority files in /var/run/gdm in randomly-name directory. So udev rules will look like this<br />
<br />
ACTION=="add", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"<br />
<br />
ACTION=="remove", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username*",<br />
ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"<br />
<br />
Note that udev rules must be a single line each, so format accordingly.<br />
<br />
SHMConfig must be enabled (see the '''Configuration''' section for details)<br />
<br />
===Cursor Jump===<br />
<br />
Some users have their cursor inexplicably ''jump'' around the screen. There currently no patch for this, but the developers are aware of the problem and are working on it.<br />
<br />
===Multitouch===<br />
<br />
Multitouch gesture like in Mac OS X will be in future version of the driver.<br />
<br />
===Touchpad device isn't located at /dev/input/mouse0===<br />
<br />
If that's the case, you can use this command to display information about your input devices:<br />
cat /proc/bus/input/devices<br />
Search for an input device which has the name "SynPS/2 Synaptics TouchPad". The "Handlers" section of the output specifies what device you need to specify.<br />
<br />
'''Example output:'''<br />
I: Bus=0011 Vendor=0002 Product=0007 Version=0000<br />
N: Name="SynPS/2 Synaptics TouchPad"<br />
P: Phys=isa0060/serio4/input0<br />
S: Sysfs=/class/input/input1<br />
H: Handlers=mouse0 event1<br />
B: EV=b<br />
B: KEY=6420 0 7000f 0<br />
<br />
In this case, the Handlers are mouse0 and event1, so /dev/input/mouse0 would be used.<br />
<br />
{{warning|TODO explain how to apply this in 10-synaptics.conf}}<br />
<br />
=== Disable Trackpad while Typing ===<br />
<br />
There are two approaches on how run this command depending on your setup. But first you will need to have SHMConfig enable in your {{Filename|/etc/X11/xorg.conf.d/10-synaptics.conf}}.<br />
<br />
==== Using {{Filename|.xinitrc}} ====<br />
<br />
To have the touchpad disabled automatically when you begin typing, add the following line to your .xinitrc before you run your window manager (if not using a login manager):<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
; '''-i 2''': sets the idle time to 2 seconds. The idle time specifies how many seconds to wait after the last key-press before enabling the touchpad again.<br />
; '''-t''': tells the daemon not to disable mouse movement when typing and only disable tapping and scrolling.<br />
; '''-k''': tells the daemon to ignore modifier keys when monitoring keyboard activity (ie: allows ctrl+left click).<br />
; '''-d''': starts as a daemon, in the background.<br />
<br />
More details are available in the man page:<br />
<br />
$ man syndaemon<br />
<br />
If you are using a login manager, you will need to specify the command where your DE allows you to do so.<br />
<br />
==== Using a Login Manager ====<br />
<br />
The "-d" option is necessary to start syndaemon as a background process for post Login instructions.<br />
<br />
'''For GNOME: (GDM)'''<br />
<br />
To start syndaemon you need to use Gnome's Startup Applications Preferences program. Login to Gnome and go to '''System > Preferences > Startup Applications'''. In the Startup Programs tab click the '''Add''' button. Name the Startup Program whatever you like and input any comments you like (or leave this field blank). In the command field add:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
When you're done click the Add button in the Add Startup Program dialogue. Make sure the check box next to the startup program you've created is checked, in the list of additional startup programs. Close the Startup Applications Preferences window and you're done.<br />
<br />
'''For KDE: (KDM)'''<br />
<br />
Goto '''System Settings > Advanced Tab > Autostart''', then click '''Add Program''', enter:<br />
<br />
syndaemon -t -k -i 2 -d &<br />
<br />
Then check 'Run in terminal'.<br />
<br />
===Firefox and special touchpad events===<br />
<br />
By default, Firefox is set up to do special events upon tapping or scrolling certain parts of your touchpad.<br />
You can edit the settings of those actions by typing '''about:config''' in your Firefox address bar.<br />
To alter these options, double-click on the line in question, changing "true" to "false" and vise versa.<br />
<br />
To prevent Firefox from scrolling (backward/forward) through browser history and instead scroll through pages, edit these settings as shown:<br />
mousewheel.horizscroll.withnokey.action = 1<br />
mousewheel.horizscroll.withnokey.sysnumlines = true<br />
<br />
To prevent Firefox from redirecting you to URLs formed from your clipboard content upon tapping the upper-right corner of your touchpad (or middle mouse button), set the following option to "false":<br />
middlemouse.contentLoadURL = false<br />
<br />
===Opera: horizontal scrolling issues===<br />
<br />
Same as above.<br />
To fix it, go to Tools -> Preferences -> Advanced -> Shortcuts. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:<br />
* assign key "Button 6" to command "Scroll left"<br />
* assign key "Button 7" to command "Scroll right"<br />
<br />
===Scrolling and multiple actions with Synaptics on LG Laptops===<br />
<br />
These problems seem to be occurring on several models of LG laptops.<br />
Symptoms include: when pressing Mouse Button 1, Synaptics interprets it as ScrollUP and a regular button 1 click; same goes for button 2.<br />
<br />
The scrolling issue can be resolved by entering in xorg.conf:<br />
Option "UpDownScrolling" "0"<br />
<br />
NOTE that this will make Synaptics interpret one button push as three. There is a patch written by Oskar Sandberg[http://www.math.chalmers.se/~ossa/linux/lg_tx_express.html] that removes these clicks.<br />
<br />
Apparently, when trying to compile this against the latest version of Synaptics it fails. The solution to this is using the GIT repository for Synaptics[http://web.telia.com/~u89404340/touchpad/synaptics/.git] .<br />
<br />
There is also a package build file in the AUR to automate this: [http://aur.archlinux.org/packages.php?ID=15983].<br />
<br />
To build the package after downloading the tarball and unpacking it, execute:<br />
cd synaptics-git<br />
makepkg<br />
<br />
If you want it to be automatically installed after being built, just add '-i' after makepkg.<br />
<br />
===Other external mouse issues===<br />
<br />
First, make sure your section describing the external mouse contains this line (or that the line looks like this):<br />
<br />
Option "Device" "/dev/input/mice"<br />
<br />
If the "Device" line is different, change it to the above and try to restart X. If this doesn't solve your problem, make your '''touchpad''' the CorePointer in the "Server Layout" section:<br />
<br />
InputDevice "Touchpad" "CorePointer"<br />
<br />
and make your external device "SendCoreEvents":<br />
<br />
InputDevice "USB Mouse" "SendCoreEvents"<br />
<br />
finally add this to your external device's section:<br />
<br />
Option "SendCoreEvents" "true"<br />
<br />
If all of the above doesn't work for you, please check relevant bug trackers for possible bugs, or go through the forums to see if anyone has found a better solution.<br />
<br />
===Touchpad synchronization issues===<br />
<br />
Sometimes the cursor may freeze for several seconds or start acting on its own for no apparent reason. This behavior is accompanied by records in /var/log/messages.log<br />
<br />
psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away<br />
<br />
This problem has no general solution, but there are several possible workarounds.<br />
*If you use CPU frequency scaling, avoid using the "ondemand" governor and use the "performance" governor when possible, as the touchpad may lose sync when the CPU frequency changes.<br />
*Avoid using an ACPI battery monitor.<br />
*Attempt to load psmouse with "proto=imps" option. To do that, add this line to your /etc/modprobe.conf:<br />
<br />
options psmouse proto=imps<br />
<br />
*Try another desktop environment. Some users report that this problem only occurs when using XFCE or GNOME, for whatever reason<br />
<br />
===Delay between a button tap and the actual click===<br />
<br />
If you experience a delay between the tap on the touchpad and the actual click that is registered you need to enable FastTaps:<br />
<br />
To do so, you should add '''Option "FastTaps" "1"''' to '''/etc/X11/xorg.conf.d/10-synaptics.conf''' so that you have:<br />
<br />
Section "InputClass"<br />
Identifier "Synaptics Touchpad"<br />
Driver "synaptics"<br />
...<br />
Option "FastTaps" "1"<br />
...<br />
EndSection<br />
<br />
===SynPS/2 Synaptics TouchPad can't grab event device, errno=16===<br />
<br />
If you are using Xorg 7.4, you may get a warning like this from /var/log/Xorg.0.log, thais is because the driver will grab the event device for exclusive use when using the Linux 2.6 event protocol. When it fails, X will return this error message.<br />
<br />
Grabbing the event device means that no other user space or kernel space program sees the touchpad events. This is desirable if the X config file includes /dev/input/mice as an input device, but is undesirable if you want to monitor the device from user space.<br />
<br />
If you want to control it, add or modify the "GrabEventDevice" option in you touchpad section in /etc/X11/xorg.conf.d/10-synaptics.conf:<br />
<br />
...<br />
Option "GrabEventDevice" "''boolean''"<br />
...<br />
<br />
This will come into effect when X is restarted, though you can also change it by using synclient. When changing this parameter with the synclient program, the change will not take effect until the Synaptics driver is disabled and re-enabled. This can be achieved by switching to a text console and then switching back to X.<br />
<br />
===Synaptics Loses Multitouch Detection After Rebooting From Windows===<br />
<br />
Many drivers include a firmware that is loaded into flash memory when the computer boots. This firmware is not necessarily cleared upon shutdown, and is not always compatible with Linux drivers. The only way to clear the flash memory is to shutdown completely rather than using reboot. It's generally considered best practice to never use reboot when switching between operating systems.<br />
<br />
==External Resources==<br />
<br />
Synaptics TouchPad driver: [http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/]<br />
<!-- vim: set ft=Wikipedia: --></div>Elbahek