XDG Base Directory (Português)
Esse artigo resumo a especificação XDG Base Directory em #Especificação e rastreia o suporte por softwares em #Suporte.
Especificação
Leia a especificação completa. Essa seção vai tentar destrinchar a essência do que a especificação tenta alcançar.
Apenas XDG_RUNTIME_DIR está definido por padrão por meio de pam_systemd(8). É deixado para que o usuário defina explicitamente as demais variáveis de acordo com a especificação.
Diretórios de usuário
- 
XDG_CONFIG_HOME- Onde configurações específicas do usuário devem ser escrita (análogo a /etc).
- O padrão deve ser $HOME/.config.
 
- Onde configurações específicas do usuário devem ser escrita (análogo a 
- 
XDG_CACHE_HOME- Onde dados (em cache) não essenciais e específicos do usuário devem ser escritos (análogo a /var/cache).
- O padrão deve ser $HOME/.cache.
 
- Onde dados (em cache) não essenciais e específicos do usuário devem ser escritos (análogo a 
- 
XDG_DATA_HOME- Onde arquivos de dados específicos do usuário devem ser escritos (análogo a /usr/share).
- O padrão deve ser $HOME/.local/share.
 
- Onde arquivos de dados específicos do usuário devem ser escritos (análogo a 
- 
XDG_RUNTIME_DIR- Usado para arquivos de dados não essenciais e específicos do usuário, como soquetes, pipes nomeados etc.
- Não é necessário ter um valor padrão; avisos devem ser emitidos se não definido ou equivalentes não forem fornecidos.
- Deve pertencer ao usuário com um modo de acesso de 0700.
- Sistema de arquivos totalmente caracterizado pelos padrões do sistema operacional.
- Deve estar no sistema de arquivos local.
- Pode estar sujeito a limpeza periódica.
- Modificado a cada 6 horas ou defina um bit adesivo se desejar persistência.
- Só pode existir durante o início de sessão do usuário.
- Não deve armazenar arquivos grandes, pois pode ser montado como um tmpfs.
 
Diretórios de sistema
- 
XDG_DATA_DIRS- Lista de diretórios separadas por :(análogo aPATH).
- O padrão deve ser /usr/local/share:/usr/share.
 
- Lista de diretórios separadas por 
- 
XDG_CONFIG_DIRS- Lista os diretórios separados por :(análogo aPATH).
- O padrão deve ser /etc/xdg.
 
- Lista os diretórios separados por 
Suporte
Esta seção existe para catalogar o crescente conjunto de softwares usando a XDG Base Directory Specification introduzida em 2003. Isso está aqui para demonstrar a viabilidade desta especificação listando os arquivos de ponto comumente encontrados e seu status de suporte. Para aqueles que atualmente não oferecem suporte à Base Directory Specification, as soluções alternativas serão demonstradas como emulação.
As soluções alternativas serão limitadas a qualquer coisa que não envolva o patch da fonte, a execução do código armazenado em variáveis de ambiente ou as opções de tempo de compilação. A lógica para isso é que as configurações devem ser portáveis entre sistemas e ter opções em tempo de compilação evitam isso.
Espera-se que isso forneça uma fonte de informações sobre exatamente o que são certos tipos de arquivos-ponto (dotfiles) e de onde eles vêm.
Contribuindo
Ao contribuir, certifique-se de usar a seção correta.
Nada deve exigir avaliação de código (como vim e VIMINIT), patches ou opções em tempo de compilação para obter suporte e qualquer coisa que deva ser considerada codificada. Além disso, se o processo for muito propenso a erros ou difícil, como cabal do Haskell ou Eclipse, eles também deverão ser considerados como codificados.
- A primeira coluna deve ser um link para um artigo interno, um Template:Pkg ou um Template:AUR.
- A segunda coluna é para todos os arquivos e diretórios legados que o projeto tinha (um por linha); isso é feito para que as pessoas possam encontrá-los, mesmo que não sejam mais lidos.
- Na terceira, tente encontrar o commit ou a versão de um projeto que mudou para o XDG Base Directory ou quaisquer discussões abertas e inclua-as nas próximas duas colunas (duas por linha).
- A última coluna deve incluir quaisquer soluções alternativas ou soluções apropriadas. Verifique se sua solução está correta e funcional.
Tem suporte
| Aplicativo | Caminho legado | Suporte desde | Discussão | Observações | 
|---|---|---|---|---|
| aerc-gitAUR | ||||
| antimicrox | ~/.antimicro,~/.antimicrox | edba864 | [1] | |
| aria2 | ~/.aria2 | 8bc1d37 | [2] | |
| asunderAUR | 
 | 2.9.0[link inativo 2020-08-06 ⓘ] | [3][link inativo 2020-08-06 ⓘ] | Usa XDG_CONFIG_HOME/asunder/asunderpara~/.asundereXDG_CACHE_HOME/asunder/asunder_album_...para outros 3 arquivos. Caminhos legados não são removidos após a migração, tendo que ser excluídos manualmente. | 
| binwalk | ~/.binwalk | 2051757 | [4] | $XDG_CONFIG_HOME/binwalkHá suporte apenas no branch master do Git, não havendo lançamentos estáveis atualizados. | 
| Blender | ~/.blender | 4293f47[link inativo 2025-03-15 ⓘ] | [5] | |
| calibre | ||||
| Chromium | ~/.chromium | 23057 | ||
| citra-gitAUR[link quebrado: package not found] | ~/.citra-emu | f7c3193[link inativo 2024-07-30 ⓘ] | [8][link inativo 2024-07-30 ⓘ] | |
| Composer | ~/.composer | 1.0.0-beta1 | [9] | |
| d-feetAUR | ~/.d-feet | 7f6104b | ||
| dconf | ||||
| Dolphin emulator | ~/.dolphin-emu | a498c68 | [10] | |
| dr14_tmeterAUR[link quebrado: package not found] | 7e777ca | [11] | XDG_CONFIG_HOME/dr14tmeter/ | |
| dunst | 78b6e2b | [12] | ||
| elixir | ~/.mix | afaf889 | [13] | |
| fish | ||||
| fontconfig | 
 | 8c255fb | Usa "$XDG_DATA_HOME"/fontspara armazenar fones. | |
| fontforge | 
 | e4c2cc7 | ||
| freerdp | ~/.freerdp | edf6e72 | ||
| Gajim | ~/.gajim | 3e777ea | [16] | |
| gconfAUR | ~/.gconf | fc28caa | [17] | |
| GIMP | 
 | |||
| Git | ~/.gitconfig | 0d94427 | ||
| GStreamer | ~/.gstreamer-0.10 | 4e36f93 | [20] | |
| GTK 3 | ||||
| htop | ~/.htoprc | 93233a6 | ||
| i3 | ~/.i3 | 7c130fb | ||
| i3status | ~/.i3status.conf | c3f7fc4 | ||
| imagemagick | ||||
| Inkscape | ~/.inkscape | 0.47 | [21] | |
| Kakoune | ||||
| latexmk (em texlive-basic) | ~/.latexmkrc | |||
| lftp | ~/.lftp | 21dc400 | [22] | |
| lgogdownloaderAUR | ~/.gogdownloader | d430af6 | [23] | |
| LibreOffice | [24] | |||
| Streamlink | ~/.livestreamerrc | ea80591 | [25] | |
| llpp | 3ab86f0 | Atualmente, llpp coloca a configuração diretamente sob XDG_CONFIG_HOME, em vez de criar um diretório. | ||
| mc | ~/.mc | [26] | ||
| Mercurial | ~/.hgrc | XDG_CONFIG_HOME/hg/hgrc. | ||
| msmtp | ~/.msmtprc | af2f409 v1.6.7+ | $XDG_CONFIG_HOME"/msmtp/config. | |
| mesa | 87ab26b | XDG_CACHE_HOME/mesa | ||
| milkytracker | ~/.milkytracker_config | eb487c5 | [27] | |
| mpd | ~/.mpdconf | 87b7328 | ||
| mpv | ~/.mpv | cb250d4 | [28] | |
| mutt | ~/.mutt | b17cd67 | [29] | |
| mypaint | ~/.mypaint | cf723b7 | ||
| nano | 
 | c16e79b | [30] | |
| ncmpcpp | ~/.ncmpcpp | ncmpcpp_directorydeve ser definido para evitar um arquivoerror.logem~/.ncmpcpp. | ||
| Neovim | 
 | 1ca5646[link inativo 2024-01-13 ⓘ] | ||
| newsbeuter | ~/.newsbeuter | 3c57824 | [35] | É necessário criar ambos diretórios [36]: 
 | 
| node-gyp | ~/.node-gyp | 2b5ce52a | [37] | Disponível apenas no master até 2018-12-04. | 
| np2kai-gitAUR | 
 | 56a1cc2 | [38] | |
| nteract-binAUR | 4593e72 | [39] [40] | não reconhece soluções alternativas para ipython/jupyter | |
| OfflineIMAP | ~/.offlineimaprc | 5150de5 | [41] | |
| opentyrianAUR | ~/.opentyrian | 39559c3 | [42] | |
| pandoc-cli | ~/.pandoc/ | 0bed0ab | [43] | |
| pcsx2AUR | ~/.pcsx2 | [44] [45] | ||
| Pry | ~/.pryrc | [46] | ||
| python-pip | ~/.pip | 6.0 | [47] | |
| powershellAUR | 6.0 | |||
| ppsspp | ~/.ppsspp | 132fe47 | [48] | |
| procps-ng | ~/.toprc | af53e17 | ||
| pacman | ~/.makepkg.conf | 80eca94 | [51] | |
| panda3dAUR | ~/.panda3d | 2b537d2 | ||
| PulseAudio | 
 | [52] | ||
| pyroomAUR | ||||
| quodlibet | ~/.quodlibet | 3.10.0 | [53] | |
| qutebrowser | ||||
| qtile | [54] | Algumas barras opcionais podem criar arquivos e diretórios em caminhos sem conformidade, mas geralmente eles ainda são configuráveis. | ||
| rclone | ~/.rclone.conf | 9d36258 | [55] | |
| retroarch | ||||
| rrAUR | ~/.rr | 02e7d41 | [56] | |
| RSpec | ~/.rspec | 5e395e2 | [57] | |
| rTorrent | ~/.rtorrent.rc | 6a8d332 | ||
| RuboCop | ~/.rubocop.yml | 6fe5956 | [58] | |
| snes9x | ~/.snes9x | 93b5f11 | [59] | Por padrão, o arquivo de configuração é deixado em branco com a intenção de que o usuário vá preenchendo-o de acordo com sua própria vontade (por interface gráfica ou manualmente). | 
| sublime-text-devAUR | O cache é colocado em $XDG_CONFIG_HOME/sublime-text-3/Cacheem vez do esperado$XDG_CACHE_HOME/sublime-text-3. | |||
| surfraw | 
 | |||
| sway | ~/.sway/config | 614393c | [60] | |
| systemd | ||||
| termite | ||||
| tig | ~/.tigrc,~/.tig_history | 2.2 | [61] | O diretório ~/.local/share/tigdeve existir, do contrário escreve para~/.tig_history. | 
| tmuxinatorAUR | ~/.tmuxinator | 2636923 | [62] | |
| Transmission | ~/.transmission | b71a298 | ||
| util-linux | 570b321 | |||
| Uzbl | c6fd63a | [63] | ||
| vimb | ||||
| VirtualBox | ~/.VirtualBox | 4.3 | [64] | |
| vis | ~/.vis | [65] | ||
| VLC | ~/.vlcrc | 16f32e1[link inativo 2023-05-06 ⓘ] | [66] | |
| Visual Studio Code | Note que o diretório de extensões não vai ser movido; veja [67]. | |||
| warsow | ~/.warsow-2.x | 98ece3f | [68] | |
| Wireshark | ~/.wireshark | b0b53fa[link inativo 2022-09-23 ⓘ] | ||
| xsettingsd-gitAUR | ~/.xsettingsd | b4999f5 | ||
| xmonad | ~/.xmonad | 40fc10b | Alternativamente, as variáveis de ambiente XMONAD_CONFIG_HOME,XMONAD_DATA_HOMEeXMONAD_CACHE_HOMEtambém são configuráveis. | |
| xsel | ~/.xsel.log | ee7b481 | [71] | |
| yarn | 
 | 2d454b5 | [72] | 
Parcial
| Aplicativo | Caminho legado | Suporte desde | Discussão | Observações | 
|---|---|---|---|---|
| abookAUR | ~/.abook | $ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook | ||
| ackAUR | ~/.ackrc | [73] | $ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc" | |
| Anki | 
 | [74] [75] | $ anki -b "$XDG_DATA_HOME"/Anki | |
| aspell | ~/.aspell.conf | $ export ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl" | ||
| atomAUR[link quebrado: package not found] | ~/.atom | [76] | $ export ATOM_HOME="$XDG_DATA_HOME"/atom | |
| aws-cli | ~/.aws | 1.7.45 | [77] | 
 | 
| bash-completion | ~/.bash_completion | $ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion | ||
| bazaar | 
 | 2.3.0 | [78] | Discussão no relatório de erro do upstream informa que o bazaar vai usar ~/.config/bazaarse existir. O arquivo de log~/.bzr.logainda pode ser escrito. | 
| Ruby#Bundler | ~/.bundle | [79] [80] | $ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle | |
| calcurse | ~/.calcurse | [81] | $ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse | |
| Rust#Cargo | ~/.cargo | [82] [83] [84] [85] | $ export CARGO_HOME="$XDG_DATA_HOME"/cargo | |
| ccache | ~/.ccache | $ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config
 | ||
| chez-schemeAUR | ~/.chezscheme_history | $ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history | ||
| conky | ~/.conkyrc | 00481ee | [86] | $ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc | 
| coreutils | ~/.dircolors | $ source $(dircolors "$XDG_CONFIG_HOME"/dircolors) | ||
| crawl | ~/.crawl | A barra ao final é necessária: 
 | ||
| clusterssh | ~/.clusterssh/ | $ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'"$XDG_CONFIG_HOME/clusterssh/config extra_cluster_file=$HOME/.config/clusterssh/clusters extra_tag_file=$HOMe/.config/clusterssh/tags Apesar disso, clusterssh ainda vai criar  | ||
| CUDA | ~/.nv | $ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv | ||
| dict | ~/.dictrc | $ dict -c "$XDG_CONFIG_HOME"/dict/dictrc | ||
| Docker | ~/.docker | $ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker | ||
| docker-machine | ~/.docker/machine | $ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine | ||
| DOSBox | ~/.dosbox/dosbox-0.74-2.conf | [87] | $ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf | |
| ELinks | ~/.elinks | $ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks | ||
| emscripten | 
 | [88] | 
 | |
| freecad | ~/.FreeCAD | [89] | $ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfgApesar dessas opções, freecad ainda vai criar o arquivo  | |
| GDB | ~/.gdbinit | $ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init | ||
| get_iplayerAUR | ~/.get_iplayer | $ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer | ||
| getmail | ~/.getmail/getmailrc | $ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail" | ||
| glivAUR | ~/.glivrc | $ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc | ||
| GnuPG | ~/.gnupg | [90] [91] | 
 | |
| Google Earth | ~/.googleearth | Alguns caminhos podem ser alterados com as opções KMLPatheCachePathem~/.config/Google/GoogleEarthPlus.conf | ||
| gopass | ~/.password-store | Se sobrepõe às configurações em ~/.config/gopass/config.yml:~/.config/gopass/config.yml root: path: gpgcli-gitcli-fs+file:///home/<id-usuário>/.config/password-store | ||
| GQ LDAP client | 
 | 1.51 | 
 | |
| Gradle | ~/.gradle | [92] | $ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle | |
| GTK 1 | ~/.gtkrc | $ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc | ||
| GTK 2 | ~/.gtkrc-2.0 | $ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc | ||
| hledger | ~/.hledger.journal | [93] | $ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal | |
| httpie | ~/.httpie | [94] | $ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie | |
| intellij-idea-ceAUR[link quebrado: package not found] | ~/.IntelliJIdea* | [95] | $ mkdir -p "${XDG_CONFIG_HOME}"/intellij-idea
$ cp /opt/intellij-idea-ce/bin/{idea.properties,idea64.vmoptions} "${XDG_CONFIG_HOME}"/intellij-idea/
$ export IDEA_PROPERTIES="${XDG_CONFIG_HOME}"/intellij-idea/idea.properties
$ export IDEA_VM_OPTIONS="${XDG_CONFIG_HOME}"/intellij-idea/idea.vmoptions$XDG_CONFIG_HOME/idea.properties # esses são codificados, mas você pode obter a ideia
idea.config.path=${user.home}/.config/intellij-idea
idea.system.path=${user.home}/.cache/intellij-idea
idea.log.path=${user.home}/.cache/intellij-idea/log
idea.plugins.path=${user.home}/.local/share/intellij-idea/plugins
 | |
| ipython/jupyter | ~/.ipython | não vai corrigir | 
 | |
| irb[link inativo 2023-05-06 ⓘ] | ~/.irbrc | ~/.profile $ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc "$XDG_CONFIG_HOME"/irb/irbrc IRB.conf[:SAVE_HISTORY] ||= 1000 IRB.conf[:HISTORY_FILE] ||= File.join(ENV["XDG_DATA_HOME"], "irb", "history") | ||
| irssi | ~/.irssi | [96] | $ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi | |
| isync | ~/.mbsyncrc | $ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc | ||
| Java (Português)#OpenJDK | ~/.java/.userPrefs | [97] | $ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java | |
| ledger | ~/.ledgerrc,~/.pricedb | [98] | $ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc | |
| less | ~/.lesshst | 
 
 | ||
| libdvdcss | ~/.dvdcss | [99] | $ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss | |
| libice | ~/.ICEauthority | [100] | $ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthorityCertifique-se que  Não use  | |
| libx11 | 
 | 
 | ||
| ltrace | ~/.ltrace.conf | $ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf | ||
| Luanti | ~/.minetest/ | [101] | export MINETEST_USER_PATH="$XDG_DATA_HOME"/luanti | |
| maven | ~/.m2 | [102] | $ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xmlsettings.xml <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository>
  ...
</settings> | |
| Mathematica | ~/.Mathematica | $ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica | ||
| mednafen | ~/.mednafen | $ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen | ||
| MOC | ~/.moc | 
 | ||
| monero | ~/.bitmonero | $ monerod --data-dir "$XDG_DATA_HOME"/bitmonero | ||
| most | ~/.mostrc | $ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc | ||
| MPlayer | ~/.mplayer | $ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer | ||
| MySQL | ~/.mysql_history | $ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history | ||
| ncurses | ~/.terminfo | Preclui a pesquisa de caminho do sistema: 
 | ||
| ncmpc | ~/.ncmpc | ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config | ||
| Netbeans | ~/.netbeans | [103] | $ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans | |
| Node.js | ~/.node_repl_history | $ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history[104] | ||
| notmuch | ~/.notmuch-config | [105] | 
 | |
| npm | 
 | [106] | $ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrcnpmrc prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
tmp=${XDG_RUNTIME_DIR}/npm
init-module=$XDG_CONFIG_HOME/npm/config/npm-init.js
 | |
| nuget | ~/.nuget/packages | [107] | $ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages | |
| NVIDIA | ~/.nv | Usa XDG_CACHE_HOMEse definido, do contrário retrocede inadequadamente para~/.nvem vez de~/.cache. | ||
| nvidia-settings | ~/.nvidia-settings-rc | $ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings | ||
| nvm | ~/.nvm | $ export NVM_DIR="$XDG_DATA_HOME"/nvm | ||
| Octave | 
 | 
 $XDG_CONFIG_HOME/octave/octaverc source /usr/share/octave/site/m/startup/octaverc; pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages; pkg local_list /home/<your username>/.local/share/octave/octave_packages; Deve-se fornecer à opção  | ||
| openscad | ~/.OpenSCAD | 7c3077b0f | [108] | Não honra totalmente a XDG Base Directory Specification, veja [109] Atualmente, ele codifica[link inativo 2022-09-23 ⓘ]  | 
| OpenSSL | ~/.rnd | O local do arquivo semeador .rndpode ser definido com a varável de ambienteRANDFILEconforme FAQ. | ||
| parallel | ~/.parallel | 20170422 | $ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel | |
| Pass | ~/.password-store | $ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass | ||
| Pidgin | ~/.purple | [110] | $ pidgin --config="$XDG_DATA_HOME"/purple | |
| PostgreSQL | 
 | 9.2 | [111] [112] | 
 É necessário criar ambos diretórios:  | 
| PulseAudio | ~/.esd_auth | Provavelmente gerado pelo módulo module-esound-protocol-unix.so. Ele pode ser configurado para usar um local diferente, mas faz muito mais sentido apenas comentar este módulo em/etc/pulse/default.paou"$XDG_CONFIG_HOME"/pulse/default.pa. | ||
| python-azure-cliAUR[link quebrado: package not found] | ~/.azure | $ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure | ||
| python-setuptools | ~/.python-eggs | $ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs | ||
| python-pylint | ~/.pylint.d | não vai corrigir | $ export PYLINTHOME="$XDG_CACHE_HOME"/pylint | |
| racket | ~/.racketrc
 | [113] | $ export PLTUSERHOME="$XDG_DATA_HOME"/racket | |
| readline | ~/.inputrc | $ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc | ||
| rlwrap | ~/.*_history | [114] | $ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap | |
| Ruby#RubyGems | ~/.gem | 
 Certifique-se de remover  | ||
| Rust#Rustup | ~/.rustup | [115] | $ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup | |
| sbt | ~/.sbt
 | [116] | $ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt(cuidado com [117]) | |
| GNU Screen | ~/.screenrc | $ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc | ||
| Haskell#Stack | ~/.stack | [118] | $ export STACK_ROOT="$XDG_DATA_HOME"/stack | |
| subversion | ~/.subversion | [119] [120][121] | $ svn --config-dir "$XDG_CONFIG_HOME"/subversion | |
| task | 
 | 
 | ||
| tiptopAUR | ~/.tiptoprc | Ele ainda vai espera haver o arquivo .tiptoprc.
 | ||
| tmux | ~/.tmux.conf | [122] | $ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf
 | |
| uncrustify | ~/.uncrustify.cfg | $ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg | ||
| Unison | ~/.unison | $ export UNISON="$XDG_DATA_HOME"/unison | ||
| urxvtd | ~/.urxvt/urxvtd-hostname | $ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd | ||
| Vagrant | 
 | [123] | 
 | |
| WeeChat | ~/.weechat | [124] [125] | 
 | |
| wget | 
 | 
 | ||
| wine | ~/.wine | [126] | Winetricks usa local tipo XDG abaixo para gerenciamento de WINEPREFIX: 
 | |
| xbindkeys | ~/.xbindkeysrc | $ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config | ||
| xorg-xauth | ~/.Xauthority | $ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority | ||
| xinit | 
 | [127] | 
 Note que essas variáveis são respeitadas pelo xinit, mas não pelo startx. Em vez disso, especifique o nome de arquivo como um argumento: 
 | |
| xorg-xrdb | 
 | Em última análise, você deve estar usando Xresourcese já que esses recursos são carregados por meio dexrdb, você pode especificar um caminho como$ xrdb -load ~/.config/X11/xresources. | ||
| z | 
 | [128] | $ export _Z_DATA="$XDG_DATA_HOME/z" | 
Codificado
| Aplicativo | Caminho legal | Discussão | Observações | 
|---|---|---|---|
| adb | ~/.android/ | [129] | $ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android | 
| AMule | ~/.aMule | ||
| Android Studio | 
 | ||
| anthy | ~/.anthy | [130] | |
| Apache Directory Studio | ~/.ApacheDirectoryStudio | ||
| ARandR | ~/.screenlayout | ||
| Arduino | 
 | não vai corrigir | |
| Audacity | ~/.audacity-data/ | ||
| Avidemux | ~/.avidemux6 | ||
| Bash | 
 | não vai corrigir | $ export HISTFILE="$XDG_DATA_HOME"/bash/historyUm  Especifique  | 
| cabal | ~/.cabal/ | [131] | Veja a discussão para soluções alternativas em potencial. Não é muito fácil ou direta, mas pode ser possível emular a conformidade com Base Directory. | 
| chatty | ~/.chatty/ | [132] | |
| cmake | ~/.cmake/ | Usado para registro de pacote de usuário ~/.cmake/packages/<pacote>, detalhado em cmake-packages(7) § User Package Registry e na página wiki de Package registry. Parece que é codificado, por exemplo em cmFindPackageCommand.cxx. | |
| Cinnamon | ~/.cinnamon/ | [133] | |
| cryptomatorAUR | ~/.Cryptomator | [134] | |
| CUPS | ~/.cups/ | não vai corrigir | |
| darcs | ~/.darcs/ | [135][link inativo 2025-04-06 ⓘ] | |
| dbus | ~/.dbus/ | [136] | Isso deve ser evitável com kdbus [citação necessária]. | 
| devede | ~/.devedeng | Codificado aqui | |
| Dia | ~/.dia/ | ||
| dotnet-sdk | ~/.dotnet/ | [137] | |
| Eclipse | ~/.eclipse/ | [138] | A opção -Dosgi.configuration.area=@user.home/.config/..sobrescreve, mas deve ser adicionado para"$ECLIPSE_HOME"/eclipse.ini"em vez de linha de comando que significa que você tem que ter acesso de escrita para$ECLIPSE_HOME. (Arch Linux codifica$ECLIPSE_HOMEem/usr/bin/eclipse) | 
| Emacs | 
 | [139] | É possível definir HOME, mas tem efeitos colaterais inesperados. Até agora, a abordagem mais promissora é modificar outra variável de ambiente do Emacs para alterar o caminho de carregamento e criar o seu próprio arquivo de site, que pode carregar manualmente o arquivo init, mas altera significativamente o processo de carregamento. | 
| Fetchmail | ~/.fetchmailrc | ||
| Firefox | ~/.mozilla/ | [140] | |
| Flatpak | ~/.var/ | [141] [142] não vai corrigir | |
| GHC | ~/.ghc | [143][link inativo 2025-04-06 ⓘ] | |
| ghidra | [144] | ||
| GoldenDict | ~/.goldendict/ | [145] | |
| gramps | ~/.gramps/ | [146] | |
| grsync | ~/.grsync/ | [147] | |
| gtk-recordMyDesktop | ~/.gtk-recordmydesktop | ||
| hplip | ~/.hplip/ | [148] | |
| idris | ~/.idris | [149] | |
| iwd / iwctl | ~/.iwctl_history | ||
| Java OpenJDK | ~/.java/fonts | [150] | |
| Java OpenJFX | ~/.java/webview | ||
| julia | 
 | [151] [152] | |
| lldb | 
 | ||
| mathomatic[link inativo 2024-10-12 ⓘ] | 
 | O histórico pode ser movido usando rlwrap mathomatic -rcom o ambienteRLWRAP_HOMEdefinido apropriadamente. | |
| Minecraft | ~/.minecraft/ | [153] | |
| mongodb | 
 | [154] | Esse tópico do Stack Overflow sugere uma solução alternativa parcial usando a opção de linha de comando --norc. | 
| Nestopia UE | ~/.nestopia/ | não vai corrigir | |
| ~/.netrc | Assim como ~/.ssh, muitos programas esperam que esse arquivo esteja aqui. Estes incluem projetos como curl (CURLOPT_NETRC_FILE), ftp (NETRC), s-nail (NETRC), etc. Enquanto alguns deles oferecem locais alternativos configuráveis, muitos não o fazem, como w3m, wget e lftp. | ||
| Networkmanager-openvpn | ~/.cert/nm-openvpn | [155] | |
| NSS | ~/.pki | [156] | |
| OpenSSH | ~/.ssh | não vai corrigir | Presume-se estar presente por muitos daemons e clientes de ssh, tal como DropBear e OpenSSH. | 
| palemoon | ~/.moonchild productions | [157] | |
| parsec-binAUR | ~/.parsec | ||
| pcsxrAUR | ~/.pcsxr | Uma opção -cfgexiste, mas só pode ser definido relativo a~/.pcsxr. | |
| perf | ~/.debug | Codificado em tools/perf/util/config.c:29. | |
| vários shells e gerenciadores de exibição | ~/.profile | ||
| python | ~/.python_history | Todo o histórico de sessões interativas salvas em ~/.python_historypor padrão desde a versão 3.4, um caminho personalizado ainda pode ser definido  na mesma forma como em versões antigas (veja este exemplo). | |
| Qt Designer | ~/.designer | ||
| RedNotebook | ~/.rednotebook | ||
| Remarkable | ~/.remarkable | ||
| Ren'Py | ~/.renpy | [158] | |
| SANE | ~/.sane/ | scanimagecria um arquivo.callá | |
| scribus | ~/.scribus | ||
| sdcv | ~/.stardict/ | [159] | A única solução alternativa é modificar HOME | 
| SeaMonkey | ~/.mozilla/ | [160] | |
| simplescreenrecorderAUR | ~/.ssr/ | [161] | O autor parece não concordar com esse recurso. | 
| Solfege | 
 | [162] | |
| spacemacs | 
 | [163] | |
| SpamAssassin | ~/.spamassassin | ||
| spectrwm | ~/.spectrwm | ||
| SQLite | 
 | [164] | $ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
 | 
| Steam | 
 | [165] | Muitos motores de jogo (Unity 3D, Unreal) seguem a especificação, mas publicadores de jogo individual codificam os caminhos em Steam Auto-Cloud fazendo os salvamento de jogos sincronizar para diretório errado. | 
| TeamSpeak | ~/.ts3client | ||
| texinfo | ~/.infokey | $ info --init-file "$XDG_CONFIG_HOME/infokey" | |
| TeXmacs | ~/.TeXmacs | ||
| Thunderbird | ~/.thunderbird/ | [166] | |
| tllocalmgr | ~/.texlive | ||
| vim | 
 | [167] | A partir de 7.3.1178, vem com suporte a ~/.vim/vimrcse~/.vimrcnão for encontrado.
 "$XDG_CONFIG_HOME"/vim/vimrc set undodir=$XDG_DATA_HOME/vim/undo set directory=$XDG_DATA_HOME/vim/swap set backupdir=$XDG_DATA_HOME/vim/backup set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after ~/.profile export VIMINIT=":source $XDG_CONFIG_HOME"/vim/vimrc | 
| vimperator | ~/.vimperatorrc | [168] | $ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"
 | 
| w3m | ~/.w3m | [169] | |
| wpa_cli | ~/.wpa_cli_history | ||
| xdg-utils | ~/.gnome | [170] | Por algum motivo o script xdg-desktop-menucodificagnome_user_dir="$HOME/.gnome/apps". Isso é usado por chromium entre outros. | 
| xombrero | ~/.xombrero | [171][link inativo 2020-08-06 ⓘ] | |
| xournalpp | ~/.xournalpp | [172] | |
| YARD | ~/.yard | [173] | Aceitaria uma Pull Request se alguém quisesse implementá-la. | 
| zenmap nmap | ~/.zenmap | [174] [175] | |
| zsh | 
 | [176] | Considere exportar ZDOTDIR=$HOME/.config/zshem~/.zshenv(isso é codificado por causa de problema de inicialização). Você também poderia adicionar isso a/etc/zsh/zshenve evita a necessidade de quaisquer dotfiles em seuHOME. Porém, fazer isso requer privilégios de root que não ser viável e é para todo sistema.
 
 | 
Bibliotecas
- JVM
- Java, Kotlin, Clojure, Scala, ...
- directories-jvm
- Go
- go-appdir
- Haskell
- Oficialmente no diretório desde 1.2.3.0 ab9d0810ce.
- xdg-basedir
- Perl
- File-BaseDir
- perl-file-xdg[link inativo 2020-08-06 ⓘ]
- Ruby
- rubyworks/xdg
- Rust
- directories-rs
- rust-xdg
- Python
- pyxdg
- Vala
- Suporte embarcado via GLib.Environment.
- Veja get_user_cache_dir,get_user_data_dir,get_user_config_dir, etc.
Veja também
- GNOME Goal: XDG Base Directory Specification Usage
- Rob Pike: "Dotfiles" sendo oculto é um erro UNIXv2.
- systemd-path(1)
- file-hierarchy(7)
- Notas do Grawity sobre dotfiles.
- Notas do Grawity sobre variáveis de ambiente.
- ploum.net: Modify Your Application to use XDG Folders.
- A tentativa PCGamingWiki para documentar se jogos de PC no Linux seguem ou não a XDG Base Directory Specification.