Emacs twittering-mode Benachrichtigungen

Wer sich gern von der Arbeit abhalten lässt oder einfach nichts besseres zu tun hat (wie ich), wird sich über die folgenden Zeilen freuen: Der Emacs twittering-mode (den ich hier und hier bereits vorgestellt habe) kann jetzt maximale Aufmerksamkeit fordern. Ich will kurz zwei Wege vorstellen, mit denen man sich über neue Tweets informieren lassen kann.

Emacs Minibuffer

Diese Variante ist eher unaufdringlich: Bei Eingang eines neuen Tweets, wird dieser mit dem Namen der :Timeline und des [Absender] im Minibuffer am unteren Ende des Emacsfensters angezeigt. Folgende Zeilen müssen hierzu in ~/.emacs eingefügt werden,

(add-hook 'twittering-new-tweets-hook (lambda ()
  (dolist (el twittering-new-tweets-statuses)
    (message
      (concat (twittering-timeline-spec-to-string twittering-new-tweets-spec) " ["
        (cdr (assoc 'user-screen-name el)) "] "
	(cdr (assoc 'text el)))))
    ))

was einen, sogenannten hook erzeugt, der beim eintreffen neuer Tweets ausgeführt wird. Das Ergebnis ist im Bild oben zu sehen.

Update: Emacs Modeline  (Danke an @cvmat)

Noch unaufdringlicher ist es, die Anzahl ungelesener Tweets in der Modeline anzeigen zu lassen (siehe Bild oben, tw(46)). Hierzu nach (require 'twittering-mode) folgende Zeile in ~/.emacs einfügen:

(twittering-enable-unread-status-notifier)

Desktop notification

Für echte Desktop notification benötigt man ein Hilfsprogramm. Unter Linux liegt den meisten Distributionen notify-send bei. Ich benutze hier Scientific Linux 6.2, wo man das Paket libnotify aus dem Standardrepository installieren muss. Folgender Code muss ~/.emacs hinzugefügt werden

(add-hook 'twittering-new-tweets-hook (lambda ()
  (let ((n twittering-new-tweets-count))
    (if (> n 10)
	(start-process "twittering-notify" nil "notify-send"
		       "-i" "/home/%USER%/.emacs.d/twittering-mode/misc/twitter-icon.svg"
	  (twittering-timeline-spec-to-string twittering-new-tweets-spec)
	  (format "You have %d new tweets" n ))
      (dolist (el twittering-new-tweets-statuses)
	(start-process "twittering-notify" nil "notify-send"
		       "-i" "/home/%USER%/.emacs.d/twittering-mode/misc/twitter-icon.svg"
	  (concat
	   (twittering-timeline-spec-to-string twittering-new-tweets-spec)
	   "\n"
	   (cdr (assoc 'user-screen-name el)))
	  (cdr (assoc 'text el))))
      ))))

%USER% muss durch den eigenen Benutzernamen ersetzt werden. Die Pfade im Codesnippet setzen voraus, dass die Installation von twittering-Mode nach dieser Anleitung vorgenommen wurde. Für jeden neuen Tweet (in jeder geöffneten Timeline) wird jetzt eine Sprechblase 5s lang auf dem Bildschirm erscheinen. Man kann selbstverständlich auch beide hooks nacheinander ausführen lassen. Wer offengelassene (Lisp-) Klammern findet, kann sie behalten. Und jetzt, frohes Ablenken-lassen.

Kommentar verfassen