Compilar Emacs proporciona una mejor experiencia ya que aumenta la velocidad gracias a las optimizaciones de rendimiento y la posibilidad de habilitar la compilación nativa, o compilación Just-In-Time, gracias al flag --with-native-compilation
. Además puedes disponer en tu sistema de la versión más actualizada sin esperar el compilado oficial de tu distribución.
Para lograrlo debes seguir los siguientes pasos para compilar e instalar Emacs en tu equipo. ¡Atención! Esta testeado con la versión de Ubuntu 22.04 y ElementaryOS 7. Tal vez funcione en otras versión e incluso en Debian, pero no lo he experimentado.
1. Desinstalar Emacs
sudo apt remove --autoremove emacs emacs-common
2. Instalar dependencias para la compilación
sudo apt install build-essential autoconf libgtk-3-dev texinfo libxpm-dev libgif-dev libncurses-dev libxml2-dev automake libtool texinfo libjpeg-dev libncurses5-dev libdbus-1-dev libgif-dev libtiff-dev libm17n-dev libpng-dev librsvg2-dev libotf-dev libxml2-dev
3. Instalar libgccjit
Necesitaremos la versión adecuada de libgccjit
. Primero averigua cual es tu versión de gcc
que tienes instalada.
gcc --version
En mi caso dice gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
. En otras palabras, uso la versión 11.3.0
o la versión 11
.
sudo apt install libgccjit-11-dev
4. Instalar libgnutls
Encuentra cual es el paquete para tu versión.
apt-cache search 'libgnutls.*-dev'
En mi caso era libgnutls28-dev
.
sudo apt install libgnutls28-dev
5. Descarga el código fuente
Descargaremos la última versión estable desde el repositorio espejo alojado en GitHub.
wget https://codeload.github.com/emacs-mirror/emacs/zip/refs/heads/master
unzip emacs-master.zip
cd emacs-master/
6. Prepara los archivos para la compilación
./autogen.sh
./configure --with-native-compilation
Opcionalmente he añadido algunos flags extra mejorar la integración con el sistema.
Primero incluye las nuevas dependencias.
sudo apt install mpv libtool-bin libtool cmake imagemagick xclip aspell-es imagemagick libmagickwand-dev libm17n-dev libmagickcore-dev libtree-sitter-dev libjansson4 libjansson-dev
Y luego compila con los siguientes flags.
./configure \
--with-native-compilation \
--with-mailutils \
--with-imagemagick \
--with-cairo \
--with-x-toolkit=gtk3 \
--with-json \
--with-tree-sitter \
--with-xwidgets
7. Compila
make bootstrap -j4
8. Instala
sudo make install
Y ya hemos terminado. Encontrarás el lanzador en tu menú de aplicaciones.
Bonus: Cambiar el color de la ventana en modo dark
Si utilizas un tema oscuro en tu sistema, puede que veas el borde superior de la ventana en un color claro. Para cambiarlo a un color oscuro, puedes añadir el siguiente código en tu archivo de configuración de Emacs.
;; Set default frame color to black
(defun ed/set-new-frame-dark (frame)
"Ensure the given FRAME will be seen as preferring dark theme.
This function only works on X window system."
(when (string= (window-system) "x")
(let ((wid (frame-parameter frame 'outer-window-id)))
(start-process "xprop" nil "xprop" "-id" wid
"-f" "_GTK_THEME_VARIANT" "8u"
"-set" "_GTK_THEME_VARIANT" "dark"))))
(add-hook 'after-make-frame-functions #'ed/set-new-frame-dark)
;; Call it once as the first created frame will not be handled by the
;; previous hook.
(ed/set-new-frame-dark (selected-frame))
{{ comments.length }} comentarios