Salvete, omnes!https://dlmayhem.prose.sh2022-07-07T04:37:21Z¬(p ∧ ¬p)dlmayhemPost instalación de Devuan (o Debian) GNU/Linux2023-02-17T01:40:18Zhttps://dlmayhem.prose.sh/post<h1 id="el-problema"><a class="anchor" href="#el-problema" rel="nofollow">#</a> El problema</h1>
<p>Dos son los requisitos que debe cumplir mi sistema operativo principal: 1) que sea libre y 2) que sea estable. Debian GNU/Linux cumple maravillosamente con estos criterios, porque 1) es 100% libre (si activas sólo el repositorio <em>main</em>, que es mi caso) y porque 2) es una roca. Así las cosas, hace al menos 16 años que Debian ha sido la distribución de GNU que he corrido en mi máquina de uso diario.</p>
<p>Hasta ayer.</p>
<p>Honestamente, nunca me han importado las evidentes deficiencias de diseño de <em>systemd</em> y, al venir por defecto en Debian, no he tenido mayor problema en usarlo mientras sea software libre. Sin embargo, las últimas noticias que he recibido de sus desarrolladores acercándose al lado oscuro son motivo suficiente para dejar de depender de ese monstruo. Y como no tengo interés en probar nuevas distros para mi máquina de producción, el paso obvio es Devuan GNU+Linux, que como todos sabemos, es Debian sin <em>systemd</em>.</p>
<p>La instalación es tal cual la de Debian, pero en una parte nos pide seleccionar el sistema de inicio de nuestra preferencia. Las opciones son el <code>sysvinit</code> de toda la vida, <code>openrc</code> y <code>runit</code>. Opté por <code>openrc</code> ya que me parece que está bastante bien documentado.</p>
<p>El resto es como sigue.<sup><a id="fnr.1" class="footref" href="#fn.1" rel="nofollow">1</a></sup></p>
<h1 id="de-vuelta-a-la-normalidad"><a class="anchor" href="#de-vuelta-a-la-normalidad" rel="nofollow">#</a> De vuelta a la normalidad</h1>
<p>Siguiendo estos pasos tendremos todo funcionando normalmente en muy poco tiempo.</p>
<h2 id="lo-fundamental"><a class="anchor" href="#lo-fundamental" rel="nofollow">#</a> Lo fundamental</h2>
<p>Instalamos el Editor Único y <code>git</code>.</p>
<pre><code># apt install emacs git
</code></pre>
<h2 id="terror-de"><a class="anchor" href="#terror-de" rel="nofollow">#</a> Terror DE</h2>
<p>Clonamos los repositorios necesarios.</p>
<pre><code>$ mkdir terror-de
$ cd terror-de
$ git clone https://notabug.org/dlmayhem/terror-dwm.git
$ git clone https://notabug.org/dlmayhem/terror-st.git
$ git clone https://notabug.org/dlmayhem/terror-dmenu.git
$ git clone https://notabug.org/dlmayhem/terror-wallpapers.git
</code></pre>
<p>Compilamos.</p>
<pre><code># apt install build-essential libx11-dev libxinerama-dev libxft-dev
# cd terror-dwm
# make clean install
# cd ../terror-st
# make clean install
# cd ../terror-dmenu
# make clean install
$ cd
$ mv terror-de/terror-dwm/xinit .xinitrc
</code></pre>
<p>Instalamos lo necesario para ver la información en la barra de estado de manera adecuada.</p>
<pre><code># apt install x11-xserver-utils fonts-jetbrains-mono acpi alsa-utils
</code></pre>
<h2 id="fondo-de-pantalla"><a class="anchor" href="#fondo-de-pantalla" rel="nofollow">#</a> Fondo de pantalla</h2>
<p>Para fijar nuestro fondo de pantalla instalamos:</p>
<pre><code># apt install xwallpaper
</code></pre>
<p>Y luego añadimos lo siguiente<sup><a id="fnr.2" class="footref" href="#fn.2" rel="nofollow">2</a></sup> en la sección de <em>aplicaciones al inicio</em> de <code>~/.xinitrc</code>:</p>
<pre><code>xwallpaper --output eDP-1 --center ~/terror-de/terror-wallpapers/kepler.png &
</code></pre>
<h2 id="terror-emacs"><a class="anchor" href="#terror-emacs" rel="nofollow">#</a> Terror Emacs</h2>
<p>Clonamos nuestra configuración de Emacs.</p>
<pre><code>$ git clone https://notabug.org/dlmayhem/terror-emacs.git .emacs.d/
</code></pre>
<h2 id="voil-"><a class="anchor" href="#voil-" rel="nofollow">#</a> Voilá !</h2>
<p>Finalmente, arrancamos el servidor gráfico.</p>
<pre><code># apt install xinit
$ startx
</code></pre>
<h1 id="software-adicional"><a class="anchor" href="#software-adicional" rel="nofollow">#</a> Software adicional</h1>
<h2 id="esencial"><a class="anchor" href="#esencial" rel="nofollow">#</a> Esencial</h2>
<p>Estos son los programas que uso/recomiendo para una experiencia completa.</p>
<ul>
<li><strong>Reproductor de audio:</strong> <code>moc</code></li>
<li><strong>Reproductor de video:</strong> <code>mpv</code></li>
<li><strong>Visor de documentos:</strong> <code>zathura</code></li>
<li><strong>Visor de imágenes:</strong> <code>sxiv</code></li>
<li><strong>Capturas de pantalla:</strong> <code>scrot</code></li>
<li><strong>Navegador web:</strong> <code>qutebrowser</code></li>
<li><strong>Editor de video:</strong> <code>ffmpeg</code></li>
<li><strong>Editor de imágenes:</strong> <code>imagemagick</code></li>
</ul>
<p>Instalamos:</p>
<pre><code># apt install moc mpv zathura sxiv scrot qutebrowser ffmpeg imagemagick
</code></pre>
<h2 id="personal"><a class="anchor" href="#personal" rel="nofollow">#</a> Personal</h2>
<p>Software de uso específico que utilizo a diario.<sup><a id="fnr.3" class="footref" href="#fn.3" rel="nofollow">3</a></sup></p>
<ul>
<li><strong>Digital Audio Workstation:</strong> <code>ardour</code></li>
<li><strong>Drumkit:</strong> <code>hydrogen</code></li>
<li><strong>LaTeX:</strong> <code>texlive-full</code> (o <code>texlive-base</code>)</li>
</ul>
<p>Instalamos:</p>
<pre><code># apt install ardour hydrogen texlive-full
</code></pre>
<h2 id="general"><a class="anchor" href="#general" rel="nofollow">#</a> General</h2>
<p>Software de interés general que no utilizo pero puede ser útil.</p>
<ul>
<li><strong>Editor de imágenes:</strong> <code>gimp</code></li>
<li><strong>Editor de videos:</strong> <code>kdenlive</code></li>
<li><strong>Ofimática:</strong> <code>libreoffice</code></li>
<li><strong>Navegador web:</strong> <code>firefox-esr</code></li>
</ul>
<p>Instalamos:</p>
<pre><code># apt install gimp kdenlive libreoffice-gtk libreoffice-writer libreoffice-calc libreoffice-impress firefox
</code></pre>
<h1 id="conclusin"><a class="anchor" href="#conclusin" rel="nofollow">#</a> Conclusión</h1>
<p>En menos de una hora ya tenía mi sistema funcionando como si nada hubiera pasado, con los colores, comandos, atajos y estabilidad de siempre. Todo indica que Devuan llegó para quedarse en mi máquina por muchos años.</p>
<p>Salud.</p>
<h1 id="notas-al-pie-de-pgina"><a class="anchor" href="#notas-al-pie-de-pgina" rel="nofollow">#</a> Notas al pie de página</h1>
<p><sup><a id="fn.1" href="#fnr.1" rel="nofollow">1</a></sup> Obviamente, todo lo que se explica aquí sirve para Debian, que sigue siendo la distro favorita en mi <3.</p>
<p><sup><a id="fn.2" href="#fnr.2" rel="nofollow">2</a></sup> Cambiar <code>eDP-1</code> por lo que corresponda. Se puede averiguar con el comando <code>xrandr</code>.</p>
<p><sup><a id="fn.3" href="#fnr.3" rel="nofollow">3</a></sup> Haremos una entrada más detallada sobre la grabación de audio más adelante.</p>
Instalación del DE y software esencialSobre el cuico2022-09-08T18:36:38Zhttps://dlmayhem.prose.sh/cuicos<p>A propósito de la situación política de Chile, comparto un par de fragmentos que tengo a mano en los que Platón nos da su opinión sobre las clases altas. Esta lista se irá ampliando cuando pueda dedicarle un tiempo. Se utiliza la versión castellana de la editorial Gredos.</p>
<h1 id="551a"><a class="anchor" href="#551a" rel="nofollow">#</a> 551a</h1>
<blockquote>
<p>- Por ende, cuanto más se veneran en un Estado las riquezas y los hombres ricos, en menos se tiene la excelencia y los hombres buenos.<br>
- Es claro.<br>
- Ahora bien, se cultiva lo que siempre se venera, se descuida lo que se tiene en menos.<br>
- Así es.<br>
- Por consiguiente, de hombres que ansiaban imponerse y recibir honores, terminan por convertirse en amigos de la riqueza y del acrecentamiento de ésta; alaban al rico, lo admiran y lo llevan al gobierno, despreciando al pobre.<br>
- De acuerdo.<br></p>
</blockquote>
<h1 id="551b"><a class="anchor" href="#551b" rel="nofollow">#</a> 551b</h1>
<blockquote>
<p>- Entonces implantan por ley los límites del régimen oligárquico, fijando una cantidad de dinero, mayor donde la oligarquía se impone más, menor donde se impone menos, prohibiendo participar del gobierno a aquellos cuya fortuna no llegue a la tasación estipulada. Y esto lo hacen cumplir mediante la fuerza armada, o bien, antes de llegar a eso, instituyen tal constitución mediante el temor. ¿No es así?<br>
- Así, seguramente.<br></p>
</blockquote>
<h1 id="551d"><a class="anchor" href="#551d" rel="nofollow">#</a> 551d</h1>
<blockquote>
<p>- Necesariamente, semejante Estado será doble, no único: el Estado de los pobres y el de los ricos, que conviven en el mismo lugar y conspiran siempre unos contra otros.<br>
- ¡Por Zeus que este defecto no es menor!<br></p>
</blockquote>
<h1 id="552a-b"><a class="anchor" href="#552a-b" rel="nofollow">#</a> 552a-b</h1>
<blockquote>
<p>- Mira ahora si el siguiente no es el más grande de todos los males, y si este régimen no es el primero en admitirlo en sí mismo.<br>
- ¿Cuál?<br>
- El de permitir a uno vender todo lo suyo y a otro adquirirlo, y al que ha vendido vivir en el Estado sin pertenecer a ningún sector del Estado, no siendo negociante ni artesano, caballero ni hoplita, a simple título de pobre e indigente.<br>
- Ciertamente, es el primer régimen al que le sucede esto.<br>
- Pero es que en los Estados oligárquicos nada impide algo de esa índole; de otro modo no serían unos excesivamente ricos y otros absolutamente pobres.</p>
</blockquote>
<h1 id="552e"><a class="anchor" href="#552e" rel="nofollow">#</a> 552e</h1>
<blockquote>
<p>- Pues bien, ¿no ves que en los Estados oligárquicos hay mendigos?<br>
- Casi todos, a excepción de los que gobiernan.<br>
- ¿No pensaremos, entonces, que también hay en tales Estados muchos malhechores que cuentan con aguijón, y a quienes los magistrados se preocupan de contener por la fuerza?<br>
- ¡Claro que lo pensaremos!<br>
- ¿Y no diremos que es por falta de educación, por mala crianza y por la constitución del régimen político por lo que allí surgen tales hombres?<br>
- Lo diremos.<br></p>
</blockquote>
<h1 id="555c-e"><a class="anchor" href="#555c-e" rel="nofollow">#</a> 555c-e</h1>
<blockquote>
<p>- Dado que los gobernantes del Estado Oligárquico son gobernantes por poseer cuantiosos bienes, no estarán dispuestos a poner freno mediante ley a los jóvenes que se vuelvan licenciosos y prohibirles que gasten su patrimonio y se arruinen, sino que les comprarán sus propiedades y les prestarán a interés para llegar así a ser más ricos y tenidos en más.<br></p>
<p>[...]</p>
<p>- Y estos andan en el país sin hacer nada, provistos de aguijón y bien armados, unos cargados de deudas, otros privados de derechos políticos, otros de las dos cosas; y odian y conspiran contra los que poseen patrimonio propio y contra los demás, anhelando una revolución.<br>
- Así es.<br>
- Por su parte los negociantes caminan agachados, haciendo como que no los ven, hieren con el aguijón de su dinero a cualquiera de los demás que se les ofrece, y recogen, multiplicados, los intereses que ha creado el capital, y así hacen que abunde en el Estado tanto el zángano como el mendigo.<br></p>
</blockquote>
<h1 id="556d"><a class="anchor" href="#556d" rel="nofollow">#</a> 556d</h1>
<blockquote>
<p>- Estando así dispuestos, entonces, cuando se encuentran entre sí los gobernantes y los gobernados durante una travesía, o en algún otro tipo de reunión, en una peregrinación religiosa o en una expedición militar, sea como compañeros de nave o camaradas de guerra, o bien al contemplarse unos a otros en los mismos peligros, de ningún modo son los pobres quienes serán menospreciados por los ricos; al contrario, con frecuencia será un hombre pobre, enjuto y asoleado, al estar apostado en la batalla al lado de un rico, criado a la sombra y cargado de carnes superfluas, quien lo vea sin aliento y lleno de dificultades. ¿No piensas que, si esto sucede, el pobre considerará que tales hombres enriquecen debido a la cobardía de los pobres, y que, cuando se reúna con éstos en privado, se transmitirán unos a otros: "estos hombres son nuestros, pues no son de valía alguna"?</p>
</blockquote>
<h1 id="conclusin"><a class="anchor" href="#conclusin" rel="nofollow">#</a> Conclusión</h1>
<p>El cuico siempre ha valido callampa.</p>
El gobierno de los ricos en la República de PlatónDired, el editor de directorios2022-08-11T01:09:06Zhttps://dlmayhem.prose.sh/dired<h1 id="dired"><a class="anchor" href="#dired" rel="nofollow">#</a> Dired</h1>
<p>Dired (DIRectory EDitor) es una excelente herramienta que nos facilita navegar por nuestros directorios y archivos sin tener que salir de Emacs. Básicamente lo que hace es listar (<code>ls</code>) el contenido del directorio que le indiquemos y permitirnos ciertas acciones sobre el mismo.</p>
<h2 id="mi-configuracin"><a class="anchor" href="#mi-configuracin" rel="nofollow">#</a> Mi configuración</h2>
<p>Esta es la configuración que utilizo en mi <em>init.el</em> (requiere <a href="https://github.com/jwiegley/use-package" rel="nofollow">use-package</a>). Puedes ver mi configuración completa <a href="https://notabug.org/dlmayhem/terror-emacs/src/master/init.el" rel="nofollow">acá</a>.</p>
<pre><code>(use-package dired
:ensure nil
:config
(setq dired-recursive-copies 'always)
(setq dired-listing-switches "--group-directories-first -alh"))
</code></pre>
<p>El paquete <a href="https://github.com/mattiasb/dired-hide-dotfiles" rel="nofollow">dired-hide-dotfiles</a> nos permite ignorar los archivos ocultos por defecto. Con <code>.</code> podremos mostrarlos u ocultarlos nuevamente.</p>
<pre><code>(use-package dired-hide-dotfiles
:after dired
:hook (dired-mode . dired-hide-dotfiles-mode)
:config
(define-key dired-mode-map "." #'dired-hide-dotfiles-mode))
</code></pre>
<p>Con <a href="https://github.com/Fuco1/dired-hacks#dired-open" rel="nofollow">dired-open</a> podemos indicarle a Emacs con qué programa deseamos abrir ciertas extensiones específicas:</p>
<pre><code>(use-package dired-open
:after dired
:config
(setq dired-open-extensions '(("mp3" . "mpv")
("mp4" . "mpv")
("mkv" . "mpv")
("png" . "sxiv")
("jpg" . "sxiv")
("jpeg" . "sxiv"))))
</code></pre>
<h2 id="cmo-lanzar-dired"><a class="anchor" href="#cmo-lanzar-dired" rel="nofollow">#</a> Cómo lanzar <em>dired</em></h2>
<p>Estando dentro de Emacs lo podemos invocar con la combinación de teclas <code>C-x d</code> o con el comando <code>M-x dired</code>.</p>
<p>Si queremos abrir una terminal con <code>emacs</code> y <code>dired</code> de una sola vez, podemos asignar un atajo de teclado al siguiente comando:</p>
<pre><code>st -e emacs -nw --execute='(dired "~/")'
</code></pre>
<p>En mi caso, esto abre mi terminal de preferencia (<a href="https://st.suckless.org" rel="nofollow">st</a>) con Emacs y dired en el directorio <em>home</em>. Funciona a la perfección, así que lo uso como navegador de archivos determinado en <a href="https://dwm.suckless.org" rel="nofollow">dwm</a>.</p>
<h2 id="atajos-de-utilidad"><a class="anchor" href="#atajos-de-utilidad" rel="nofollow">#</a> Atajos de utilidad</h2>
<table>
<colgroup>
<col class="org-left"/>
<col class="org-left"/>
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">ATAJO</th>
<th scope="col" class="org-left">ACCIÓN</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">n/p</td>
<td class="org-left">Avanzar/retroceder líneas (también sirven las flechas)</td>
</tr>
<tr>
<td class="org-left">RET</td>
<td class="org-left">Visitar directorio/archivo</td>
</tr>
<tr>
<td class="org-left">o</td>
<td class="org-left">Abrir archivo en otra ventana</td>
</tr>
<tr>
<td class="org-left">+</td>
<td class="org-left">Crear directorio</td>
</tr>
<tr>
<td class="org-left">i</td>
<td class="org-left">Mostrar directorio en la misma ventana</td>
</tr>
<tr>
<td class="org-left">C</td>
<td class="org-left">Copiar archivo a</td>
</tr>
<tr>
<td class="org-left">R</td>
<td class="org-left">Renombrar/mover archivo a</td>
</tr>
<tr>
<td class="org-left">D</td>
<td class="org-left">Borrar archivo</td>
</tr>
<tr>
<td class="org-left">d</td>
<td class="org-left">Seleccionar para borrar</td>
</tr>
<tr>
<td class="org-left">u</td>
<td class="org-left">Deshacer selección</td>
</tr>
<tr>
<td class="org-left">U</td>
<td class="org-left">Deshacer selección a todo</td>
</tr>
<tr>
<td class="org-left">x</td>
<td class="org-left">Ejecutar borrado de selección</td>
</tr>
<tr>
<td class="org-left">M</td>
<td class="org-left"><code>chmod</code></td>
</tr>
<tr>
<td class="org-left">O</td>
<td class="org-left"><code>chown</code></td>
</tr>
<tr>
<td class="org-left">q</td>
<td class="org-left">Cerrar ventana de dired</td>
</tr>
</tbody>
</table>
<h1 id="referencias"><a class="anchor" href="#referencias" rel="nofollow">#</a> Referencias</h1>
<ul>
<li><a href="https://writequit.org/denver-emacs/presentations/2016-05-24-elpy-and-dired.html" rel="nofollow">Resumen más completo de atajos</a></li>
<li><a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html#Dired" rel="nofollow">Dired en el manual oficial de Emacs</a></li>
</ul>
Gestionando archivos y directorios desde EmacsToday we launched hacktivista.com2022-08-02T20:16:20Zhttps://dlmayhem.prose.sh/hacktivista<p>Today we have launched the <a href="https://hacktivista.com" rel="nofollow">Hacktivista.com</a> shop in Chile. We offer encrypted computers compatible with 100% libre GNU/Linux distributions, ideal for hackers, activists, whistleblowers, journalists or anyone looking for privacy, security and freedom.</p>
<p><a href="https://hacktivista.org/anuncios/2022_08_02-hacktivista_com.html" rel="nofollow">Read the announcement</a>.</p>
<p>Our machines are liberated at the firmware level using <a href="https://git.sr.ht/~hacktivista/hackware-boot" rel="nofollow">hackware-boot</a>, a <a href="https://coreboot.org" rel="nofollow">coreboot</a> distribution customised for <a href="https://hacktivista.com" rel="nofollow">hacktivista.com</a>.</p>
<p><a href="https://hacktivista.org/anuncios/2022_08_02-hackware_boot.html" rel="nofollow">Read the hackware-boot release announcement</a>.</p>
<p>Additionally, proprietary hardware (wireless controller) have been replaced by libre ones, ensuring the proper functioning of libre systems like <a href="https://debian.org" rel="nofollow">Debian GNU/Linux</a>, <a href="https://parabola.nu" rel="nofollow">Parabola GNU/Linux-libre</a>, etc.</p>
<p>All documentation and code resulting from this work will always be released under libre or public domain licenses. For more information, please visit the <a href="https://hacktivista.org" rel="nofollow">Hacktivista, escuela de técnica y cultura hacker</a>'s website.</p>
<p>We encourage you to share and cooperate with your community, and to keep your data protected from intruders, companies, governments, etc.</p>
<p>Happy hacking!</p>
Computers compatible with 100% libre GNU/Linux distrosTerror Emacs2022-07-27T02:40:09Zhttps://dlmayhem.prose.sh/terror<p><a href="https://notabug.org/dlmayhem/terror-emacs" rel="nofollow">Terror Emacs</a> is a simple and functional configuration of <a href="https://emacs.org" rel="nofollow">GNU Emacs</a> aimed at academic use, mainly for the creation of technical articles, presentations, notes, literary programming and reproducibility. It allows working with multiple formats (<code>TeX, org, markdown</code>) and exporting to many others (<code>odt, pdf, html, epub</code> and probably any format useful to humans using the power of <a href="https://pandoc.org/" rel="nofollow">Pandoc</a>).</p>
<p>Terror Emacs is not intended as a feature-rich distribution, but as a simple working environment for plain text. However, it can serve as a base for more complex configurations if you have a bit of Emacs Lisp skills. In case you need more functionality, or a straightforward IDE, it is highly recommended to check out the following distributions:</p>
<ul>
<li><a href="https://github.com/hlissner/doom-emacs" rel="nofollow">Doom Emacs</a></li>
<li><a href="https://github.com/seagle0128/.emacs.d" rel="nofollow">Centaur Emacs</a></li>
<li><a href="https://www.spacemacs.org/" rel="nofollow">Spacemacs</a></li>
</ul>
<p>Many ideas have been taken from the System Crafters EFS:</p>
<ul>
<li><a href="https://github.com/daviwil/emacs-from-scratch" rel="nofollow">Emacs From Scratch</a></li>
</ul>
<h1 id="some-features"><a class="anchor" href="#some-features" rel="nofollow">#</a> Some features</h1>
<ul>
<li><a href="https://www.gnu.org/software/auctex/" rel="nofollow">AUCTeX</a></li>
<li><a href="https://orgmode.org/" rel="nofollow">Org Mode</a> / <a href="https://www.orgroam.com/" rel="nofollow">Org-roam</a> / <a href="https://github.com/takaxp/org-tree-slide" rel="nofollow">org-tree-slide</a></li>
<li><a href="https://github.com/jrblevin/markdown-mode" rel="nofollow">Markdown Mode</a></li>
<li><a href="https://github.com/bdarcus/citar" rel="nofollow">Citar</a></li>
<li><a href="https://github.com/fizban007/arxiv-mode" rel="nofollow">arXiv-mode</a></li>
<li><a href="https://github.com/politza/pdf-tools" rel="nofollow">PDF Tools</a></li>
<li><a href="https://github.com/joostkremers/writeroom-mode" rel="nofollow">Writeroom-mode</a></li>
<li><a href="https://magit.vc/" rel="nofollow">Magit</a></li>
<li><a href="https://github.com/joaotavora/yasnippet" rel="nofollow">YASnippet</a></li>
<li><a href="https://github.com/ianyepan/wilmersdorf-emacs-theme" rel="nofollow">Wilmersdorf Theme</a></li>
<li><a href="https://github.com/minad/vertico" rel="nofollow">Vertico</a> / <a href="https://github.com/minad/marginalia" rel="nofollow">Marginalia</a> / <a href="https://github.com/oantolin/orderless" rel="nofollow">Orderless</a> / <a href="https://github.com/oantolin/embark/" rel="nofollow">Embark</a></li>
</ul>
<h1 id="dependencies"><a class="anchor" href="#dependencies" rel="nofollow">#</a> Dependencies</h1>
<ul>
<li><code>Git</code></li>
<li><code>GNU Emacs</code> (27.1+)</li>
<li><code>JetBrains Mono</code></li>
<li><code>PDF Tools</code></li>
</ul>
<p>On Debian GNU/Linux:</p>
<p><code># apt install git emacs fonts-jetbrains-mono elpa-pdf-tools</code></p>
<p>With GNU Guix:</p>
<p><code>$ guix install git emacs font-jetbrains-mono emacs-pdf-tools</code></p>
<h2 id="optional"><a class="anchor" href="#optional" rel="nofollow">#</a> Optional</h2>
<p>The following tools are optional and serve to open files from <code>dired</code>. They can be replaced by any other of preference by changing them in the corresponding section at the end of the <a href="https://notabug.org/dlmayhem/terror-emacs/src/master/init.el" rel="nofollow">config file</a>.</p>
<ul>
<li><code>sxiv</code> (image viewer)</li>
<li><code>mpv</code> (media player)</li>
</ul>
<p>On Debian GNU/Linux:</p>
<p><code># apt install sxiv mpv</code></p>
<p>With GNU Guix:</p>
<p><code>$ guix install sxiv mpv</code></p>
<h1 id="installation"><a class="anchor" href="#installation" rel="nofollow">#</a> Installation</h1>
<p>If any previous Emacs configuration exists, remove or move it:</p>
<p><code>$ mv .emacs.d/ old-emacs-d</code></p>
<p>Clone and rename this repo at <code>~/</code>:</p>
<p><code>$ git clone https://notabug.org/dlmayhem/terror-emacs.git .emacs.d</code></p>
<p>Run Emacs <em>et voilà !</em></p>
<p>Once all the required packages have been installed, all that remains is to run the following command within Emacs:</p>
<p><code>M-x all-the-icons-install-fonts</code></p>
<p><strong>Happy hacking!</strong></p>
A simple Emacs setup for the terror of academic lifeReorganizando mis notas con Emacs y Org Roam2022-07-26T05:09:07Zhttps://dlmayhem.prose.sh/roam<p>Desde hace un tiempo venía cuestionándome el método que he utilizado en los últimos años para tomar notas, apuntes y registrar ideas. Básicamente, consistía en escribir archivos de texto plano utilizando <a href="https://emacs.org" rel="nofollow">GNU Emacs</a> y el glorioso <a href="https://orgmode.org" rel="nofollow">Org Mode</a>, almacenándolos en distintos directorios, clasificándolos según tema, fecha, autor y un sinfín de criterios nada consistentes entre sí. El resultado es que los archivos estaban dispersos por todos lados, muchos ya olvidados en algún rincón, otros repitiendo ideas anteriores y, lo peor de todo, es que estas notas no parecían tener conexión unas con otras.</p>
<p>Fue cuando descubrí el método <a href="https://en.wikipedia.org/wiki/Zettelkasten" rel="nofollow">Zettelkasten</a>. No soy un experto en este método ya que sólo leí un par de introducciones breves y revisé algún video en cierta plataforma privativa, pero me ha bastado para comenzar a reorganizar todo lo que antes era caótico en un sistema coherente de conocimiento. No describiré el método aquí, pero la referencia obligada parece ser <em>How to Take Smart Notes</em>, de Sönke Ahrens.</p>
<p>Inmediatamente me pregunté cómo implementar algo así en Emacs, pero la respuesta llegó antes de terminar la pregunta: <em>seguro que ya existe</em>. Una simple búsqueda me llevó a <a href="https://www.orgroam.com" rel="nofollow">Org Roam</a>.</p>
<h1 id="qu-es-org-roam"><a class="anchor" href="#qu-es-org-roam" rel="nofollow">#</a> ¿Qué es Org Roam?</h1>
<p>Org Roam es una extensión del modo Org que nos permite capturar notas al estilo Zettelkasten con mucha facilidad. En este ejemplo veremos una configuración básica que utiliza <a href="https://github.com/jwiegley/use-package" rel="nofollow">use-package</a> (mi configuración completa de GNU Emacs se puede revisar en <a href="https://notabug.org/dlmayhem/terror-emacs" rel="nofollow">https://notabug.org/dlmayhem/terror-emacs</a>):</p>
<pre><code>(use-package org-roam
:ensure t
:init
(setq org-roam-v2-ack t)
:custom
(org-roam-directory (file-truename "~/Proyectos/org/roam"))
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture)
("C-c n j" . org-roam-dailies-capture-today))
:config
(setq org-roam-node-display-template
(concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-setup)
(require 'org-roam-protocol))
</code></pre>
<p>Esta es una configuración casi por defecto, tomada de la <a href="https://www.orgroam.com/manual.html" rel="nofollow">documentación oficial</a> de Org Roam. Es importante señalar que en la línea <code>(org-roam-directory (file-truename "~/Proyectos/org/roam"))</code> debemos colocar la ruta del directorio en el que almacenaremos nuestras notas. Sí, todas las notas que capturemos con Org Roam se guardan en el mismo directorio, lo que nos facilita enormemente llevarlas a todas partes con un simple <code>git clone ...</code></p>
<p>El fragmento siguiente nos permite utilizar <a href="https://github.com/org-roam/org-roam-ui" rel="nofollow">org-roam-ui</a>, una extensión para visualizar nuestras notas y sus conexiones en un mapa, muy parecido a lo que se puede hacer con el <strong>software privativo</strong> Obsidian.</p>
<pre><code>(use-package org-roam-ui
:defer t
:config
(setq org-roam-ui-sync-theme t))
</code></pre>
<h1 id="cmo-se-usa"><a class="anchor" href="#cmo-se-usa" rel="nofollow">#</a> ¿Cómo se usa?</h1>
<p>Los atajos que utilizaremos son los siguientes:</p>
<ul>
<li><code>C-c n f</code> busca entre nuestras notas. Si la nota no existe, entonces Roam nos permite crearla abriendo un buffer de org-capture con la plantilla y las instrucciones para aquello.</li>
<li><code>C-c n i</code> inserta un enlace en la nota actual a una nota existente en nuestro directorio, o la crea en el caso de que no exista.</li>
<li><code>C-c n j</code> añade una nueva nota y la almacena en un archivo con la fecha actual, que funciona a modo de diario. Esta característica está pensada para las <em>fleeting notes</em> del método Zettelkasten.</li>
<li><code>C-c n l</code> abre un buffer con todos los <em>backlinks</em> de la nota actual, es decir, con todas las instancias en las que ha sido mencionada en otras notas.</li>
<li><code>C-c n g</code> muestra en el navegador un diagrama con nuestras notas y sus conexiones.</li>
</ul>
<p>Esta última característica resulta de mucha ayuda, ya que en ocasiones ver una representación gráfica de los enlaces entre notas nos permite encontrar nuevos nexos entre las mismas. Sin embargo, personalmente prefiero el gráfico que genera la extensión org-roam-ui (segundo fragmento de código de la sección anterior):</p>
<ul>
<li><code>org-roam-ui-mode</code> abre una pestaña en el navegador en <a href="http://localhost:35901/" rel="nofollow">http://localhost:35901/</a> que nos muestra un gráfico interactivo de nuestro segundo cerebro.</li>
</ul>
<p>Recomiendo el excelente video introductorio (en inglés) que hizo <a href="https://www.youtube.com/watch?v=AyhPmypHDEw" rel="nofollow">System Crafters</a> sobre el tema, donde por supuesto se explica todo mucho mejor que acá.</p>
<h1 id="conclusin"><a class="anchor" href="#conclusin" rel="nofollow">#</a> Conclusión</h1>
<p>Como siempre, todo es mejor en texto plano. Y, como siempre, Emacs ya cuenta con la solución para nuestros problemas. De momento me encuentro traspasando todas mis notas anteriores al formato Zettelkasten y me ha resultado tan divertido como útil. Actualmente tomo mis notas más eficientemente y sin preocuparme de trivialidades como la clasificación, los nombres, etc, permitiéndome volver rápidamente a los textos mismos. Todo esto se agradece sobremanera cuando la atención no es una de tus virtudes.</p>
<p>Tal vez más adelante muestre lo que he comentado acá con ejemplos prácticos.</p>
<p><strong>¡Salud!</strong></p>
El método Zettelkasten implementado en elispSalvete, omnes!2022-07-07T05:27:09Zhttps://dlmayhem.prose.sh/salvete<p>Testing <a href="https://prose.sh" rel="nofollow">prose.sh</a>. Definitely a very cool project. I wonder if there will be support for <code>org</code> files in the future, but for now <code>M-x org-md-export-as-markdown</code> is enough for me.</p>