556 - Los dotfiles, ese pozo sin fondo
Un recurso para #neovim con decenas de #dotfiles y como gestionar tu configuración de forma eficaz en #linux y en otros sistemas operativos
A este episodio del podcast lo iba a titular exactamente pero utilizando la versión anglosajona, Rabbit Hole. Sin embargo, he pasado primero a traducir por madriguera de conejo, para finalmente ponerle el título que le toca, un pozo sin fondo. Y es que si bien, los dotfiles son una auténtica maravilla, porque te permite tener toda tu configuración a salvo, en ocasiones son eso, un pozo sin fondo. Y no me refiero a tus dotfiles, sino a los dotfiles de los demás… Y es que en ocasiones, me encuentro procrastinando revisando la configuración de alguien, para saber que es lo que tiene o lo que no tiene, pero sobre todo, para mejorar mi configuración con las ideas que otros aportan. Y es que realmente este el sentido de los dotfiles, además de mantener a buen recaudo tu configuración.
Los dotfiles, ese pozo sin fondo
Sobre los proyectos de 2024
Un paseo por el pasado
En estos últimas semanas estoy trabajando intensamente en mis archivos de configuración, por dos motivos. El primero es AGS, del que te he hablado en los últimos podcast, y que ahora insistiré de nuevo. La segunda de las razones que tiene que ver con la primera es que he decidido añadir TypeScript a mi caja de herramientas. Si, en los últimos días de 2023 y comienzos del 2024, decidí que necesitaba TypeScript, y eso estoy preparando.
Sobre AGS
Y ¿que tiene que ver esto con mis dotfiles? En el caso de AGS, está claro, porque toda la configuración correspondiente a mi entorno de escritorio, está implementado utilizando este framework, y esto se queda en los dotfiles, de forma que no solo lo pueda implementar fácilmente en mi equipo, sino quien quiera, también lo puede replicar en el suyo.
Aquí no lo estoy haciendo del todo bien, porque estoy basando parcialmente, mas mucho que poco, mi configuración en la del desarrollador del framework, y estoy teniendo algunos conflictos cuando él actualiza. Y lo cierto, es que actualiza con bastante frecuencia.
TypeScript
Dos razones son las que me han empujado a añadir TypeScript a mi caja de herramientas de programación. La primera de ellas ha sido AGS, como te he comentado anteriormente. La segunda de las razones ha sido Rust… Si, como lo oyes.
Si recuerdas, uno de los proyectos que propuse para 2024, y que no ha resultado ganador, al menos por el momento, era una página de inicio para tus servicios Self Hosted. Seguro que conoces alguno como Homer, Dashy, Heimdall, Dashboar y tantos y tantos otros como los que puedes encontrar en Personal Dashboards.
El objetivo de esa página, no solo es que te permita añadir todos tus servicios, sino que además, se pueda conectar al socket de Docker, para que te informe de la situación de cada uno de estos servicios en tiempo real. Esto pensaba hacerlo en Vanilla JavaScript.
Pero no solo esto, también he implementado por ejemplo un servicio para mezclar podcasts de distintas fuentes, y crear un feed único, así como notificar, etc. Esto, igualmente lo hice también en Vanilla JavaScript.
Con tanta frontal, me he dado cuenta, que era necesario hacer algo serio, y dejarme de tonterías. Esto no ha sido una decisión repentina, sino que es algo que llevaba en mente desde hace tiempo. Sin embargo, ha sido Rust y la facilidad que me ofrece para hacer backends, donde he visto la necesidad de buscar un framework que me facilite esto. En concreto, y por el momento, llevo en mente Svelte.
Así, ya sea por Svelte, o cualquier otro framework, y AGS, decidí a finales de año, ponerme con TypeScript, para poder hacer los desarrollos de forma más sólida y confiable.
Todo esto, lo estoy documentado, por el momento en notas, para posteriormente, publicarlo.
Neovim
Llegado a este punto, te estarás preguntando que tiene que ver todo esto con mis dotfiles. Necesitaba un editor para editar aplicaciones en TypeScript, y aunque tenía la opción de ir a Visual Studio Code, me pareció que lo mas sensato era recurrir de nuevo a Neovim.
Pero, llegados a este punto, tenía que modificar la configuración y añadir lo necesario para poder editar TypeScript.
Esto ha hecho necesario añadir algunos complementos adicionales, y personalizar otros de forma que todo sea óptimo.
En este sentido, y aquí es precisamente donde empieza mi Rabbit Hole o mi Pozo sin Fondo, he estado buscando documentación sobre como añadir soporte para TypeScript.
Aquí al igual que sucede con todo lo hay en Internet, me he encontrado con el problema de las versiones. Y es que, efectivamente, en Internet, encuentras de todo, pero, mucho de lo que encuentras está desactualizado, y en lugar de ayudarte, lo que consigue es despistarte.
dotfiles de otros
Una solución interesante para configurar tus propios dotfiles, en concreto los de Neovim, es inspeccionar lo que otros tienen. Esto tiene mucho peligro, porque te puede llevar a configuraciones desactualizadas o que no son compatibles con lo que tu tienes.
Sin embargo, lo que es seguro, es que te permite tener una idea clara de que complementos tienen otros instalados, y alguna idea de como está configurados. En general, los plugin de Neovim están bien documentados, pero en general, adolecen de falta de ejemplos. Y al final, un ejemplo de configuración vale mas que mil palabras.
La cuestión es que durante esta investigación he caído en dotfile.com. Y aquí es donde empezó mi vertiginosa caída en ese pozo sin fondo.
dotfyle
¿Que es dotfyle.com? Se trata de un sitio web donde se recopila información de archivos de configuración de Neovim. Este sitio te permite navegar y buscar por la configuración de decenas de usuarios, y de la misma forma buscar entre esos complementos que utilizan.
De esta forma, te permite saber o conocer, cuales son los complementos mas utilizados, o incluso los complementos mas nuevos o los que están en el trending topic.
De esta navegación he incorporado tres nuevos plugin a mi configuración,
- conform, un plugin para formatear tu código de forma sencilla.
- comment. Con este plugin puedes comentar parte del código con solo un atajo de teclado, o varios.
- neogit. Este plugin te permite gestionar de forma sencilla todas tus operativas de control de versión con tus git.
Como te puedes imaginar, estos son solo tres de los plugins que he probado. En algunos casos, han reemplazado a alguno de los plugin que tenía, y en otros casos, simplemente se han añadido a la configuración.
Esto de mirar los dotfiles de otro es una auténtica locura, y puede llevarte a estar todo un fin de semana, por acotar algo, mirando y mirando y mirando, sin sacar nada en claro.
En el blog has puesto dotfile.com no dotfyle.com
Además de decir «doftyle» y no «dotfyle»
Arreglado muchas gracias
Arreglado, esto también. Muchas gracias. La verdad es que no acerté ni una.
Gracias