dotfiles (Português)

From ArchWiki
Jump to: navigation, search

Este artigo coleta repositórios de usuários com arquivos de configuração personalizados, comumente conhecidos como dotfiles (que poderia ser traduzido como "arquivos-ponto").

Controle de versão

A gerência de dotfiles com software de controle de versão, como o Git, ajuda a acompanhar as alterações, compartilhar com outras pessoas e sincronizar os dotfiles entre vários hosts.

Usando gitignore

Manter um diretório git dentro da pasta home permite acompanhar diretamente as alterações. Recomenda-se adicionar seletivamente o conteúdo do arquivo ao índice com git-add(1).

Para evitar arquivos não rastreados (aparecerem em commits e removidos por git-clean(1)), primeiro exclua todos os arquivos com gitignore(5):

~/.git/info/exclude
*

Então, use git add -f, por exemplo:

$ git add -f ~/.config/*

e faça commit as alterações com git-commit(1):

$ git commit -a

Outras ferramentas

  • dotdrop — Uma ferramenta para gerenciar diferentes versões de seus dotfiles em hosts diferentes.
https://github.com/deadc0de6/dotdrop || dotdropAUR
  • dotfiles — Uma ferramenta para facilitar o gerenciamento de links simbólicos para seus dotfiles em $HOME, permitindo que você mantenha todos eles em um único diretório.
https://github.com/jbernard/dotfiles || dotfilesAUR
  • dotgit — Uma solução abrangente para gerenciar seus dotfiles.
http://github.com/Cube777/dotgit || dotgitAUR
  • dots — Uma ferramenta portátil para gerenciar um único conjunto de dotfiles de forma organizada.
https://github.com/EvanPurkhiser/dots || dots-managerAUR
  • etckeeper — Destinado a configuração de todo o sistema de controle de versão no /etc. Funciona mantendo o controle de permissões e modos que o software de controle de versão geralmente ignora. Pode usar vários sistemas SCM como backend. Hooks podem autoconfirmar alterações no repositório antes de uma atualização do sistema.
http://etckeeper.branchable.com/ || etckeeper
  • GNU Stow — Pode ser usado para fazer um link simbólico para dotfiles de um repositório para a árvore $HOME. Consulte [1] para mais informações.
http://www.gnu.org/software/stow/ || stow
  • homeshick — Sincronizador de dotfiles git escrito em bash.
https://github.com/andsens/homeshick || homeshick-gitAUR
  • homesick — Seu diretório home é seu castelo. Não deixe seus dotfiles para trás.
https://github.com/technicalpickles/homesick || homesickAUR
  • mackup — Um pequeno utilitário Python para manter as configurações do seu aplicativo em sincronia.
https://github.com/lra/mackup || mackupAUR
  • Pearl — Gerenciador de pacotes para dotfiles, plugins, programas e qualquer forma de código acessível via git. Permite compartilhar e sincronizar pacotes facilmente através de sistemas e tê-los prontos para usar com facilidade.
https://github.com/pearl-core/pearl || pearl-gitAUR
  • rcm — Pode ser usado para fazer link simbólicos para dotfiles de um repositório para árvore $HOME.
https://github.com/thoughtbot/rcm || rcmAUR
  • vcsh — Permite a separação de módulos diferentes (por exemplo, configuração do Emacs vs. configuração de zsh) em repositórios individuais que podem ser mantidos separadamente, ao contrário de manter todos os arquivos de pontos em um único repositório. Funciona apenas com o git.
https://github.com/RichiH/vcsh || vcshAUR
  • yadm — Gerencia arquivos em sistemas usando um único repositório Git. Fornece uma maneira de usar arquivos alternativos em um sistema operacional ou host específico. Fornece um método de criptografar dados confidenciais para que possa ser armazenado com segurança em seu repositório.
https://github.com/TheLocehiliosan/yadm || yadm-gitAUR

Mantendo dotfiles em várias máquinas

Uma forma de manter os dotfiles em várias máquinas em vários hosts, permitindo a personalização por host, é manter um ramo mestre para toda a configuração compartilhada, enquanto cada máquina individual possui uma ramificação específica da máquina com check-out. A configuração específica do host pode ser confirmada na ramificação específica da máquina; como a configuração compartilhada é adicionada ao ramo mestre, as ramos por máquina são então rebaseados no mestre atualizado.

Outra abordagem é colocar configuração específica de máquina em blocos comentados especialmente para usar qualia para descomentá-los automaticamente cada um. Essa abordagem requer um trabalho menos manual e não causa conflitos de mesclagem.

Informação confidencial

Ocasionalmente, o software pode manter senhas de texto simples em arquivos de configuração, em vez de depender de um chaveiro. Nesses casos, git sem qualquer filtro pode ser útil para evitar o commit acidental de informações confidenciais. Por exemplo, o arquivo a seguir atribui um filtro ao arquivo "some-dotfile":

.gitattributes
some-dotfile filter=remove-pass

Sempre que o arquivo "some-dotfile" verificado pelo git, o git invocará o filtro "remove-pass" no arquivo antes de ser verificado. O filtro deve ser definido no arquivo de configuração do git, p. ex.:

.git/config
[filter "remove-pass"]
clean = "sed -e 's/^password=.*/#password=TODO/'"

Repositó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
Ambrevar zsh awesome emacs rxvt-unicode cmus htop/vicious mutt
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
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 irrsi
jdevlieghere zsh xmonad vim terminal tmux htop mutt weechat
jelly zsh i3 vim termite tmux ncmpcpp mutt-kz-git weechat
maximbaz zsh i3-gaps neovim alacritty tmux py3status thunderbird
meskarune bash herbstluftwm vim rxvt-unicode screen conky weechat
neersighted zsh i3 vim rxvt-unicode tmux ncmpcpp htop mutt irssi
OK100 bash dwm vim rxvt-unicode cmus conky, dzen mutt weechat
polyzen zsh i3 vim termite tmux i3status weechat
reisub0 bash awesome neovim termite mpd conky
sistematico zsh/fish/bash i3 Gaps vim/nano termite tmux ncmpcpp polybar mutt weechat
sitilge zsh awesome neovim termite thunderbird
swalladge zsh/bash i3 neovim/vim termite tmux cmus i3pystatus mutt
thiagowfx bash/zsh i3 vim/emacs rxvt-unicode ncmpcpp 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
Wintervenom bash herbstluftwm vim rxvt-unicode screen mpd (mpc-utils) hlwm-dzen2 mutt weechat
wolfcore bash dwm vim rxvt-unicode tmux cmus personalizado weechat
zendeavor zsh i3 vim rxvt-unicode tmux ncmpcpp i3status weechat

Veja também