My “unified” twitter + identi.ca client

I’ve been on the lookout for a client that would somehow unify my streams from both Twitter & Identi.ca. There’s a few clients that will support one-or-the-other (sometimes via hacking the source) but I’ve found none that scratch my itch of have both services presented in the same window. My taskbar is precious real-estate.

These instructions reflect my setup on an Ubuntu vhost which I ssh into via PuTTY.

Required:

  • Twitter account
  • Identi.ca account
  • TTYtter, a perl command-line client for accessing Twitter-compatible APIs
  • Gnu Screen

Step 1, download TTYtter, make it executable and put it somewhere on your $PATH.

Step 2, create a file at ~/.ttytterrc1 with the following contents, including your identi.ca login:

  url=http://identi.ca/api/statuses/friends_timeline.json
  rurl=http://identi.ca/api/statuses/replies.json
  uurl=http://identi.ca/api/statuses/user_timeline
  wurl=http://identi.ca/api/users/show
  update=http://identi.ca/api/statuses/update.json
  dmurl=http://identi.ca/api/direct_messages.json
  frurl=http://identi.ca/api/friendships/exists.json
  user=[username]:[pass]

Step 3, create another file at ~/.ttytterc2 with just your twitter login:

user=[username]:[pass]

Step 4, create a dedicated screen session with the command screen -S ttytter

Step 5, split the screen horizontally using the screen command Ctrl+a S

Step 6, start your Identi.ca session in the top window with the command ttytter.pl -rc=1

Step 7, switch to the bottom pane with the screen command Ctrl+a TAB

Step 8, create a new window in the bottom pane with the screen command Ctrl+a c

Step 9, start the Twitter session in the bottom pane with the command ttytter.pl -rc=2

Example screenshot

Example screenshot

Only set this up 2 hours ago but already I can tell this is going to work for me long term. Beats having to do hard resets due to some combination of Twhirl and/or my video drivers. One improvement I’d like to investigate is some kind of color highlighting of the ’s to improve readability.

Update: January 13, 2009 at 11:30

So I quickly realized that the above setup has a major malfunction, namely that it doesn’t allow preserving of the split window so it’s not possible to detach and reattach to the ttytter screen session. So there’s an extra trick necessary to do this:

Step 3.5, create an “outer” screen session that wraps the ttytter session with the command screen -e^Ee -S outer.

The -e^Ee option binds the escape key for that session to Ctrl+e instead of the default Ctrl+a. This is a common trick for embedding screen sessions within sessions. With this extra step I can now detach from the outer session using Ctrl+e d and reattach with the inner split-screen session presevered using screen -r outer.

Also, I learned that to colorize the output you can use the -ansi option to ttytter.

Written on January 13, 2009