Jump to content

# Dotfiles (Português)

4 languages

- English
- Español
- 日本語
- 中文（简体）

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Dotfiles. Data da última tradução: 2019-10-20. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Suporte a XDG Base Directory
- Recursos do X

A configuração de aplicativos específica do usuário é tradicionalmente armazenada nos chamados dotfiles (arquivos cujo nome de arquivo começa com um ponto). É uma prática comum rastrear dotfiles com um sistema de controle de versão, como o Git, para acompanhar as mudanças e sincronizar os arquivos de pontos através de vários hosts. Existem várias abordagens para gerenciar seus dotfiles (por exemplo, rastreando diretamente os dotfiles no diretório inicial vs armazenando-os em um subdiretório e fazendo um link simbólico/copiando/gerando arquivos com um script shell ou uma ferramenta dedicada) . Além de explicar como gerenciar seus dotfiles, este artigo também contém uma lista de repositórios de dotfiles dos usuários do Arch Linux.

## Rastreando dotfiles diretamente com Git

O benefício de rastrear dotfiles diretamente com o Git é que ele requer apenas Git e não envolve links simbólicos. A desvantagem é que configuração específica por cada host geralmente requer a mesclagem de alterações em vários ramos (branches).

A maneira mais simples de conseguir essa abordagem é inicializar um repositório Git diretamente em seu diretório inicial e ignorar todos os arquivos por padrão com um padrão de gitignore(5) de `*`. Este método, no entanto, vem com duas desvantagens: ele pode se tornar confuso quando você tiver outros repositórios Git em seu diretório inicial (por exemplo, se você esquecer de inicializar um repositório que você subitamente opera em seu repositório dotfile) e você não poderá mais ver facilmente quais arquivos o diretório atual não é rastreado (porque eles são ignorados).

Um método alternativo sem essas desvantagens é o "método repository seco e alias" popularizado por este comentário no Hacker News, que apenas usa três comandos para configurar:

    $ git init --bare ~/.dotfiles
    $ alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
    $ config config status.showUntrackedFiles no

Você pode então gerenciar seus dotfiles com o alias criado.

Dica: Para evitar fazer commit acidental de informações confidenciais, veja Git#Filtering confidential information.

## Configuração específica por host

Um problema comum com a sincronização de arquivos de pontos em várias máquinas é a configuração específica para cada host.

Com Git isso pode ser resolvido mantendo um ramo master para toda a configuração compartilhada, enquanto cada máquina individual possui um ramo específico da máquina com check-out. A configuração específica por host pode aplicada para um ramo específico da máquina; Quando a configuração compartilhada é modificada no ramo master, os ramos por máquina precisam ser rebased na parte superior do master atualizado.

Em scripts de configuração como arquivos de configuração do shell, a lógica condicional pode ser usada. Por exemplo, scripts Bash (por exemplo, `.bashrc`) podem aplicar configurações diferentes dependendo do nome da máquina (ou tipo, variável personalizada, etc.):

    if [[ "$(hostname)" == "archlaptop" ]]; then
        # comandos específicos de laptop aqui
    else
        # comandos de máquina desktop ou servidor
    fi

Similarmente, também podem ser alcançados com .Xresources.[1]

Se você achar que fazer rebase de ramos do Git é trabalhoso demais, você pode querer usar uma ferramenta que possui suporte a agrupamento de arquivos, ou se uma flexibilidade ainda maior é desejada, uma ferramenta que faz processamento.

### Ferramentas

Agrupamento de arquivos
  Como arquivos de configuração podem ser agrupados para grupos de configuração (também chamados de perfis ou pacotes).
Processamento
  Algumas ferramentas processam arquivos de configuração para permitir que eles sejam personalizados dependendo do host.

Nome | Pacote | Escrito em | Agrupamento de arquivos | Processamento
--- | --- | --- | --- | ---
dot-templater | dot-templater-gitAUR | Rust | baseado em diretórios | sintaxe personalizada
dotdrop[link inativo 2024-01-13 ⓘ] | dotdropAUR | Python | arquivo de configuração | Jinja2
dotfiles | dotfilesAUR | Python | Não | Não
Dots | dots-managerAUR | Python | baseado em diretórios | pontos de acréscimos personalizados
chezmoi | chezmoi | Go | baseado em diretórios | modelos em Go
GNU Stow | stow | Perl | baseado em diretórios[2] | Não
Mackup | mackupAUR | Python | automático por aplicativo | Não
mir.qualia | mir.qualiaAUR | Python | Não | blocos personalizados
rcm | rcmAUR | Perl | baseado em diretórios (por host ou tag) | Não

### Ferramentas interfaceando Git

Se você não estiver confortável com o Git, você pode querer usar uma dessas ferramentas, que abstraem o sistema de controle de versão (mais ou menos).

Nome | Pacote | Escrito em | Agrupamento de arquivos | Processamento
--- | --- | --- | --- | ---
dotgit | dotgitAUR | Bash | baseado em nome de arquivo | Não
homeshick | homeshick-gitAUR | Bash | direcionado a repositório | Não
homesick | – | Ruby | direcionado a repositório | Não
Pearl | pearl-gitAUR | Bash | direcionado a repositório | Não
vcsh | vcsh | Shell | direcionado a repositório | Não
yadm(1) | yadm-gitAUR | Shell | baseado em nome de arquivo (por classe, SO, hostname & usuário) [3] | Jinja2 (opcional)[4]

1. Possui suporte a criptografia de arquivos confidenciais com GPG.[5]

## Repositórios de usuários

Autor | Shell (Estrutura de shell) | WM / DE | Editor | Terminal | Multiplexador | Áudio | Monitor | E-mail | IRC
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
alfunx | zsh | awesome | vim | kitty | tmux | ncmpcpp/mpd | htop/lain | thunderbird |
peterzuger | zsh | i3-gaps | emacs | rxvt-unicode | screen | moc | htop |  |
Ambrevar | Eshell | EXWM | Emacs | Emacs (Eshell) | Emacs TRAMP + dtach | EMMS | conky/dzen | mu4e | Circe
awal | fish | i3 | vim | st | tmux |  | i3status |  | The Lounge
ayekat | zsh | karuiwm | vim | rxvt-unicode | tmux | ncmpcpp/mpd | karuibar | mutt | irssi
bamos | zsh | i3/xmonad | vim/emacs | rxvt-unicode | tmux | mpv/cmus | conky/xmobar | mutt | ERC
brisbin33 | zsh | xmonad | vim | rxvt-unicode | screen |  | dzen | mutt | irssi
BVollmerhaus | fish | i3-gaps | kakoune | rxvt-unicode |  |  | polybar | thunderbird |
cinelli | zsh | dwm | vim | termite-git |  | pianobar | htop | mutt-kz | weechat
dikiaap | zsh | i3-gaps | neovim | kitty |  |  | i3blocks |  |
Earnestly | zsh | i3/orbment | vim/emacs | termite | tmux | mpd | conky | mutt | weechat
ErikBjare | zsh | xmonad/xfce4 | vim | terminator | tmux |  | xfce4-panel |  | weechat
falconindy | bash | i3 | vim | rxvt-unicode |  | ncmpcpp | conky | mutt |
graysky | zsh | xfce4 | vim | terminal |  | ncmpcpp | personalizado | thunderbird |
hugdru | zsh | awesome | neovim | rxvt-unicode | tmux |  |  | thunderbird | weechat
insanum | bash | herbstluftwm | vim | evilvte | tmux |  | dzen | mutt-kz |
jasonwryan | bash/zsh | dwm | vim | rxvt-unicode | tmux | ncmpcpp | personalizado | mutt | irssi
jdevlieghere | zsh | xmonad | vim | terminal | tmux |  | htop | mutt | weechat
jelly | zsh | i3 | vim | termite | tmux | ncmpcpp |  | mutt-kz-git | weechat
Jorengarenar | bash | i3 | vim | xterm |  | mpv | i3blocks | aerc | weechat
maximbaz | zsh | i3-gaps | neovim | alacritty | tmux |  | py3status | thunderbird |
mehalter | zsh | i3-gaps | neovim | termite | tmux | gpymusic | i3blocks, gotop | neomutt | weechat
meskarune | bash | herbstluftwm | vim | rxvt-unicode | screen |  | conky |  | weechat
neersighted | fish | i3 | neovim | alacritty | tmux | ncmpcpp |  |  |
oibind | fish | awesome | neovim | termite |  |  | htop-vim |  | weechat
OK100 | bash | dwm | vim | rxvt-unicode |  | cmus | conky, dzen | mutt | weechat
pablox-cl | zsh (zplug) | gnome3 | neovim | kitty |  |  |  |  |
reisub0 | fish | qtile | neovim | kitty |  | mpd | conky |  |
sistematico | zsh/fish/bash | i3-gaps | vim/nano | termite | tmux | ncmpcpp | polybar | mutt | weechat
sitilge[link inativo 2024-01-13 ⓘ] | zsh | awesome | neovim | termite |  |  |  | thunderbird |
thiagowfx | bash | i3 | vim/emacs | tilix |  |  | i3blocks |  |
unexist | zsh | subtle | vim | rxvt-unicode |  | ncmpcpp |  | mutt | irssi
vodik | zsh | xmonad | vim | termite-git | tmux | ncmpcpp | personalizado | mutt | weechat
w0ng | zsh | dwm | vim | rxvt-unicode | tmux | ncmpcpp | personalizado | mutt | irssi
whitelynx | fish | i3 | neovim | kitty |  |  | i3pystatus |  |
wolfcore | bash | dwm | vim | rxvt-unicode | tmux | cmus | personalizado |  | weechat
zendeavor | zsh | i3 | vim | rxvt-unicode | tmux | ncmpcpp | i3status |  | weechat

## Veja também

- gregswiki:DotFiles
- XMonad Config Archive
- dotshare.it
- dotfiles.github.io
- terminal.sexy - Designer de esquema de cores do terminal

Categories:

- Configuration files (Português)
- Configuration management (Português)

Hidden category:

- Pages with dead links