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.

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.

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 .
    • Onde arquivos de dados específicos do usuário devem ser escritos (análogo a ).
    • O padrão deve ser .
  • 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

    • Lista de diretórios separadas por (análogo a ).
    • O padrão deve ser /usr/local/share:/usr/share.
    • Lista os diretórios separados por (análogo a ).
    • O padrão deve ser .

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 ), 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
, ~/.antimicrox edba864
aria2 8bc1d37
2.9.0[link inativo 2020-08-06 ] [link inativo 2020-08-06 ] Usa para e para outros 3 arquivos. Caminhos legados não são removidos após a migração, tendo que ser excluídos manualmente.
2051757

Há suporte apenas no branch master do Git, não havendo lançamentos estáveis atualizados.

Blender ~/.blender 4293f47
Chromium 23057

f7c3193
Composer 1.0.0-beta1
~/.d-feet 7f6104b
Dolphin emulator a498c68
7e777ca XDG_CONFIG_HOME/dr14tmeter/
78b6e2b
afaf889
fish
fontconfig 8c255fb Usa para armazenar fones.

~/.FontForge
~/.PfaEdit

e4c2cc7

edf6e72
Gajim 3e777ea
fc28caa
GIMP

~/.gimp-x.y
~/.thumbnails

60e0cfe 483505f

Git 0d94427
GStreamer 4e36f93
GTK 3
93233a6
i3 7c130fb
i3status c3f7fc4
Inkscape 0.47
Kakoune
latexmk (em )
~/.lftp 21dc400
d430af6
LibreOffice

a6f56f7 25bd2ee

Streamlink ~/.livestreamerrc ea80591
llpp 3ab86f0 Atualmente, llpp coloca a configuração diretamente sob XDG_CONFIG_HOME, em vez de criar um diretório.
mc

1b99570 0b71156 ce401d7

Mercurial

3540200 4.2

.
msmtp

af2f409 v1.6.7+

.
87ab26b XDG_CACHE_HOME/mesa
eb487c5
mpd 87b7328
mpv cb250d4
mutt b17cd67
cf723b7
nano c16e79b
ncmpcpp ~/.ncmpcpp

38d9f81 27cd86e

deve ser definido para evitar um arquivo em ~/.ncmpcpp.
Neovim

~/.nvim
~/.nvimlog
~/.nviminfo

1ca5646

newsbeuter 3c57824 É necessário criar ambos diretórios :
node-gyp 2b5ce52a Disponível apenas no master até 2018-12-04.
56a1cc2
4593e72 não reconhece soluções alternativas para ipython/jupyter
OfflineIMAP 5150de5
opentyrianAUR 39559c3
0bed0ab

87f1e8f a9020c6 3b22f0f 0a012ae

Pry ~/.pryrc
~/.pry_history

a0be0cc7 15e1fc92 e9d1be0e

6.0
6.0
132fe47
procps-ng af53e17

pacman 80eca94
2b537d2
PulseAudio

59a8618 87ae830 9ab510a 4c195bc

pyroomAUR
3.10.0
qutebrowser
qtile

fd8686e 66d704b 51cff01

Algumas barras opcionais podem criar arquivos e diretórios em caminhos sem conformidade, mas geralmente eles ainda são configuráveis.
~/.rclone.conf 9d36258
02e7d41
RSpec 5e395e2
rTorrent 6a8d332
RuboCop 6fe5956
~/.Skype 8.0
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).
O cache é colocado em em vez do esperado .
surfraw

~/.surfraw.conf
~/.surfraw.bookmarks

3e4591d bd8c427 f57fc71

sway 614393c
systemd
termite
, 2.2 O diretório ~/.local/share/tig deve existir, do contrário escreve para .
2636923
Transmission b71a298
570b321
Uzbl c6fd63a
VirtualBox 4.3
vis

68a25c7 d138908

VLC 16f32e1
Visual Studio Code Note que o diretório de extensões não vai ser movido; veja .
~/.warsow-2.x 98ece3f
Wireshark b0b53fa
b4999f5
xmonad 40fc10b

Alternativamente, as variáveis de ambiente , e XMONAD_CACHE_HOME também são configuráveis.
ee7b481
2d454b5

Parcial

Aplicativo Caminho legado Suporte desde Discussão Observações
$ abook --config "$XDG_CONFIG_HOME"/abook/abookrc --datafile "$XDG_CACHE_HOME"/abook/addressbook
Anki

~/Anki
~/Documents/Anki

aspell
Atom
1.7.45
bash-completion
bazaar 2.3.0 Discussão no relatório de erro do upstream informa que o bazaar vai usar se existir. O arquivo de log ainda pode ser escrito.
Ruby#Bundler $ export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
$ calcurse -C "$XDG_CONFIG_HOME"/calcurse -D "$XDG_DATA_HOME"/calcurse
Rust#Cargo
ccache
~/.chezscheme_history
conky 00481ee
coreutils
crawl ~/.crawl A barra ao final é necessária:

Apesar disso, clusterssh ainda vai criar .

CUDA ~/.nv
dict
Docker
$ export MACHINE_STORAGE_PATH="$XDG_DATA_HOME"/docker-machine
DOSBox $ dosbox -conf "$XDG_CONFIG_HOME"/dosbox/dosbox.conf
ELinks
$ freecad -u "$XDG_CONFIG_HOME"/FreeCAD/user.cfg -s "$XDG_CONFIG_HOME"/FreeCAD/system.cfg

Apesar dessas opções, ainda vai criar o arquivo , pois o módulo web o tem codificado

GDB
getmail $ getmail --rcfile="$XDG_CONFIG_HOME/getmail/getmailrc" --getmaildir="$XDG_DATA_HOME/getmail"
GnuPG ~/.gnupg
Google Earth Alguns caminhos podem ser alterados com as opções e em
Se sobrepõe às configurações em ~/.config/gopass/config.yml:
GQ LDAP client 1.51

$ export GQRC="$XDG_CONFIG_HOME"/gqrc
$ export GQSTATE="$XDG_DATA_HOME"/gq/gq-state
$ mkdir -p "$(dirname "$GQSTATE")"

Gradle
GTK 1
GTK 2
~/.hledger.journal
$ 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
ipython/jupyter não vai corrigir
irb ~/.irbrc
irssi
isync
Java (Português)#OpenJDK ~/.java/.userPrefs
ledger ,
less

$ export LESSHISTFILE=- pode ser usado para desabilitar esse recurso.

libice

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
maven
Mathematica
~/.mednafen
MOC
monero
MPlayer $ export MPLAYER_HOME="$XDG_CONFIG_HOME"/mplayer
MySQL
~/.terminfo Preclui a pesquisa de caminho do sistema:
Netbeans
Node.js $ export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
notmuch

~/.npm
~/.npmrc

é desnecessário (e não há suporte) se o Node.js for instalado por .
~/.nuget/packages
NVIDIA ~/.nv Usa XDG_CACHE_HOME se definido, do contrário retrocede inadequadamente para ~/.nv em vez de .
Octave

$ export OCTAVE_HISTFILE="$XDG_CACHE_HOME/octave-hsts"
$ export OCTAVE_SITE_INITFILE="$XDG_CONFIG_HOME/octave/octaverc"

Deve-se fornecer à opção um caminho absoluto.

7c3077b0f Não honra totalmente a XDG Base Directory Specification, veja

Atualmente, ele codifica ~/.local/share.

OpenSSL O local do arquivo semeador pode ser definido com a varável de ambiente conforme FAQ.
~/.parallel 20170422
Pass
Pidgin
PostgreSQL 9.2

É necessário criar ambos diretórios:

PulseAudio ~/.esd_auth Provavelmente gerado pelo módulo . Ele pode ser configurado para usar um local diferente, mas faz muito mais sentido apenas comentar este módulo em ou .
python-azure-cliAUR
~/.pylint.d não vai corrigir
readline $ export INPUTRC="$XDG_CONFIG_HOME"/readline/inputrc
Ruby#RubyGems

$ export GEM_HOME="$XDG_DATA_HOME"/gem
$ export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem

Certifique-se de remover de

Rust#Rustup
$ sbt -ivy "$XDG_DATA_HOME"/ivy2 -sbt-dir "$XDG_DATA_HOME"/sbt (cuidado com )
GNU Screen
Haskell#Stack $ export STACK_ROOT="$XDG_DATA_HOME"/stack
subversion
~/.tiptoprc Ele ainda vai espera haver o arquivo .
tmux
$ export UNCRUSTIFY_CONFIG="$XDG_CONFIG_HOME"/uncrustify/uncrustify.cfg
Unison $ export UNISON="$XDG_DATA_HOME"/unison
urxvtd
Vagrant
WeeChat
wget

$ export WGETRC="$XDG_CONFIG_HOME/wgetrc"

e adicionar o seguinte como um alias para wget:

ou definir a variável com um caminho absoluto, pois não tem suporte a variáveis de ambiente:

wine Winetricks usa local tipo XDG abaixo para gerenciamento de WINEPREFIX:

$ mkdir -p "$XDG_DATA_HOME"/wineprefixes
$ export WINEPREFIX="$XDG_DATA_HOME"/wineprefixes/default

xbindkeys
$ 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:

Em última análise, você deve estar usando e já que esses recursos são carregados por meio de , você pode especificar um caminho como .
z $ export _Z_DATA="$XDG_DATA_HOME/z"

Codificado

Aplicativo Caminho legal Discussão Observações
adb
AMule
Android Studio
anthy
Apache Directory Studio
ARandR
Arduino não vai corrigir
Audacity ~/.audacity-data/
Avidemux
Bash não vai corrigir

Um especificado pode ser carregado a partir de .

Especifique como uma alternativa a ~/.bashrc para shells interativos.

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.
cmake Usado para registro de pacote de usuário , detalhado em e na página wiki de Package registry. Parece que é codificado, por exemplo em cmFindPackageCommand.cxx.
Cinnamon
CUPS ~/.cups/ não vai corrigir
darcs
dbus Isso deve ser evitável com kdbus [citação necessária].
Codificado aqui
Dia
dotnet-sdk
Eclipse A opção sobrescreve, mas deve ser adicionado para em vez de linha de comando que significa que você tem que ter acesso de escrita para . (Arch Linux codifica em /usr/bin/eclipse)
Emacs É possível definir , 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
Firefox
Flatpak não vai corrigir
GHC
ghidra
GoldenDict
~/.gramps/
gtk-recordMyDesktop
idris
iwd / iwctl ~/.iwctl_history
Java OpenJDK
Java OpenJFX
julia
Linux PAM Codificado em modules/pam_env/pam_env.c
lldb
mathomatic O histórico pode ser movido usando com o ambiente definido apropriadamente.
Minecraft ~/.minecraft/
Minetest não vai corrigir
mongodb Esse tópico do Stack Overflow sugere uma solução alternativa parcial usando a opção de linha de comando --norc.
Nestopia UE não vai corrigir
Assim como , muitos programas esperam que esse arquivo esteja aqui. Estes incluem projetos como curl (), ftp (), s-nail (), etc. Enquanto alguns deles oferecem locais alternativos configuráveis, muitos não o fazem, como w3m, wget e lftp.
Networkmanager-openvpn
NSS ~/.pki
OpenSSH não vai corrigir Presume-se estar presente por muitos daemons e clientes de ssh, tal como DropBear e OpenSSH.
palemoon
~/.pcsxr Uma opção existe, mas só pode ser definido relativo a ~/.pcsxr.
perf Codificado em tools/perf/util/config.c:29.
vários shells e gerenciadores de exibição
python Todo o histórico de sessões interativas salvas em 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
Remarkable
Ren'Py
SANE cria um arquivo lá
~/.stardict/ A única solução alternativa é modificar
SeaMonkey
~/.ssr/ O autor parece não concordar com esse recurso.
Solfege
spacemacs[link inativo 2020-08-06 ]
SpamAssassin
spectrwm
SQLite
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
texinfo
TeXmacs
Thunderbird
tllocalmgr
vim A partir de 7.3.1178, vem com suporte a 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
vimperator
wpa_cli
xdg-utils Por algum motivo o script codifica . Isso é usado por chromium entre outros.
xombrero
xournalpp
YARD Aceitaria uma Pull Request se alguém quisesse implementá-la.
zenmap
zsh

~/.zshrc
~/.zprofile
~/.zshenv
~/.zlogin
~/.zlogout
~/.histfile
~/.zcompdump

Considere exportar em (isso é codificado por causa de problema de inicialização). Você também poderia adicionar isso a e evita a necessidade de quaisquer dotfiles em seu . Porém, fazer isso requer privilégios de root que não ser viável e é para todo sistema.
 /!\ 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
Ruby
rubyworks/xdg
Rust
directories-rs
rust-xdg
Python
pyxdg
Vala
Suporte embarcado via GLib.Environment.
Veja , , get_user_config_dir, etc.

Veja também

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.