# XDG Base Directory (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de XDG Base Directory. Data da última tradução: 2019-11-24. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- dotfiles
- Diretórios de usuário XDG

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. É 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`.

- `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`.

- `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`.

- `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 a `PATH`).
  - O padrão deve ser `/usr/local/share:/usr/share`.

- `XDG_CONFIG_DIRS`
  - Lista os diretórios separados por `:` (análogo a `PATH`).
  - O padrão deve ser `/etc/xdg`.

## 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 |  |  |  |
antimicroAUR[link quebrado: package not found] | `~/.antimicro` | edba864 | [1] |
aria2 | `~/.aria2` | 8bc1d37 | [2] |
asunder | `~/.asunder ~/.asunder_album_artist ~/.asunder_album_genre ~/.asunder_album_title` | 2.9.0[link inativo 2020-08-06 ⓘ] | [3][link inativo 2020-08-06 ⓘ] | Usa `XDG_CONFIG_HOME/asunder/asunder` para `~/.asunder` e `XDG_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/binwalk` Há suporte apenas no branch master do Git, não havendo lançamentos estáveis atualizados.
Blender | `~/.blender` | 4293f47 | [5] |
calibre |  |  |  |
Chromium | `~/.chromium` | 23057 | [6] [7] |
citra-gitAUR | `~/.citra-emu` | f7c3193 | [8] |
Composer | `~/.composer` | 1.0.0-beta1 | [9] |
d-feet | `~/.d-feet` | 7f6104b |  |
dconf |  |  |  |
Dolphin emulator | `~/.dolphin-emu` | a498c68 | [10] |
dr14_tmeterAUR |  | 7e777ca | [11] | `XDG_CONFIG_HOME/dr14tmeter/`
dunst |  | 78b6e2b | [12] |
dwb |  |  |  |
elixir | `~/.mix` | afaf889 | [13] |
fish |  |  |  |
fontconfig | `~/.fontconfig ~/.fonts` | 8c255fb |  | Usa `"$XDG_DATA_HOME"/fonts` para armazenar fones.
fontforge | `~/.FontForge ~/.PfaEdit` | e4c2cc7 | [14] [15] |
freerdp | `~/.freerdp` | edf6e72 |  |
Gajim | `~/.gajim` | 3e777ea | [16] |
gconfAUR | `~/.gconf` | fc28caa | [17] |
GIMP | `~/.gimp-x.y ~/.thumbnails` | 60e0cfe 483505f | [18] [19] |
Git | `~/.gitconfig` | 0d94427 |  |
GStreamer | `~/.gstreamer-0.10` | 4e36f93 | [20] |
GTK 3 |  |  |  |
htop | `~/.htoprc` | 93233a6 |  |
i3 | `~/.i3` | 7c130fb |  |
i3status | `~/.i3status.conf` | c3f7fc4 |  |
imagemagick |  |  |  |
Inkscape | `~/.inkscape` | 0.47 | [21] |
Kakoune |  |  |  |
latexmk (em texlive-core) | `~/.latexmkrc` |  |  |
lftp | `~/.lftp` | 21dc400 | [22] |
lgogdownloaderAUR | `~/.gogdownloader` | d430af6 | [23] |
LibreOffice |  | a6f56f7 25bd2ee | [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` | 1b99570 0b71156 ce401d7 | [26] |
Mercurial | `~/.hgrc` | 3540200 4.2 |  | `XDG_CONFIG_HOME/hg/hgrc`.
msmtp | `~/.msmtprc` | af2f409 v1.6.7+ |  | `$XDG_CONFIG_HOME"/msmtp/config`.
mesa |  | 87ab26b |  | `XDG_CACHE_HOME/mesa`
milkytracker | `~/.milkytracker_config` | eb487c5 | [27] |
mpd | `~/.mpdconf` | 87b7328 |  |
mpv | `~/.mpv` | cb250d4 | [28] |
mutt | `~/.mutt` | b17cd67 | [29] |
mypaint | `~/.mypaint` | cf723b7 |  |
nano | `~/.nano/ ~/.nanorc` | c16e79b | [30] |
ncmpcpp | `~/.ncmpcpp` | 38d9f81 27cd86e | [31] [32] | `ncmpcpp_directory` deve ser definido para evitar um arquivo `error.log` em `~/.ncmpcpp`.
Neovim | `~/.nvim ~/.nvimlog ~/.nviminfo` | 1ca5646 | [33] [34] |
newsbeuter | `~/.newsbeuter` | 3c57824 | [35] | É necessário criar ambos diretórios [36]: `$ mkdir -p "$XDG_DATA_HOME"/newsbeuter "$XDG_CONFIG_HOME"/newsbeuter`
node-gyp | `~/.node-gyp` | 2b5ce52a | [37] | Disponível apenas no master até 2018-12-04.
np2kai-gitAUR | `~/.config/np2kai ~/.config/xnp2kai` | 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 | `~/.pandoc/` | 0bed0ab | [43] |
pcsx2 | `~/.pcsx2` | 87f1e8f a9020c6 3b22f0f 0a012ae | [44] [45] |
Pry | `~/.pryrc ~/.pry_history` | a0be0cc7 15e1fc92 e9d1be0e | [46] |
python-pip | `~/.pip` | 6.0 | [47] |
powershellAUR |  | 6.0 |  |
ppsspp | `~/.ppsspp` | 132fe47 | [48] |
procps-ng | `~/.toprc` | af53e17 | [49] [50] |
orbment-gitAUR |  |  |  |
pacman | `~/.makepkg.conf` | 80eca94 | [51] |
panda3dAUR | `~/.panda3d` | 2b537d2 |  |
PulseAudio | `~/.pulse ~/.pulse-cookie` | 59a8618 87ae830 9ab510a 4c195bc | [52] |
pyroomAUR |  |  |  |
quodlibet | `~/.quodlibet` | 3.10.0 | [53] |
qutebrowser |  |  |  |
qtile |  | fd8686e 66d704b 51cff01 | [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] |
skypeforlinux-stable-binAUR | `~/.Skype` | 8.0 |  |
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/Cache` em vez do esperado `$XDG_CACHE_HOME/sublime-text-3`.
surfraw | `~/.surfraw.conf ~/.surfraw.bookmarks` | 3e4591d bd8c427 f57fc71 |  |
sway | `~/.sway/config` | 614393c | [60] |
systemd |  |  |  |
termite |  |  |  |
tig | `~/.tigrc`, `~/.tig_history` | 2.2 | [61] | O diretório `~/.local/share/tig` deve 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` | 68a25c7 d138908 | [65] |
VLC | `~/.vlcrc` | 16f32e1 | [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 |  |
xsettingsd-gitAUR | `~/.xsettingsd` | b4999f5 |  |
xmonad | `~/.xmonad` | 40fc10b | [69] [70] | Alternativamente, as variáveis de ambiente `XMONAD_CONFIG_HOME`, `XMONAD_DATA_HOME` e `XMONAD_CACHE_HOME` também são configuráveis.
xsel | `~/.xsel.log` | ee7b481 | [71] |
yarn | `~/.yarnrc ~/.yarn/ ~/.yarncache/ ~/.yarn-config/` | 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`
ack | `~/.ackrc` |  | [73] | `$ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc"`
Anki | `~/Anki ~/Documents/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"`
Atom | `~/.atom` |  | [76] | `$ export ATOM_HOME="$XDG_DATA_HOME"/atom`
aws-cli | `~/.aws` | 1.7.45 | [77] | `$ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials $ export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config`
bash-completion | `~/.bash_completion` |  |  | `$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion`
bazaar | `~/.bazaar ~/.bzr.log` | 2.3.0 | [78] | Discussão no relatório de erro do upstream informa que o bazaar vai usar `~/.config/bazaar` se existir. O arquivo de log `~/.bzr.log` ainda pode ser escrito.
buchhaltung-gitAUR | `~/.buchhaltung` |  | [79] | `$ export BUCHHALTUNG="$XDG_CONFIG_HOME"/buchhaltung`
Ruby#Bundler | `~/.bundle` |  | [80] [81] | `$ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle`
calcurse | `~/.calcurse` |  | [82] | `$ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse`
Rust#Cargo | `~/.cargo` |  | [83] [84] [85] [86] | `$ export CARGO_HOME="$XDG_DATA_HOME"/cargo`
ccache | `~/.ccache` |  |  | `$ export CCACHE_CONFIGPATH="$XDG_CONFIG_HOME"/ccache.config` `$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache`
chez-schemeAUR | `~/.chezscheme_history` |  |  | `$ petite --eehistory "$XDG_DATA_HOME"/chezscheme/history`
conky | `~/.conkyrc` | 00481ee | [87] | `$ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc`
coreutils | `~/.dircolors` |  |  | `$ source $(dircolors "$XDG_CONFIG_HOME"/dircolors)`
crawl | `~/.crawl` |  |  | A barra ao final é necessária: `$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/`
clusterssh | `~/.clusterssh/` |  |  | `$ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'"`
    $XDG_CONFIG_HOME/clusterssh/config
    extra_cluster_file=$HOME/.config/clusterssh/clusters
    extra_tag_file=$HOMe/.config/clusterssh/tags
Apesar disso, clusterssh ainda vai criar `~/.clusterssh/`.
CUDA | `~/.nv` |  |  | `$ export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv`
dict | `~/.dictrc` |  |  | `$ dict -c "$XDG_CONFIG_HOME"/dict/dictrc`
Docker | `~/.docker` |  |  | `$ export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker`
docker-machine | `~/.docker/machine` |  |  | `$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine`
DOSBox | `~/.dosbox/dosbox-0.74-2.conf` |  | [88] | `$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf`
ELinks | `~/.elinks` |  |  | `$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks`
emscripten | `~/.emscripten ~/.emscripten_sanity ~/.emscripten_ports ~/.emscripten_cache__last_clear` |  | [89] | `$ export EM_CONFIG="$XDG_CONFIG_HOME"/emscripten/config $ export EM_CACHE="$XDG_CACHE_HOME"/emscripten/cache $ export EM_PORTS="$XDG_DATA_HOME"/emscripten/cache $ emcc --em-config "$XDG_CONFIG_HOME"/emscripten/config --em-cache "$XDG_CACHE_HOME"/emscripten/cache`
freecad | `~/.FreeCAD` |  | [90] | `$ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg` Apesar dessas opções, freecad ainda vai criar o arquivo `.FreeCAD/cookie`, pois o módulo web o tem codificado
GDB | `~/.gdbinit` |  |  | `$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init`
get_iplayerAUR | `~/.get_iplayer` |  |  | `$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer`
getmail | `~/.getmail/getmailrc` |  |  | `$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"`
glivAUR | `~/.glivrc` |  |  | `$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc`
GnuPG | `~/.gnupg` |  | [91] [92] | `$ export GNUPGHOME="$XDG_DATA_HOME"/gnupg $ gpg2 --homedir "$XDG_DATA_HOME"/gnupg`
Google Earth | `~/.googleearth` |  |  | Alguns caminhos podem ser alterados com as opções `KMLPath` e `CachePath` em `~/.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 | `~/.gq ~/.gq-state` | 1.51 |  | `$ export GQRC="$XDG_CONFIG_HOME"/gqrc $ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state $ mkdir -p "$(dirname "$GQSTATE")"`
Gradle | `~/.gradle` |  | [93] | `$ export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle`
GTK 1 | `~/.gtkrc` |  |  | `$ export GTK_RC_FILES="$XDG_CONFIG_HOME"/gtk-1.0/gtkrc`
GTK 2 | `~/.gtkrc-2.0` |  |  | `$ export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc`
hledger | `~/.hledger.journal` |  | [94] | `$ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal`
httpie | `~/.httpie` |  | [95] | `$ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie`
intellij-idea-ceAUR | `~/.IntelliJIdea*` |  | [96] |
    $ mkdir -p "${XDG_CONFIG_HOME}"/intellij-idea
    $ cp /opt/intellij-idea-ce/bin/{idea.properties,idea64.vmoptions} "${XDG_CONFIG_HOME}"/intellij-idea/
    $ export IDEA_PROPERTIES="${XDG_CONFIG_HOME}"/intellij-idea/idea.properties
    $ export IDEA_VM_OPTIONS="${XDG_CONFIG_HOME}"/intellij-idea/idea.vmoptions
    $XDG_CONFIG_HOME/idea.properties
    # 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 | `$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter $ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter`
irb | `~/.irbrc` |  |  |
    ~/.profile
    $ export IRBRC="$XDG_CONFIG_HOME"/irb/irbrc
    "$XDG_CONFIG_HOME"/irb/irbrc
    IRB.conf[:SAVE_HISTORY] ||= 1000
    IRB.conf[:HISTORY_FILE] ||= File.join(ENV["XDG_DATA_HOME"], "irb", "history")
irssi | `~/.irssi` |  | [97] | `$ irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi`
isync | `~/.mbsyncrc` |  |  | `$ mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc`
Java (Português)#OpenJDK | `~/.java/.userPrefs` |  | [98] | `$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java`
ledger | `~/.ledgerrc`, `~/.pricedb` |  | [99] | `$ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc`
less | `~/.lesshst` |  |  | `$ mkdir -p "$XDG_CACHE_HOME"/less $ export LESSKEY="$XDG_CONFIG_HOME"/less/lesskey $ export LESSHISTFILE="$XDG_CACHE_HOME"/less/history` `$ export LESSHISTFILE=-` pode ser usado para desabilitar esse recurso.
libdvdcss | `~/.dvdcss` |  | [100] | `$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss`
libice | `~/.ICEauthority` |  | [101] | `$ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority` Certifique-se que `XDG_CACHE_HOME` esteja definido antes para o usuário do diretório que está usando Xorg tenha acesso de escrita ao mesmo. Não use `XDG_RUNTIME_DIR`, pois ele está disponível após o início da sessão, do contrário os gerenciadores de exibição que iniciam Xorg (como o GDM) vão falhar repetidamente.
libx11 | `~/.XCompose ~/.compose-cache` |  |  | `$ export XCOMPOSEFILE="$XDG_CONFIG_HOME"/X11/xcompose $ export XCOMPOSECACHE="$XDG_CACHE_HOME"/X11/xcompose`
ltrace | `~/.ltrace.conf` |  |  | `$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf`
maven | `~/.m2` |  | [102] | `$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml`
    settings.xml
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
      ...
      <localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository>
      ...
    </settings>
Mathematica | `~/.Mathematica` |  |  | `$ export MATHEMATICA_USERBASE="$XDG_CONFIG_HOME"/mathematica`
mednafen | `~/.mednafen` |  |  | `$ export MEDNAFEN_HOME="$XDG_CONFIG_HOME"/mednafen`
MOC | `~/.moc` |  |  | `$ mocp -M "$XDG_CONFIG_HOME"/moc $ mocp -O MOCDir="$XDG_CONFIG_HOME"/moc`
monero | `~/.bitmonero` |  |  | `$ monerod --data-dir "$XDG_DATA_HOME"/bitmonero`
most | `~/.mostrc` |  |  | `$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc`
MPlayer | `~/.mplayer` |  |  | `$ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer`
MySQL | `~/.mysql_history` |  |  | `$ export MYSQL_HISTFILE="$XDG_DATA_HOME"/mysql_history`
ncurses | `~/.terminfo` |  |  | Preclui a pesquisa de caminho do sistema: `$ export TERMINFO="$XDG_DATA_HOME"/terminfo $ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo`
ncmpc | `~/.ncmpc` |  |  | `ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config`
Netbeans | `~/.netbeans` |  | [103] | `$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans`
Node.js | `~/.node_repl_history` |  |  | `$ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history` [104]
notmuch | `~/.notmuch-config` |  | [105] | `$ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc $ export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug`
npm | `~/.npm ~/.npmrc` |  | [106] | `$ export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc`
    npmrc
    prefix=${XDG_DATA_HOME}/npm
    cache=${XDG_CACHE_HOME}/npm
    tmp=${XDG_RUNTIME_DIR}/npm
    init-module=$XDG_CONFIG_HOME/npm/config/npm-init.js
`prefix` é desnecessário (e não há suporte) se o Node.js for instalado por nvmAUR.
nuget | `~/.nuget/packages` |  | [107] | `$ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages`
NVIDIA | `~/.nv` |  |  | Usa `XDG_CACHE_HOME` se definido, do contrário retrocede inadequadamente para `~/.nv` em vez de `~/.cache`.
nvidia-settings | `~/.nvidia-settings-rc` |  |  | `$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings`
nvmAUR | `~/.nvm` |  |  | `$ export NVM_DIR="$XDG_DATA_HOME"/nvm`
Octave | `~/octave ~/.octave_packages ~/.octave_hist` |  |  | `$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts" $ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"`
    $XDG_CONFIG_HOME/octave/octaverc
    source /usr/share/octave/site/m/startup/octaverc;
    pkg prefix ~/.local/share/octave/packages ~/.local/share/octave/packages;
    pkg local_list /home/<your username>/.local/share/octave/octave_packages;
Deve-se fornecer à opção `local_list` um caminho absoluto.
openscad | `~/.OpenSCAD` | 7c3077b0f | [108] | Não honra totalmente a XDG Base Directory Specification, veja [109] Atualmente, ele codifica `~/.local/share`.
OpenSSL | `~/.rnd` |  |  | O local do arquivo semeador `.rnd` pode ser definido com a varável de ambiente `RANDFILE` conforme FAQ.
parallel | `~/.parallel` | 20170422 |  | `$ export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel`
Pass | `~/.password-store` |  |  | `$ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass`
Pidgin | `~/.purple` |  | [110] | `$ pidgin --config="$XDG_DATA_HOME"/purple`
PostgreSQL | `~/.psqlrc ~/.psql_history ~/.pgpass ~/.pg_service.conf` | 9.2 | [111] [112] | `$ export PSQLRC="$XDG_CONFIG_HOME/pg/psqlrc" $ export PSQL_HISTORY="$XDG_CACHE_HOME/pg/psql_history" $ export PGPASSFILE="$XDG_CONFIG_HOME/pg/pgpass" $ export PGSERVICEFILE="$XDG_CONFIG_HOME/pg/pg_service.conf"` É necessário criar ambos diretórios: `$ mkdir "$XDG_CONFIG_HOME/pg" && mkdir "$XDG_CACHE_HOME/pg"`
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.pa` ou `"$XDG_CONFIG_HOME"/pulse/default.pa`.
python-azure-cliAUR | `~/.azure` |  |  | `$ export AZURE_CONFIG_DIR=$XDG_DATA_HOME/azure`
python-setuptools | `~/.python-eggs` |  |  | `$ export PYTHON_EGG_CACHE="$XDG_CACHE_HOME"/python-eggs`
python-pylint | `~/.pylint.d` |  | não vai corrigir | `$ export PYLINTHOME="$XDG_CACHE_HOME"/pylint`
racket | `~/.racketrc` `~/.racket` |  | [113] | `$ export PLTUSERHOME="$XDG_DATA_HOME"/racket`
readline | `~/.inputrc` |  |  | `$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc`
rlwrap | `~/.*_history` |  | [114] | `$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap`
Ruby#RubyGems | `~/.gem` |  |  | `$ export GEM_HOME="$XDG_DATA_HOME"/gem $ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem` Certifique-se de remover `gem: --user-install` de `/etc/gemrc`
Rust#Rustup | `~/.rustup` |  | [115] | `$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup`
sbt | `~/.sbt` `~/.ivy2` |  | [116] | `$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt` (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 | `~/.task ~/.taskrc` |  |  | `$ export TASKDATA="$XDG_DATA_HOME"/task $ export TASKRC="$XDG_CONFIG_HOME"/task/taskrc`
tiptopAUR | `~/.tiptoprc` |  |  | Ele ainda vai espera haver o arquivo `.tiptoprc`. `$ tiptop -W "$XDG_CONFIG_HOME"/tiptop`
tmux | `~/.tmux.conf` |  | [122] | `$ tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf` `$ export TMUX_TMPDIR="$XDG_RUNTIME_DIR"`
uncrustify | `~/.uncrustify.cfg` |  |  | `$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg`
Unison | `~/.unison` |  |  | `$ export UNISON="$XDG_DATA_HOME"/unison`
urxvtd | `~/.urxvt/urxvtd-hostname` |  |  | `$ export RXVT_SOCKET="$XDG_RUNTIME_DIR"/urxvtd`
Vagrant | `~/.vagrant.d ~/.vagrant.d/aliases` |  | [123] | `$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant $ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases`
WeeChat | `~/.weechat` |  | [124] [125] | `$ export WEECHAT_HOME="$XDG_CONFIG_HOME"/weechat $ weechat -d "$XDG_CONFIG_HOME"/weechat`
wget | `~/.wgetrc ~/.wget-hsts` |  |  | `$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"` e adicionar o seguinte como um alias para wget: `$ wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"` ou definir a variável `hsts-file` com um caminho absoluto, pois `wgetrc` não tem suporte a variáveis de ambiente: `$ echo hsts-file \= "$XDG_CACHE_HOME"/wget-hsts >> "$XDG_CONFIG_HOME/wgetrc"`
wine | `~/.wine` |  | [126] | Winetricks usa local tipo XDG abaixo para gerenciamento de WINEPREFIX: `$ mkdir -p "$XDG_DATA_HOME"/wineprefixes $ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default`
xbindkeys | `~/.xbindkeysrc` |  |  | `$ xbindkeys -f "$XDG_CONFIG_HOME"/xbindkeys/config`
xorg-xauth | `~/.Xauthority` |  |  | `$ export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority`
xinit | `~/.xinitrc ~/.xserverrc` |  | [127] | `$ export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc $ export XSERVERRC="$XDG_CONFIG_HOME"/X11/xserverrc` 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: `$ startx "$XDG_CONFIG_HOME/X11/xinitrc" -- "$XDG_CONFIG_HOME/X11/xserverrc" vt1`
xorg-xrdb | `~/.Xresources ~/.Xdefaults` |  |  | Em última análise, você deve estar usando `Xresources` e já que esses recursos são carregados por meio de `xrdb`, você pode especificar um caminho como `$ xrdb -load ~/.config/X11/xresources`.
z | `~/.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 | `~/.AndroidStudio2.3 ~/.android/ ~/.java/` |  |
anthy | `~/.anthy` | [130] |
Apache Directory Studio | `~/.ApacheDirectoryStudio` |  |
ARandR | `~/.screenlayout` |  |
Arduino | `~/.arduino15 ~/.jssc` | não vai corrigir |
Audacity | `~/.audacity-data/` |  |
Avidemux | `~/.avidemux6` |  |
Bash | `~/.bashrc ~/.bash_history ~/.bash_profile ~/.bash_login ~/.bash_logout` | não vai corrigir | `$ export HISTFILE="$XDG_DATA_HOME"/bash/history` Um `bashrc` especificado pode ser carregado a partir de `/etc/bash.bashrc`. Especifique `--init-file <arquivo>` como uma alternativa a `~/.bashrc` para shells interativos.
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.
chattyAUR | `~/.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] |
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_HOME` em `/usr/bin/eclipse`)
Emacs | `~/.emacs ~/.emacs.d/` | [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] |
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 | `~/.juliarc.jl ~/.julia_history` | [151] [152] |
Linux PAM | `~/.pam_environment` | [153] | Codificado em modules/pam_env/pam_env.c
lldb | `~/.lldb ~/.lldbinit` |  |
mathomatic | `~/.mathomaticrc ~/.matho_history` |  | O histórico pode ser movido usando `rlwrap mathomatic -r` com o ambiente `RLWRAP_HOME` definido apropriadamente.
Minecraft | `~/.minecraft/` | [154] |
Minetest | `~/.minetest/` | não vai corrigir [155] |
mongodb | `~/.mongorc.js ~/.dbshell` | [156] | 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` | [157] |
NSS | `~/.pki` | [158] |
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` | [159] |
parsec-binAUR | `~/.parsec` |  |
pcsxrAUR | `~/.pcsxr` |  | Uma opção `-cfg` existe, 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_history` por 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` | [160] |
SANE | `~/.sane/` |  | `scanimage` cria um arquivo `.cal` lá
scribus | `~/.scribus` |  |
sdcv | `~/.stardict/` | [161] | A única solução alternativa é modificar `HOME`
SeaMonkey | `~/.mozilla/` | [162] |
simplescreenrecorder | `~/.ssr/` | [163] | O autor parece não concordar com esse recurso.
Solfege | `~/.solfege ~/.solfegerc ~/lessonfiles` | [164] |
spacemacs[link inativo 2020-08-06 ⓘ] | `~/.spacemacs ~/.spacemacs.d` | [165] |
SpamAssassin | `~/.spamassassin` |  |
spectrwm | `~/.spectrwm` |  |
SQLite | `~/.sqlite_history ~/.sqliterc` | [166] | `$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history` `$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc`
Steam | `~/.steam ~/.steampath ~/.steampid` | [167] | 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/` | [168] |
tllocalmgr | `~/.texlive` |  |
vim | `~/.vim ~/.vimrc ~/.viminfo` | [169] | A partir de 7.3.1178, vem com suporte a `~/.vim/vimrc` se `~/.vimrc` não for encontrado. `$ mkdir -p "$XDG_DATA_HOME"/vim/{undo,swap,backup}`
    "$XDG_CONFIG_HOME"/vim/vimrc
    set undodir=$XDG_DATA_HOME/vim/undo
    set directory=$XDG_DATA_HOME/vim/swap
    set backupdir=$XDG_DATA_HOME/vim/backup
    set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo
    set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
    ~/.profile
    export VIMINIT=":source $XDG_CONFIG_HOME"/vim/vimrc
https://tlvince.com/vim-respect-xdg
vimperator | `~/.vimperatorrc` | [170] | `$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"` `$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator`
w3m | `~/.w3m` | [171] |
wpa_cli | `~/.wpa_cli_history` |  |
xdg-utils | `~/.gnome` | [172] | Por algum motivo o script `xdg-desktop-menu` codifica `gnome_user_dir="$HOME/.gnome/apps"`. Isso é usado por chromium entre outros.
xombrero | `~/.xombrero` | [173][link inativo 2020-08-06 ⓘ] |
xournalpp | `~/.xournalpp` | [174] |
YARD | `~/.yard` | [175] | Aceitaria uma Pull Request se alguém quisesse implementá-la.
zenmap nmap | `~/.zenmap` | [176] [177] |
zsh | `~/.zshrc ~/.zprofile ~/.zshenv ~/.zlogin ~/.zlogout ~/.histfile ~/.zcompdump` | [178] | Considere exportar `ZDOTDIR=$HOME/.config/zsh` em `~/.zshenv` (isso é codificado por causa de problema de inicialização). Você também poderia adicionar isso a `/etc/zsh/zshenv` e evita a necessidade de quaisquer dotfiles em seu `HOME`. Porém, fazer isso requer privilégios de root que não ser viável e é para todo sistema. `$ export HISTFILE="$XDG_DATA_HOME"/zsh/history` `$ compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION` [179] /!\ A pasta precisa existir

## Bibliotecas

C
  C99: implementação simples do Cloudef.

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.

Categories:

- Freedesktop.org (Português)
- Configuration files (Português)
- Development (Português)

Hidden categories:

- Pages with broken package links
- Pages with dead links