Emacs twittering-mode aufhübschen

Hier nur eine kleine Anregung zur Formatierung der Timeline des Emacs twittering-modes: Diese wird über die Variable twittering-status-format kontrolliert. Folgende Zeile in ~/.emacs einfügen und schon wirkt die Timeline aufgeräumter und lesbarer:

(setq twittering-status-format "%i %FACE[bold]{%S} %FACE[shadow]{@%s}\n%FOLD[  ]{%t\n%FACE[shadow]{%RT{Retweeted by @%s} %@}}\n")

%i steht für Avatar-Icon und kann in der Timeline optional mit i ein- und ausgeschaltet werden oder durch setzen von

(setq twittering-icon-mode t)

dauerhaft aktiviert werden. (Ich bevorzuge die Timeline ohne Bilder – siehe Screenshot). Hier noch ein Listing aller Formatierungsanweisungen aus dem Quellcode:

%s - screen_name
%S - name
%i - profile_image
%d - description
%l - location
%L - \" [location]\"
%r - \" sent to user\" (use on direct_messages{,_sent})
%r - \" in reply to user\" (use on other standard timeline)
%R - \" (retweeted by user)\"
%RT{...} - strings rendered only when the tweet is a retweet.
 The braced strings are rendered with the information of the
 retweet itself instead of that of the retweeted original tweet.
 For example, %s for a retweet means who posted the original
 tweet, but %RT{%s} means who retweeted it.
%u - url
%j - user.id
%p - protected?
%c - created_at (raw UTC string)
%C{time-format-str} - created_at (formatted with time-format-str)
%@ - X seconds ago
%T - raw text
%t - text filled as one paragraph
%' - truncated
%FACE[face-name]{...} - strings decorated with the specified face.
%FILL[prefix]{...} - strings filled as a paragraph. The prefix is optional.
You can use any other specifiers in braces.
%FOLD[prefix]{...} - strings folded within the frame width.
 The prefix is optional. This keeps newlines and does not
 squeeze a series of white spaces.
 You can use any other specifiers in braces.
%f - source
%# - id

Emacs twittering-mode

An Twitter-Clients für Linux mangelt es eigentlich nicht. Wer aber schon immer gern einen Command-Line-Client haben wollte, oder beim täglichen arbeiten den Emacs ungern verlässt, dem sei twittering-mode (twmode) empfohlen. Ich will die Installation unter Linux (Scientific Linux 6.2) kurz umreißen (sollte auf dem Mac ähnlich funktionieren; unter Windows muss man auf die mitgelieferten Command-Line-Tools zurückgreifen):

Voraussetzungen:

Als erstes die benötigten Abhängigkeiten (Emacs-23 *lol*, curl, wget, gnutls-utils, openssl, gnupg) installieren. Weiterhin wird ein Webbrowser gebraucht — Auf dem Desktop sicher kein Problem; auf der Konsole empfiehlt sich w3m mit w3m.el. Folgender Befehl installiert die Abhängigkeiten unter RHEL 6

# yum install emacs curl wget gnutls-utils openssl gnupg2

Wenn twittering-mode vom Github-Repository installiert werden soll (was ich empfehle), muss ausserdem Git installiert werden:

# yum install git

Installation

Es empfiehlt sich Emacserweiterungen nach ~/.emacs.d zu installieren, was im folgenden auch beherzigt werden soll.

$ cd ~/.emacs.d
$ git clone git://github.com/hayamiz/twittering-mode.git

Zur Emacs-Konfigurationsdatei ~/.emacs muss folgendes hinzugefügt werden:

(add-to-list 'load-path "~/.emacs.d/twittering-mode")
(require 'twittering-mode)

Jetzt Emacs starten und den Twittering-Mode mit M+x twit[1] starten. TWmode meldet sich mit Authorization via OAuth.

Wer browse-url-generic-program in der Emacskonfiguration gesetzt hat, kann hier y drücken, ansonsten n drücken und den Link unter 1. anklicken oder via Copypaste im Browser der Wahl öffnen. Den angezeigten PIN-Code in den Emacs-Minibuffer eingeben und los geht’s mit Twitter im Emacs:

Dauerhafte Authorisierung:

Um nicht bei jedem Start von twmode erneut gegen Twitter autorisieren zu müssen, kann man folgende Zeilen in die Emacskonfiguration ~/.emacs aufnehmen:

(require 'epa-file)
(epa-file-enable)
(setq twittering-use-master-password t)

Hierzu wird GnuPG und EasyPG benötigt. Zumindest letzteres ist in Emacs 23 standardmäßig integeriert und kann durch die beiden führenden Zeilen im obigen Listing aktiviert werden [Update: Für Emacs 23 werden die zwei führenden Zeilen nicht benötigt — Sie schaden aber auch nicht. Dank an @cvmat]. Der oauth-access-token wird verschlüsselt unter ~/.twittering-mode.gpg gespeichert. Beim Start von twmode fragt pinentry die Passphrase zum Tokenfile ab und erlaubt hiermit die automatische Authorisierung gegen Twitter.

Wichtige Kommandos:

u
Neuer Tweet
d
Neue Direct Message
Enter
Reply
F4
URL Verkürzung via tinyurl
C-c Enter
Retweet mit Zitat
C-u C-c Enter
Retweet
g
Timeline aktualisieren
g
Timeline aktualisieren
f
Timelines durchblättern
V
Beliebige Timeline
L
Timeline beliebiger Liste
C-c C-u
Eigene Timeline
C-c C-f
Following Timeline
C-c C-r
Reply Timeline (Antworten auf eigene Tweets)
C-c C-d
Direct Messages Timeline

C bedeutet Control. Zum Suchen von Begriffen in Tweets öffnet man eine neue Timeline (V) mit :search/SUCHBEGRIFF/.

[1] M+x bedeutet Meta und x gleichzeitig drücken. Meta ist auf PC-Tastaturen meistens auf der Alt und auf Mac-Tastauren auf cmd. In jedem Fall sollte die Tastenfolge Esc, x (nacheinander) funktionieren.