XDG Base Directory (Português)

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(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
.
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-git
AUR
antimicrox
~/.antimicro
,
~/.antimicrox
edba864
[1]
aria2
~/.aria2
8bc1d37
[2]
asunder
AUR
~/.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
[
link inativo
2025-03-15 ⓘ]
[5]
calibre
Chromium
~/.chromium
23057
[6]
[7]
citra-git
AUR
[
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-feet
AUR
~/.d-feet
7f6104b
dconf
Dolphin emulator
~/.dolphin-emu
a498c68
[10]
dr14_tmeter
AUR
[
link quebrado
: package not found]
7e777ca
[11]
XDG_CONFIG_HOME/dr14tmeter/
dunst
78b6e2b
[12]
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]
gconf
AUR
~/.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
[
link inativo
2025-08-16 ⓘ]
i3status
~/.i3status.conf
c3f7fc4
[
link inativo
2025-08-16 ⓘ]
imagemagick
Inkscape
~/.inkscape
0.47
[21]
Kakoune
latexmk (em
texlive-basic
)
~/.latexmkrc
lftp
~/.lftp
21dc400
[22]
lgogdownloader
AUR
~/.gogdownloader
d430af6
[23]
LibreOffice
a6f56f7
[
link inativo
2025-11-17 ⓘ]
25bd2ee
[
link inativo
2025-11-17 ⓘ]
[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
[
link inativo
2024-01-13 ⓘ]
[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-git
AUR
~/.config/np2kai
~/.config/xnp2kai
56a1cc2
[38]
nteract-bin
AUR
4593e72
[39]
[40]
não reconhece soluções alternativas para ipython/jupyter
OfflineIMAP
~/.offlineimaprc
5150de5
[41]
opentyrian
AUR
~/.opentyrian
39559c3
[42]
pandoc-cli
~/.pandoc/
0bed0ab
[43]
pcsx2
AUR
~/.pcsx2
87f1e8f
a9020c6
3b22f0f
0a012ae
[44]
[45]
Pry
~/.pryrc
~/.pry_history
a0be0cc7
15e1fc92
e9d1be0e
[46]
python-pip
~/.pip
6.0
[47]
powershell
AUR
6.0
ppsspp
~/.ppsspp
132fe47
[48]
procps-ng
~/.toprc
af53e17
[49]
[50]
pacman
~/.makepkg.conf
80eca94
[51]
panda3d
AUR
~/.panda3d
2b537d2
PulseAudio
~/.pulse
~/.pulse-cookie
59a8618
87ae830
9ab510a
4c195bc
[52]
pyroom
AUR
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
rr
AUR
~/.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-dev
AUR
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
.
tmuxinator
AUR
~/.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
[
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-git
AUR
~/.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
abook
AUR
~/.abook
$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook
ack
AUR
~/.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
AUR
[
link quebrado
: package not found]
~/.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.
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
$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache
chez-scheme
AUR
~/.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:
$ export CRAWL_DIR="$XDG_DATA_HOME"/crawl/
clusterssh
AUR
~/.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
[87]
$ 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
[88]
$ 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
[89]
$ 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
[
link inativo
2024-07-30 ⓘ]
GDB
~/.gdbinit
$ gdb -nh -x "$XDG_CONFIG_HOME"/gdb/init
get_iplayer
AUR
~/.get_iplayer
$ export GETIPLAYERUSERPREFS="$XDG_DATA_HOME"/get_iplayer
getmail
~/.getmail/getmailrc
$ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
gliv
AUR
~/.glivrc
$ gliv --glivrc="$XDG_CONFIG_HOME"/gliv/glivrc
GnuPG
~/.gnupg
[90]
[91]
$ 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
[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-ce
AUR
[
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
$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter
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
$ 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
[99]
$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss
libice
~/.ICEauthority
[100]
$ 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
Luanti
~/.minetest/
[101]
export MINETEST_USER_PATH="$XDG_DATA_HOME"/luanti
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
nvm
.
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
nvm
~/.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
[
link inativo
2022-09-23 ⓘ]
~/.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-cli
AUR
[
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
~/.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
tiptop
AUR
~/.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.
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]
cryptomator
AUR
~/.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]
[
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
~/.juliarc.jl
~/.julia_history
[151]
[152]
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/
[153]
mongodb
~/.mongorc.js
~/.dbshell
[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-bin
AUR
~/.parsec
pcsxr
AUR
~/.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
[158]
SANE
~/.sane/
scanimage
cria um arquivo
.cal
lá
scribus
~/.scribus
sdcv
~/.stardict/
[159]
A única solução alternativa é modificar
HOME
SeaMonkey
~/.mozilla/
[160]
simplescreenrecorder
AUR
~/.ssr/
[161]
O autor parece não concordar com esse recurso.
Solfege
~/.solfege
~/.solfegerc
~/lessonfiles
[162]
spacemacs
~/.spacemacs
~/.spacemacs.d
[163]
SpamAssassin
~/.spamassassin
spectrwm
~/.spectrwm
SQLite
~/.sqlite_history
~/.sqliterc
[164]
$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc
Steam
~/.steam
~/.steampath
~/.steampid
[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
~/.vim
~/.vimrc
~/.viminfo
[167]
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
[168]
$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"
$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator
w3m
~/.w3m
[169]
wpa_cli
~/.wpa_cli_history
xdg-utils
~/.gnome
[170]
Por algum motivo o script
xdg-desktop-menu
codifica
gnome_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
~/.zshrc
~/.zprofile
~/.zshenv
~/.zlogin
~/.zlogout
~/.histfile
~/.zcompdump
[176]
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
[177]
/!\ 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.