emacs

Gnus + Gmail + Offlineimap

En un anterior artículo se ha explicado como tener emacs funcionando con gnus para leer el correo de Gmail. En este artículo daremos un paso adelante: poder leer correo imap desconectados teniendo una copia de todo el correo en local y sincronizarlo de manera eficaz.

Con apt-get install dovecot-imapd instalamos el servidor imap al que accederemos desde gnus. La configuración de dovecot que viene en debian es extensa y consta de muchos ficheros, interesa meter una sola línea:

mail_location = maildir:%h/Maildir

Y lo haremos en el fichero /etc/dovecot/conf.d/10-mail.conf

Offlineimap realizará el trabajo de sincronizar el directorio ~/Maildir con Gmail. Con apt-get install offlineimap instalamos la aplicación en debian/ubuntu. La configuración del fichero ~/.offlineimaprc sería:


[general]
accounts = Gmail
maxsyncaccounts = 1

[Account Gmail]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = IMAP
remotehost = localhost
port = 993
remoteuser = miusuario

[Repository Remote]
type = Gmail
remoteuser = miusuario@gmail.com
remotepass = micontraseña
holdconnectionopen = true
keepalive = 60

Ahora ya se puede lanzar offlineimap, la primera vez lo mejor es hacerlo desde línea de comandos y si llevas años usando gmail es probable que tarde bastante en descargar todo el correo.

Mientras eso ocurre se puede configurar gnus por ejemplo de la siguiente manera:


(setq gnus-select-method
'(nnimap "Mail"
(nnimap-address "localhost")
(nnimap-stream network)
(nnimap-authenticator login)))

Una vez que se ha descargado el correo se puede ver que todo va bien haciendo M-x gnus desde emacs.

Puesto que para tener el correo actualizado es necesario ejecutar offlineimap he creado la siguiente función interactiva para ello:


(defun offlineimap ()
(interactive)
(shell-command "offlineimap&" "*offlineimap*" nil))

Una vez añadida al .emacs y cargada se llama con M-x offlineimap.

Estándar
lisp, software libre

Stumpwm: lisp en el gestor de ventanas

Stumpwm es un gestor de ventanas atilado escrito en common lisp. Esto le hace ser considerablemente más rápido que utilizar gnome, unity o kde. Si lo que sueles hacer la mayor parte de tu tiempo es usar un editor de textos, un navegador y alguna otra aplicación se hace realmente productivo.

Pero empecemos por la instalación en debian/ubuntu basta con:

apt-get install stumpwm

Pero después es necesario crear el fichero /usr/share/xsessions/stumpwm.desktop con el siguiente contenido:

[Desktop Entry]
Encoding=UTF-8
Name=StumpWM
Comment=Tiling Window Manager
Exec=/usr/bin/stumpwm
Icon=
Type=Application

Una vez hecho esto deberíamos poder elegir stumpwm, por ejemplo, en el gdm. Al arrancar stumpwm vemos una pequeña ventana que nos invita a ejecutar C-t ? para conocer los atajos.

Los importantes para empezar son:

  • C-t c: abrir una consola
  • C-t e: abrir el emacs
  • C-t !: ejecutar un comando de consolar
  • C-t C-t: volver a la ventana anterior
  • C-t w: listar las ventanas abiertas
  • C-t 0: ir a la ventana número 0 (con otros números iremos a ventanas distintas)

Para evaluar código lisp se usa C-t :. Así, podemos evaluar:

  • (+ 2 2): evalúa una suma de dos más dos
  • (loadrc): evalúa el fichero .stumpwmrc
  • (quit): sale de la sesión

Mi .stumpwmrc es realmente simple, ya que llevo muy poco tiempo utilizando este entorno, pero puede ser útil para otros principiantes como yo:

(in-package :stumpwm)

(setf *default-package* :stumpwm)

;; Cambio el prefijo C-t por C-z
(set-prefix-key (kbd "C-z"))

;; Creo el comando iceweasel
(defcommand iceweasel () ()
  "Start/Switch to Iceweasel."
  (run-or-raise "iceweasel" '(:class "Iceweasel")))

;; Ahora con C-z C-i iré al iceweasel
(stumpwm:define-key stumpwm:*root-map* (stumpwm:kbd "C-i") "iceweasel")

;; Creo el comando wikipedia
(defcommand wikipedia (search)
  ((:string "Search in Wikipedia for: "))
  "docstring"
  (check-type search string)
  (substitute #\+ #\Space search)
  (run-or-raise 
     (concat "iceweasel http://www.wikipedia.org/wiki/" search) 
     '(:class "Wikipedia")))

;; Arranca el network-manager al iniciar (para conectar vía wifi)
(run-shell-command "nm-applet --sm-disable")

Las cosas que he encontrado útiles de stumpwm son:

  • tener atajos para ir directamente al emacs, ó al navegador independientemente de cuantas ventanas tengo abiertas, no como con Alt+TAB que le tienes que dar unas cuantas veces
  • tener el fichero de configuración en lisp
  • su rapidez, especialmente vital en máquinas lentas

¿A vosotras/os que os parece?

Estándar