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

  • XDG_DATA_DIRS
    • Lista de diretórios separadas por (análogo a ).
    • O padrão deve ser .
    • 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
aerc-gitAUR
, edba864
aria2 ~/.aria2 8bc1d37
2.9.0 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.
~/.binwalk 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
7f6104b
dconf
Dolphin emulator a498c68
7e777ca XDG_CONFIG_HOME/dr14tmeter/
78b6e2b
afaf889
fish
fontconfig 8c255fb Usa para armazenar fones.

~/.FontForge
~/.PfaEdit

e4c2cc7

edf6e72
Gajim 3e777ea
~/.gconf fc28caa
GIMP

60e0cfe 483505f

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

a6f56f7 25bd2ee

Streamlink 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+

.
mesa 87ab26b
~/.milkytracker_config 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
nteract-binAUR 4593e72 não reconhece soluções alternativas para ipython/jupyter
OfflineIMAP 5150de5
39559c3
0bed0ab
pcsx2

87f1e8f a9020c6 3b22f0f 0a012ae

Pry

a0be0cc7 15e1fc92 e9d1be0e

6.0
6.0
ppsspp 132fe47
af53e17

pacman 80eca94
2b537d2
PulseAudio

~/.pulse
~/.pulse-cookie

59a8618 87ae830 9ab510a 4c195bc

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 9d36258
02e7d41
RSpec 5e395e2
rTorrent 6a8d332
RuboCop ~/.rubocop.yml 6fe5956
8.0
~/.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).
O cache é colocado em em vez do esperado .
surfraw

3e4591d bd8c427 f57fc71

sway 614393c
systemd
termite
tig , 2.2 O diretório deve existir, do contrário escreve para .
2636923
Transmission ~/.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 .
98ece3f
Wireshark b0b53fa
b4999f5
xmonad ~/.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
ack
Anki

~/Anki
~/Documents/Anki

aspell
Atom
~/.aws 1.7.45
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 ainda pode ser escrito.
Ruby#Bundler
calcurse
Rust#Cargo
ccache

$ export CCACHE_DIR="$XDG_CACHE_HOME"/ccache

conky 00481ee $ conky --config="$XDG_CONFIG_HOME"/conky/conkyrc
coreutils
crawl A barra ao final é necessária:
$ alias cssh="cssh --config-file '$XDG_CONFIG_HOME/clusterssh/config'"

Apesar disso, clusterssh ainda vai criar .

CUDA
dict ~/.dictrc
Docker
DOSBox ~/.dosbox/dosbox-0.74-2.conf
ELinks
emscripten

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

GDB ~/.gdbinit
getmail ~/.getmail/getmailrc
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
Gradle ~/.gradle
GTK 1
GTK 2
~/.hledger.journal
~/.httpie
ipython/jupyter não vai corrigir

$ export IPYTHONDIR="$XDG_CONFIG_HOME"/jupyter
$ export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter

irb
irssi
isync ~/.mbsyncrc
Java (Português)#OpenJDK
ledger , ~/.pricedb
less
pode ser usado para desabilitar esse recurso.
libdvdcss

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

maven
Mathematica
mednafen
MOC
monero
$ export MOST_INITFILE="$XDG_CONFIG_HOME"/mostrc
MPlayer
MySQL
Preclui a pesquisa de caminho do sistema:

$ export TERMINFO="$XDG_DATA_HOME"/terminfo
$ export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo

Netbeans ~/.netbeans
Node.js
notmuch
npm
é desnecessário (e não há suporte) se o Node.js for instalado por .
$ export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages
NVIDIA Usa XDG_CACHE_HOME se definido, do contrário retrocede inadequadamente para em vez de .
$ nvidia-settings --config="$XDG_CONFIG_HOME"/nvidia/settings
Octave

Deve-se fornecer à opção local_list 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.
20170422
Pass $ export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass
Pidgin
PostgreSQL 9.2

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

PulseAudio 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 .
~/.azure
~/.pylint.d não vai corrigir
readline ~/.inputrc
Ruby#RubyGems

Certifique-se de remover de /etc/gemrc

Rust#Rustup
sbt (cuidado com )
GNU Screen
Haskell#Stack $ export STACK_ROOT="$XDG_DATA_HOME"/stack
subversion $ svn --config-dir "$XDG_CONFIG_HOME"/subversion
Ele ainda vai espera haver o arquivo .
tmux ~/.tmux.conf
~/.uncrustify.cfg
Unison
urxvtd
Vagrant

$ export VAGRANT_HOME="$XDG_DATA_HOME"/vagrant
$ export VAGRANT_ALIAS_FILE="$XDG_DATA_HOME"/vagrant/aliases

WeeChat
wget


e adicionar o seguinte como um alias para wget:

ou definir a variável hsts-file 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
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 , você pode especificar um caminho como .

Codificado

Aplicativo Caminho legal Discussão Observações
adb
AMule
Android Studio

~/.AndroidStudio2.3
~/.android/
~/.java/

anthy
Apache Directory Studio
ARandR ~/.screenlayout
Arduino não vai corrigir
Audacity
Avidemux
Bash não vai corrigir

Um especificado pode ser carregado a partir de /etc/bash.bashrc.

Especifique como uma alternativa a para shells interativos.

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.
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 ~/.cinnamon/
CUPS não vai corrigir
darcs ~/.darcs/
dbus Isso deve ser evitável com kdbus [citação necessária].
Codificado aqui
Dia
~/.dotnet/
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 )
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
Firefox
Flatpak não vai corrigir
GHC
ghidra
GoldenDict
gtk-recordMyDesktop
~/.hplip/
idris
iwd / iwctl
Java OpenJDK
Java OpenJFX ~/.java/webview
julia
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 .
Nestopia UE ~/.nestopia/ 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
Uma opção existe, mas só pode ser definido relativo a .
perf ~/.debug 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
RedNotebook ~/.rednotebook
Remarkable
Ren'Py
SANE cria um arquivo lá
~/.scribus
A única solução alternativa é modificar HOME
SeaMonkey
~/.ssr/ O autor parece não concordar com esse recurso.
Solfege
spacemacs
SpamAssassin
spectrwm
SQLite $ export SQLITE_HISTORY=$XDG_DATA_HOME/sqlite_history

$ sqlite3 -init "$XDG_CONFIG_HOME"/sqlite3/sqliterc

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
$ info --init-file "$XDG_CONFIG_HOME/infokey"
TeXmacs
Thunderbird
tllocalmgr
vim A partir de 7.3.1178, vem com suporte a ~/.vim/vimrc se não for encontrado.
vimperator

$ export VIMPERATOR_RUNTIME="$XDG_CONFIG_HOME"/vimperator

wpa_cli ~/.wpa_cli_history
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 HOME. 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

gollark: YET.
gollark: It doesn't.
gollark: Unfortunately, few syntax highlighting libraries support that.
gollark: Actually, why not be more x86-64 and make your integers be `SYSCALL whatever` instead?
gollark: But it makes the syntax highlighting mildly confusing.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.