chezmoi
Table of Contents
- 1. Chezmoi
- 1.1. https://www.chezmoi.io/docs/comparison/
- 1.2. Cómo funciona chezmoi
- 1.3. Plantillas
- 1.4. Archivos fuera de $HOME
- 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
- 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.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
- 1.5.8. Hacer un script de bash con la instalación de todas las cosas hold_20230330 project hold_20230330
- 1.5.9. telescope-projects.txt selección visual
- 1.6. Chezmoi Programming By Stealth
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 cd
→cd <source directory>/
chezmoi git
→ ejectuagit
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 hechochezmoi init <repo>
copia los reposchezmoi apply
,-n
dry-run,-v
verbose para ver el diff antes de aplicar
1.3. Plantillas
1.4. Archivos fuera de $HOME
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
https://wiki.archlinux.org/title/archiso
Systemback en Arch
1.5.5.2. systemback
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