EXWM (Emacs X Window Manager) es un gestor de ventanas ligero y altamente personalizable que permite transformar Emacs, el popular editor de texto, en un entorno de escritorio completo.
A diferencia de otros gestores de ventanas tradicionales, EXWM integra las aplicaciones en los búferes de Emacs, ofreciendo una experiencia fluida y eficiente para aquellos usuarios que ya están familiarizados con este editor.
Al combinar la gestión de ventanas con las poderosas funcionalidades de Emacs, EXWM permite optimizar el flujo de trabajo, reducir el número de configuraciones y proporcionar un entorno de escritorio único y personalizable.
En este artículo, exploraremos cómo instalar y configurar EXWM en Linux, destacando sus características y ventajas principales.
¿Qué es EXWM?
EXWM (Emacs X Window Manager) es un gestor de ventanas ligero que transforma Emacs en un entorno gráfico completo capaz de integrar las aplicaciones con los búferes de Emacs y mejora el flujo de trabajo al combinar la gestión de ventanas con las poderosas capacidades de edición de texto de Emacs.
¿Por qué Usar EXWM?
- Integración con Emacs: Gestiona aplicaciones directamente en los búferes de Emacs.
- Archivos de Configuración Mínimos: Tu archivo
.emacsgestiona tanto la configuración del editor como la del gestor de ventanas. - Ligero y Eficiente: Consume pocos recursos y es muy rápido.
Pasos de Instalación de EXWM
1. Instalar las Herramientas Necesarias
Instala Emacs y sus dependencias:
sudo apt install emacs dbus gnome-settings-daemon
2. Instalar EXWM en Emacs
- Abre Emacs.
- Pulsa
Alt + Xescribepackage-instally presiona Enter. - Escribe
exwmy presiona Enter para instalar EXWM.
Configuración de EXWM
1. Editar el Archivo .emacs
- Abre el búfer de archivos en Emacs (
Ctrl + X>Ctrl + F). - Navega a
~/.emacs. - Añade la siguiente configuración:
(menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) (fringe-mode 1) (setq display-time-default-load-average nil) (display-time-mode t) (icomplete-vertical-mode 1) (exwm-systemtray-mode 1) (require 'exwm) (setq exwm-workspace-number 5) (setq exwm-input-global-keys `( ([?s-r] . exwm-reset) ([?s-w] . exwm-workspace-switch) ([?s-&] . (lambda (command) (interactive (list (read-shell-command "$ "))) (start-process-shell-command command nil command))) ,@(mapcar (lambda (i) `(,(kbd (format "s-%d" i)) . (lambda () (interactive) (exwm-workspace-switch-create ,i)))) (number-sequence 0 9)))) (exwm-enable) - Guarda con
Ctrl + X>Ctrl + S.
2. Crear un Archivo .xsession
Parte 1: Abre o crea el archivo .xsession.
bash
nano ~/.xsession
Parte 2: Añade.
bash
xhost +SI:localuser:$USER
gnome-settings-daemon &
xsetroot -cursor_name left_ptr
xset r rate 200 60
exec dbus-launch --exit-with-session emacs
3. Añadir una Entrada de Escritorio
Crea una entrada de escritorio para EXWM:
sudo nano /usr/share/xsessions/emacs.desktop
Añade:
[Desktop Entry]
Name=Exwm
Exec=emacs
Type=Application
Uso de EXWM
Parte 1: Selecciona Exwm en la pantalla de inicio de sesión (icono de engranaje).
Parte 2: Inicia tu sesión. Usa los atajos de Emacs para gestionar ventanas:
– Ctrl + X > 3: División vertical.
– Ctrl + X > 2: División horizontal.
– Win + Número: Cambiar de espacio de trabajo.
Parte 3: Ejecuta aplicaciones:
– Shift + Win + 7 y escribe el nombre de la aplicación (por ejemplo, firefox).
Personalización
1. Configurar la Resolución de Pantalla
Encuentra el nombre del monitor y las resoluciones disponibles:
xrandr
Configura la resolución (reemplaza MONITOR y RESOLUTION):
xrandr --output MONITOR --mode RESOLUTION
2. Añadir Atajos de Teclado
En el archivo .emacs modifica la sección exwm-input-global-keys:
([?s-q] . alguna-funcion)
3. Configurar Teclas de Paso Directo (Passthrough Keys)
Añade:
(setq exwm-input-prefix-keys
'(?C-x
?C-u
?C-h
?M-x))
Beneficios Clave de Usar Emacs como Entorno de Escritorio en Linux con EXWM
- Reduce la cantidad de archivos y configuraciones en el sistema.
- Gestiona aplicaciones gráficas y de terminal de forma integrada.
- Totalmente personalizable para adaptarse a tus flujos de trabajo.
En definitiva, EXWM es una poderosa herramienta para usuarios avanzados de Linux que deseen integrar completamente Emacs en su experiencia de escritorio.