Organiza tu .dotfiles con GNU Stow.

Organiza tu .dotfiles con GNU Stow.

Logo

Primero definamos la necesidad de GNU Stow (Stow en lo adelante), si tienes acceso a diferentes equipos, ya sea laptops (Linux o macOS), desktops (Linux o macOS) y servidores Linux (quien usa macOS en servidores?), talves has notado lo incomodo que es tener una configuracion de shell bien customizada pero cuando entras a otro equipo por ssh, hechas de menos todos esos alias y otras utilidades. Stow es la solucion para llevar estas customizaciones a otros entornos *nix.

En mi caso, tengo dos equipos de uso diario, Macbook Pro M1 y un Mac Mini M2. En ambos uso zsh como shell y tengo las mismas customizaciones ya que he instalado los mismos paquetes.

Oh My ZSH! (https://ohmyz.sh/)

Es un framework que maneja las configuraciones que se pueden aplicar a ZSH. Con esta herramienta podemos tener prompts, plugins y temas.

La instalacion es tan sencilla como hacer:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

en la terminal.

Got Plugins?

Esta es la parte mas poderosa de OMZ, la cantidad de plugins que transformaran la forma de usar la shell con toda la informacion proporcionada. Aquí un screenshot tomado del sitio web de OMZ.

robbyrussell

Oh My Zsh theme: half-life

La lista de plugins en: https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins

Ya que tenemos OMZ instalado y configurado, vamos a instalar Stow.

Estos pasos son realizados en macOS.

brew install stow
En Linux, depende la distribucion, seria tan facil como hacer apt install stow.

Espera!

Stow no es un programa para el manejo de dotfiles, sin embargo es un Symlink manager. Es mucho mas facil para iniciar que otros (yadm…).

El procedimiento para inciar el uso de stow es bastante facil, primero creamos un directorio, en mi caso (/Users/ariel/.dotfiles/). Dentro de este directorio creamos subdirectorios con el nombre de la aplicación (package) que queremos manejar con stow.

A screen shot of a computer Description automatically generated

A screenshot of a computer Description automatically generated

Nota: los archivos en los subdirectorios, fueron movidos desde su ubicación original al directorio controlado con stow.

Activamos stow:

  • stow zsh

Este comando lo realizamos dentro de ~/.dotfiles/

Si revisamos en nuestro $HOME, tendremos lo sigueinte:

A black screen with white text Description automatically generated

El proceso para agregar otras configuracones es similar, creamos un subdirectorio con el nombre de la aplicación y colocamos el archivo de configuracion dentro, luego lo activamos con stow.

A todo esto agregamos Git. Podemos colocar nuestro directorio .dotfiles en un repositorio de Git, la idea es replicarlo en las otras maquinas y realizar el proceso de “activacion”.

La idea original de usar Stow viene de un video de Jake Weisler [ https://www.jakewiesler.com/blog/managing-dotfiles#understanding-stow ]

Autor: Ariel Antigua

Automation guy with a love for Containers!