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 | ||
aria2 | ~/.aria2 |
8bc1d37 | ||
asunderAUR |
|
2.9.0[link inativo 2020-08-06 ⓘ] | [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 | $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 ⓘ] | ||
calibre | ||||
Chromium | ~/.chromium |
23057 | ||
citra-gitAUR[link quebrado: package not found] | ~/.citra-emu |
f7c3193[link inativo 2024-07-30 ⓘ] | [link inativo 2024-07-30 ⓘ] | |
Composer | ~/.composer |
1.0.0-beta1 | ||
d-feetAUR | ~/.d-feet |
7f6104b | ||
dconf | ||||
Dolphin emulator | ~/.dolphin-emu |
a498c68 | ||
dr14_tmeterAUR[link quebrado: package not found] | 7e777ca | XDG_CONFIG_HOME/dr14tmeter/ | ||
dunst | 78b6e2b | |||
elixir | ~/.mix |
afaf889 | ||
fish | ||||
fontconfig |
|
8c255fb | Usa "$XDG_DATA_HOME"/fonts para armazenar fones. | |
fontforge |
|
e4c2cc7 | ||
freerdp | ~/.freerdp |
edf6e72 | ||
Gajim | ~/.gajim |
3e777ea | ||
gconfAUR | ~/.gconf |
fc28caa | ||
GIMP |
|
|||
Git | ~/.gitconfig |
0d94427 | ||
GStreamer | ~/.gstreamer-0.10 |
4e36f93 | ||
GTK 3 | ||||
htop | ~/.htoprc |
93233a6 | ||
i3 | ~/.i3 |
7c130fb | ||
i3status | ~/.i3status.conf |
c3f7fc4 | ||
imagemagick | ||||
Inkscape | ~/.inkscape |
0.47 | ||
Kakoune | ||||
latexmk (em texlive-basic) | ~/.latexmkrc |
|||
lftp | ~/.lftp |
21dc400 | ||
lgogdownloaderAUR | ~/.gogdownloader |
d430af6 | ||
LibreOffice | ||||
Streamlink | ~/.livestreamerrc |
ea80591 | ||
llpp | 3ab86f0 | Atualmente, llpp coloca a configuração diretamente sob XDG_CONFIG_HOME , em vez de criar um diretório. | ||
mc | ~/.mc |
|||
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 | ||
mpd | ~/.mpdconf |
87b7328 | ||
mpv | ~/.mpv |
cb250d4 | ||
mutt | ~/.mutt |
b17cd67 | ||
mypaint | ~/.mypaint |
cf723b7 | ||
nano |
|
c16e79b | ||
ncmpcpp | ~/.ncmpcpp |
ncmpcpp_directory deve ser definido para evitar um arquivo error.log em ~/.ncmpcpp . | ||
Neovim |
|
1ca5646[link inativo 2024-01-13 ⓘ] | ||
newsbeuter | ~/.newsbeuter |
3c57824 | É necessário criar ambos diretórios :
| |
node-gyp | ~/.node-gyp |
2b5ce52a | Disponível apenas no master até 2018-12-04. | |
np2kai-gitAUR |
|
56a1cc2 | ||
nteract-binAUR | 4593e72 | não reconhece soluções alternativas para ipython/jupyter | ||
OfflineIMAP | ~/.offlineimaprc |
5150de5 | ||
opentyrianAUR | ~/.opentyrian |
39559c3 | ||
pandoc-cli | ~/.pandoc/ |
0bed0ab | ||
pcsx2AUR | ~/.pcsx2 |
|||
Pry | ~/.pryrc |
|||
python-pip | ~/.pip |
6.0 | ||
powershellAUR | 6.0 | |||
ppsspp | ~/.ppsspp |
132fe47 | ||
procps-ng | ~/.toprc |
af53e17 | ||
pacman | ~/.makepkg.conf |
80eca94 | ||
panda3dAUR | ~/.panda3d |
2b537d2 | ||
PulseAudio |
|
|||
pyroomAUR | ||||
quodlibet | ~/.quodlibet |
3.10.0 | ||
qutebrowser | ||||
qtile | 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 | ||
retroarch | ||||
rrAUR | ~/.rr |
02e7d41 | ||
RSpec | ~/.rspec |
5e395e2 | ||
rTorrent | ~/.rtorrent.rc |
6a8d332 | ||
RuboCop | ~/.rubocop.yml |
6fe5956 | ||
skypeforlinux-binAUR | ~/.Skype |
8.0 | ||
snes9x | ~/.snes9x |
93b5f11 | 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 |
|
|||
sway | ~/.sway/config |
614393c | ||
systemd | ||||
termite | ||||
tig | ~/.tigrc , ~/.tig_history |
2.2 | O diretório ~/.local/share/tig deve existir, do contrário escreve para ~/.tig_history . | |
tmuxinatorAUR | ~/.tmuxinator |
2636923 | ||
Transmission | ~/.transmission |
b71a298 | ||
util-linux | 570b321 | |||
Uzbl | c6fd63a | |||
vimb | ||||
VirtualBox | ~/.VirtualBox |
4.3 | ||
vis | ~/.vis |
|||
VLC | ~/.vlcrc |
16f32e1[link inativo 2023-05-06 ⓘ] | ||
Visual Studio Code | Note que o diretório de extensões não vai ser movido; veja . | |||
warsow | ~/.warsow-2.x |
98ece3f | ||
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_HOME e XMONAD_CACHE_HOME também são configuráveis. | |
xsel | ~/.xsel.log |
ee7b481 | ||
yarn |
|
2d454b5 |
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 |
$ export ACKRC="$XDG_CONFIG_HOME/ack/ackrc" | ||
Anki |
|
$ 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 |
$ export ATOM_HOME="$XDG_DATA_HOME"/atom | ||
aws-cli | ~/.aws |
1.7.45 |
| |
bash-completion | ~/.bash_completion |
$ export BASH_COMPLETION_USER_FILE="$XDG_CONFIG_HOME"/bash-completion/bash_completion | ||
bazaar |
|
2.3.0 | 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 |
$ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle | ||
calcurse | ~/.calcurse |
$ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse | ||
Rust#Cargo | ~/.cargo |
$ 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 | $ 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 |
$ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf | ||
ELinks | ~/.elinks |
$ export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks | ||
emscripten |
|
| ||
freecad | ~/.FreeCAD |
$ 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 | ||
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 |
| ||
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 |
|
1.51 |
| |
Gradle | ~/.gradle |
$ 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 |
$ export LEDGER_FILE="$XDG_DATA_HOME"/hledger.journal | ||
httpie | ~/.httpie |
$ export HTTPIE_CONFIG_DIR="$XDG_CONFIG_HOME"/httpie | ||
intellij-idea-ceAUR[link quebrado: package not found] | ~/.IntelliJIdea* |
$ 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 |
$ 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 |
$ export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java | ||
ledger | ~/.ledgerrc , ~/.pricedb |
$ ledger --init-file "$XDG_CONFIG_HOME"/ledgerrc | ||
less | ~/.lesshst |
| ||
libdvdcss | ~/.dvdcss |
$ export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss | ||
libice | ~/.ICEauthority |
$ export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority
Certifique-se que Não use | ||
libx11 |
|
| ||
ltrace | ~/.ltrace.conf |
$ ltrace -F "$XDG_CONFIG_HOME"/ltrace/ltrace.conf | ||
Luanti | ~/.minetest/ |
export MINETEST_USER_PATH="$XDG_DATA_HOME"/luanti | ||
maven | ~/.m2 |
$ mvn -gs "$XDG_CONFIG_HOME"/maven/settings.xml
[https://maven.apache.org/settings.html 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 |
| ||
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 |
$ netbeans --userdir "${XDG_CONFIG_HOME}"/netbeans | ||
Node.js | ~/.node_repl_history |
$ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history | ||
notmuch | ~/.notmuch-config |
| ||
npm |
|
$ 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
| ||
nuget | ~/.nuget/packages |
$ 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 |
|
$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 | Não honra totalmente a XDG Base Directory Specification, veja
Atualmente, ele codifica[link inativo 2022-09-23 ⓘ] | |
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 |
$ pidgin --config="$XDG_DATA_HOME"/purple | ||
PostgreSQL |
|
9.2 |
É 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.pa ou "$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
|
$ export PLTUSERHOME="$XDG_DATA_HOME"/racket | ||
readline | ~/.inputrc |
$ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc | ||
rlwrap | ~/.*_history |
$ export RLWRAP_HOME="$XDG_DATA_HOME"/rlwrap | ||
Ruby#RubyGems | ~/.gem |
Certifique-se de remover | ||
Rust#Rustup | ~/.rustup |
$ export RUSTUP_HOME="$XDG_DATA_HOME"/rustup | ||
sbt | ~/.sbt
|
$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt (cuidado com ) | ||
GNU Screen | ~/.screenrc |
$ export SCREENRC="$XDG_CONFIG_HOME"/screen/screenrc | ||
Haskell#Stack | ~/.stack |
$ export STACK_ROOT="$XDG_DATA_HOME"/stack | ||
subversion | ~/.subversion |
$ svn --config-dir "$XDG_CONFIG_HOME"/subversion | ||
task |
|
| ||
tiptopAUR | ~/.tiptoprc |
Ele ainda vai espera haver o arquivo .tiptoprc .
| ||
tmux | ~/.tmux.conf |
$ 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 |
|
| ||
WeeChat | ~/.weechat |
| ||
wget |
|
| ||
wine | ~/.wine |
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 |
|
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 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 |
|
$ export _Z_DATA="$XDG_DATA_HOME/z" |
Codificado
Aplicativo | Caminho legal | Discussão | Observações |
---|---|---|---|
adb | ~/.android/ |
$ export ANDROID_SDK_HOME="$XDG_CONFIG_HOME"/android | |
AMule | ~/.aMule |
||
Android Studio |
|
||
anthy | ~/.anthy |
||
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/history
Um Especifique |
cabal | ~/.cabal/ |
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/ |
||
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/ |
||
cryptomatorAUR | ~/.Cryptomator |
||
CUPS | ~/.cups/ |
não vai corrigir | |
darcs | ~/.darcs/ |
||
dbus | ~/.dbus/ |
Isso deve ser evitável com kdbus [citação necessária]. | |
devede | ~/.devedeng |
Codificado aqui | |
Dia | ~/.dia/ |
||
dotnet-sdk | ~/.dotnet/ |
||
Eclipse | ~/.eclipse/ |
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 |
|
É 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/ |
||
Flatpak | ~/.var/ |
não vai corrigir | |
GHC | ~/.ghc |
||
ghidra | |||
GoldenDict | ~/.goldendict/ |
||
gramps | ~/.gramps/ |
||
grsync | ~/.grsync/ |
||
gtk-recordMyDesktop | ~/.gtk-recordmydesktop |
||
hplip | ~/.hplip/ |
||
idris | ~/.idris |
||
iwd / iwctl | ~/.iwctl_history |
||
Java OpenJDK | ~/.java/fonts |
||
Java OpenJFX | ~/.java/webview |
||
julia |
|
||
lldb |
|
||
mathomatic[link inativo 2024-10-12 ⓘ] |
|
O histórico pode ser movido usando rlwrap mathomatic -r com o ambiente RLWRAP_HOME definido apropriadamente. | |
Minecraft | ~/.minecraft/ |
||
mongodb |
|
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 |
||
NSS | ~/.pki |
||
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 |
||
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 |
||
SANE | ~/.sane/ |
scanimage cria um arquivo .cal lá | |
scribus | ~/.scribus |
||
sdcv | ~/.stardict/ |
A única solução alternativa é modificar HOME | |
SeaMonkey | ~/.mozilla/ |
||
simplescreenrecorderAUR | ~/.ssr/ |
O autor parece não concordar com esse recurso. | |
Solfege |
|
||
spacemacs |
|
||
SpamAssassin | ~/.spamassassin |
||
spectrwm | ~/.spectrwm |
||
SQLite |
|
$ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history
| |
Steam |
|
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/ |
||
tllocalmgr | ~/.texlive |
||
vim |
|
A partir de 7.3.1178, vem com suporte a ~/.vim/vimrc se ~/.vimrc nã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 |
$ export VIMPERATOR_INIT=":source $XDG_CONFIG_HOME/vimperator/vimperatorrc"
| |
w3m | ~/.w3m |
||
wpa_cli | ~/.wpa_cli_history |
||
xdg-utils | ~/.gnome |
Por algum motivo o script xdg-desktop-menu codifica gnome_user_dir="$HOME/.gnome/apps" . Isso é usado por chromium entre outros. | |
xombrero | ~/.xombrero |
[link inativo 2020-08-06 ⓘ] | |
xournalpp | ~/.xournalpp |
||
YARD | ~/.yard |
Aceitaria uma Pull Request se alguém quisesse implementá-la. | |
zenmap nmap | ~/.zenmap |
||
zsh |
|
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.
|
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.