chezmoi

Table of Contents

1. Chezmoi

1.1. https://www.chezmoi.io/docs/comparison/

1.1.1. I already have a system to manage my dotfiles, why should I use chezmoi?

  • Coping with differences between machines requires extra effort
  • You have to keep your dotfiles repo private
  • You have to maintain your own tool
  • Setting up your dotfiles requires more than one short command

1.1.2. https://www.mikekasberg.com/blog/2021/05/12/my-dotfiles-story.html

Also, over time, you begin to realize that you might want slightly different config on different computers. Maybe there’s a bash alias you only want on your work computer, or maybe there’s a few lines that apply to your macOS machine but not to your Linux computer.

1.1.4. https://github.com/twpayne/chezmoi/issues/170 → chezmoi con submódulos

1.2. Cómo funciona chezmoi

https://www.chezmoi.io/docs/quick-start/

  • <source directory> por defecto ~/.local/share/chezmoi/
  • chezmoi add → copia ~/x a <source directory>/x
  • chezmoi edit ~x → edita <source directory>/x con $EDITOR
  • chezmoi cdcd <source directory>/
  • chezmoi git → ejectua git como si esuviese en <source directory>/. Los argumentos de git van detrás de --
  • chezmoi merge → se tiene que ejecutar desde alacritty a secas, hace un 3-way merge de las modificaciones que hayas hecho
  • chezmoi init <repo> copia los repos
  • chezmoi apply, -n dry-run, -v verbose para ver el diff antes de aplicar

1.5. Mover toda la configuración a un repo de dotfiles   project hold_20230330

1.5.1. Meter lo de búsqueda por tags también para utilizar como argumento general   project hold_20230330 someday_20230330

Esto no se si será más complicado porque ya no es una función que se llama y ya, tiene que insertarse a mitad de un comando
Lo mismo si quito el cd ya me vale para hacer cd (implícito en zsh) y autocompletar lo que sea

1.5.2. Hacer que Tags automáticas de git se ejecute en crontab   project hold_20230330 someday_20230330

1.5.3. Ir probándolo en una máquina virtual   project hold_20230330 someday_20230330

1.5.4. Hacerlo en Makefile   project hold_20230330 someday_20230330

1.5.5. Mover la config a una imagen de disco   project hold_20230330 maybe_20230330

1.5.5.1. Archiso - ArchWiki

1.5.6. DONE Comparar todos los sistemas de config (el de chezmoi resume bastante bien)

1.5.7. DONE Hacer un Dockerfile con mi config de emacs

https://github.com/lytex/doom.d/blob/master/.github/workflows/Dockerfile
Para no tener que instalarla de cero siempre, que tenga cosas como el git instalado y no dependa del del sistema

1.5.8. Hacer un script de bash con la instalación de todas las cosas   hold_20230330 project hold_20230330

1.5.8.1. Solución para instalar emacs con pdf

Pillar los números de línea que definen el apartado pdf, comentarlos con neovim y descomentarlos (o incluso con sed de alguna manera ya llega y es más sencillo ??)
Lo mismo tiene más sentido hacer las cosas igual que en neovim con packer, con algún tipo de salvaguarda que se fija en si está instalado o no

1.5.9. telescope-projects.txt selección visual

'<,'>s%\v([^=]+)(.+)\=16\d+%\1\2={{ output "awk" "-F" "=" "/\1/{print $5}"  "/home/julian/.local/share/nvim/telescope-projects.txt" | trim }}

16\d+ es el matcheo del timestamp que te viene al final

1.6. Chezmoi Programming By Stealth

Está muy bien explicado para n00bs, en formato conversación entre un tío que controla y lo usa y se lo introduce a un n00b que no se imagina por qué alguien va a querer usar esto para empezar
PBS 121 — Managing Dot Files and Intro to Chezmoi
PBS 122 — Managing Dot Files with Chezmoi
PBS 123 — Backing up Dot Files with Chezmoi and Intro to Templating
PBS 124 — Chezmoi Templates
PBS 125 — Chezmoi on Multiple Computers

Author: Julian Lopez Carballal

Created: 2024-10-21 Mon 09:04