Dotfiles (Español) - ArchWiki

Jump to content

# Dotfiles (Español)

From ArchWiki
Esta traducción de Dotfiles fue revisada el 2021-04-14. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Artículos relacionados

- XDG Base Directory support
- X resources

La configuración de aplicaciones específica del usuario es tradicionalmente almacenada en los llamados dotfiles (archivos en los que su nombre comienza con un punto). Es una práctica común seguir el rastro de los dotfiles con un version control system (Español) como podría ser Git (Español) para seguir el rastro de los cambios y sincronizar dotfiles a través de varios huéspedes (hosts). Hay varias maneras de gestionar sus dotfiles (por ejemplo rastrearlos del directorio home contra almacenarlos en un subdirectorio y hacer un enlace simbólico, copiar o generar archivos con un script de shell o una herramienta dedicada). Ademas de explicar como se gestionan los dotfiles, este artículo también contiene una lista de repositorios dotfile de los usuarios de Arch Linux.

## Rastrear dotfiles directamente con Git

El beneficio de seguir la pista de los dotfiles directamente con Git es que solamente requiere Git y no requiere enlaces simbólicos. La desventaja es que las configuraciones específicas del huésped generalmente requieren fusionar los cambios en múltiples ramas.

La manera más sencilla de conseguir este método es inicializar un repositorio Git directamente en tu directorio home e ignorar todos los archivos por defecto con un patrón gitignore(5) de `*`. Sin embargo este método tiene dos inconvenientes: se puede volver confuso cuando se tienen otros repositorios Git en el directorio home (por ejemplo si olvida inicializar un repositorio de repente opera en los dotfiles de su repositorio) y no se pueden ver fácilmente que archivos no están rastreados en el directorio actual (porque están siendo ignorados).

Un método alternativo que no tiene estos inconvenientes es el "bare repository and alias method" (Repositorio vacío y método de alias) popularizado por este comentario de Hacker News, que solo toma tres órdenes para configurar.

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

Después puede gestionar sus dotfiles con el alias creado. Si está usando Bash y quisiera bash completion (Terminación de Bash) para este alias, simplemente instale bash-complete-aliasAUR, después añada el alias y la siguiente línea a su `~/.bashrc`.

    $ complete -F _complete_alias config

Sugerencia Para evitar accidentalmente hacer commit (consolidar) de información confidencial, véase Git#Filtering confidential information.

## Configuraciones específicas del huésped

Un problema común con la sincronización de dotfiles a través de varias máquinas es la configuración específica del huésped.

Con Git se puede resolver manteniendo una rama maestra para todas las configuraciones compartidas, mientras cada máquina individual tenga una rama específica por máquina controlada. La configuración específica del huésped se puede hacer un commit a la rama específica de la máquina; cuando la configuración compartida es modificada en la rama maestra, las ramas de cada máquina necesitará establecer una nueva base (rebase) sobre la rama maestra actualizada.

En scripts de configuración como archivos de configuración de shell se pueden utilizar condicionales. Por ejemplo, un script de Bash (Español) (es decir `.bashrc`) puede aplicar distintas configuraciones dependiendo del nombre de la máquina (o tipo, variable personalizada, etc.):

    if [[ "$(hostname)" == "archlaptop" ]]; then
        # mandatos específicos de laptop
    else
        # mandatos para pc o servidor
    fi

Algo similar se puede lograr con .Xresources.[1]

Si encuentra que hacer rebase en las ramas Git es demasiado engorroso, probablemente quiera usar una herramienta que soporte file grouping (agrupamiento de archivos) o si desea todavía mayor flexibilidad, una herramienta que haga procesing (procesamiento).

## Herramientas

Agrupamiento de archivos
  Como los archivos de configuración se pueden agrupar en grupos de configuración (también llamados perfiles o paquetes)
Procesamiento
  Algunas herramientas procesan archivos de configuración para permitir que se personalicen dependiendo del huésped.

Nombre | Paquete | Escrito en | Agrupamiento de archivos | Procesamiento
--- | --- | --- | --- | ---
dot-templater | dot-templater-gitAUR | Rust | basado en directorio | sintaxis personalizada
dotter | dotter-rsAUR | Rust | archivo de configuración | Handlebars
dotdrop[enlace roto 2024-01-13] | dotdropAUR | Python | archivo de configuración | Jinja2
dotfiles | dotfilesAUR | Python | No | No
Dots | dots-managerAUR[enlace roto: package not found] | Python | basado en directorio | puntos de adición personalizados
chezmoi | chezmoi | Go | basado en directorio | Go templates
GNU Stow | stow | Perl | directory-based[2] | No
Mackup | mackupAUR | Python | automático por aplicación | No
mir.qualia | mir.qualiaAUR | Python | No | blocks personalizados
rcm | rcmAUR | Perl | basado en directorio (por huésped o tag) | No

## Programas que envuelven a Git

Si está incómodo con Git (Español), ustede querrá usar una de estas herramientas, las cuales abstraen el sistema de control de versión (más o menos).

Nombre | Paquete | Escrito en | Agrupamiento de archivos | Procesamiento
--- | --- | --- | --- | ---
dotbare | dotbareAUR | Shell (fzf) | conforme repositorio | No
dotgit | dotgitAUR | Python | basado en nombre de archivo | No
homeshick | homeshick-gitAUR | Bash | conforme repositorio | No
homesick | – | Ruby | conforme repositorio | No
Pearl | pearl-gitAUR | Python | conforme repositorio | No
vcsh | vcsh | Shell | conforme repositorio | No
yadm(1) | yadm | Python, Shell | basado en nombre de archivo (por clase, SO, hostname & usuario) [3] | Jinja2, Shell (opcional) [4]

1. Soporta la encriptación confidencial de datos con GPG (Español). [5][enlace roto 2024-11-05]

## User repositories

Autor | Shell (Shell framework) | WM / DE | Editor | Terminal | Multiplexer | Audio | Monitor | Mail (Correo) | IRC | Gestor de Archivos
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
alfunx | zsh | awesome | vim | kitty | tmux | ncmpcpp/mpd | htop/lain | thunderbird |  |
altaway | zsh | bspwm | neovim | alacritty | bspwm | mpv | ytop | gnus+message | rcirc | broot
Ambrevar | Eshell | EXWM | Emacs | Emacs (Eshell) | Emacs TRAMP + dtach | EMMS | conky/dzen | mu4e | Circe |
ananthu | zsh | bspwm | neovim | alacritty |  | mpv | htop, polybar | neomutt | weechat | ranger
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 |
benmezger | zsh/bash/fish | i3-gaps[enlace roto 2025-01-19] | emacs[enlace roto 2025-01-19] | rxvt-unicode[enlace roto 2025-01-19] | tmux[enlace roto 2025-01-19] |  | i3status-rs[enlace roto 2025-01-19] | mu4e/neomutt | weechat |
brisbin33 | zsh | xmonad | vim | rxvt-unicode | screen |  | dzen | mutt | irssi |
BVollmerhaus | fish | i3-gaps | kakoune | kitty |  |  | polybar |  |  | ranger
cinelli | zsh | dwm | vim | termite-git |  | pianobar | htop | mutt-kz | weechat |
dikiaap | zsh | i3-gaps | neovim | alacritty | tmux |  | 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 |  |
filiparag | fish | bspwm | vim | alacritty | tmux | mpv, playerctl | htop, polybar | mail-notification |  | pcmanfm[enlace roto 2022-09-17]
gardenapple | fish | Sway | neovim | termite |  |  | htop | aerc |  |
graysky | zsh | xfce4 | vim | terminal |  | ncmpcpp | custom | thunderbird |  |
hugdru[enlace roto 2025-11-16] | 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 | custom | mutt | irssi |
jdevlieghere | zsh | xmonad | vim | terminal | tmux |  | htop | mutt | weechat |
jelly | zsh | i3 | vim | termite | tmux | ncmpcpp |  | mutt-kz-git | weechat |
JonasDe[enlace roto 2022-09-17] | zsh | i3 | vim | rxvt-unicode | tmux |  |  |  |  |
Jorengarenar | bash | i3 | vim | xterm |  | mpv | i3blocks | aerc | weechat |
LukeSmithxyz | zsh | dwm | neovim | st |  | ncmpcpp | dwmblocks | mutt |  | lf
MarkusZoppelt | zsh | gnome | vim | terminal | tmux |  |  |  |  |
maximbaz | zsh | sway | kakoune | kitty |  |  | waybar | neomutt |  | nnn
mehalter | zsh | i3-gaps | neovim | termite | tmux | cmus | gotop | neomutt | weechat | ranger
meskarune | bash | herbstluftwm | vim | rxvt-unicode | screen |  | conky |  | weechat |
neersighted | fish | i3 | neovim | alacritty | tmux | ncmpcpp |  |  |  |
oibind | fish | awesome | neovim | st | tmux |  | htop-vim |  | weechat | lf
OK100 | bash | dwm | vim | rxvt-unicode |  | cmus | conky, dzen | mutt | weechat |
pablox-cl | zsh (zplug) | gnome3 | neovim | kitty |  |  |  |  |  |
peterzuger | zsh | i3-gaps | emacs | rxvt-unicode | screen | moc | htop |  |  |
potamides | bash | awesome | neovim | termite | tmux | ncmpcpp | conky,htop | mutt | weechat | ranger
reisub0 | fish | qtile | neovim | kitty |  | mpd | conky |  |  |
shubhamgupta2956 | zsh | i3-gaps-rounded | vim | terminator |  | cmus | htop, i3blocks, gotop |  |  | ranger, nautilus
sistematico | zsh/fish/bash | i3-gaps | vim/nano | termite | tmux | ncmpcpp | polybar | mutt | weechat |
sitilge[enlace roto 2024-01-13] | zsh | sway | neovim | alacritty |  |  | htop | thunderbird |  |
thiagowfx | bash | i3 | vim/emacs | tilix |  |  | i3blocks |  |  |
vodik | zsh | xmonad | vim | termite-git | tmux | ncmpcpp | custom | mutt | weechat |
w0ng | zsh | dwm | vim | rxvt-unicode | tmux | ncmpcpp | custom | mutt | irssi |
whitelynx | fish | i3 | neovim | kitty |  |  | i3pystatus |  |  |
wolfcore | bash | dwm | vim | rxvt-unicode | tmux | cmus | custom |  | weechat |
zendeavor | zsh | i3 | vim | rxvt-unicode | tmux | ncmpcpp | i3status |  | weechat |

## Recursos adicionales

- gregswiki:DotFiles
- XMonad Config Archive
- dotshare.it
- dotfiles.github.io
- terminal.sexy - Terminal color scheme designer

Categories:

- Configuration files (Español)
- Configuration management (Español)

Hidden categories:

- Pages with dead links
- Pages with broken package links

Dotfiles (Español)
Add topic