philwilson.org/blog

Post to Twitter from Ubuntu Deskbar

Deskbar is a Gnome widget you can embed in a panel and can be used for opening applications, opening items from your browser history, doing web searches and all sorts. It's not as good as Quicksilver but better than Launchy. It fires when you hit a key combo (mine is CTRL+SPACE) and looks a bit like this:

Screenshot of Deskbar on Ubuntu

For the soulless, Twitter is length limited asynchronous multicast IM, for everyone else, it's a nice way to keep up to date with what your friends are doing using the web, IM or SMS. My rarely-posted to Twitter page is here.

Lucky for me, Deskbar is easily extendable , and so that's just what I've done. I looked at the Twitter Wiki, found a Python Twitter library downloaded their little icon thing and written a sript to let you post to Twitter from your Deskbar. It looks like this:

Screenshot of Deskbar with Twitter plugin installed

To install:

  1. Install python-twitter
  2. Grab deskbar-twitter.py and twitter.png and put them in ~/.gnome2/deskbar-applet/handlers/
  3. Open your downloaded deskbar-twitter.py in an editor
  4. Replace TWITTER_USERNAME and TWITTER_PASSWORD with your Twitter details
  5. Replace YOUR_USERNAME with your Ubuntu username

It took longer to write this blog post than the code, so patches welcome.

Labels: , ,


12 Comment(s) (add your comment):

# Luis Villa says:

The link to your twitter page is busted.

[And this is a nice hack that might lead to me finally getting a twitter account. Dammit.]

# Phil Wilson says:

Thanks! Fixed!

# Raphael Slinckx says:

Very nice idea !
Using it now.

You can also embed the icon in the python extension, by base64-encoding it and loading at runtime. Also since 2.18 deskbar supports installing by drag and dropping a .py link to the prefs panel and it gets installed automatically. Finally, you should probably add a simple config dialog to store the twitter username and password.

Very nice work !

# Phil Wilson says:

Thanks very much for that Raphael. I had seen other extensions using base64-encoded icons but none of them worked, so I didn't bother ;)

Yes, you're right about the preferences, but I was too lazy :)

# mithras86 says:

I really like your idea to post to twitter with deskbar, but i cannot get python-twitter to work. First by ubuntu doesn't recognize the easy_setup command.

Secondly, i get (after some python traceback calls) the following error rule after I started the python script "setup.py test":
pkg_resources.DistributionNotFound: simplejson>=1.5

What should I do, easy_setup cannot be installed through the repo?

TIA!

# Xlife says:

Really cool, thanks ;)

@mithras86:

Try this:
wget http://peak.telecommunity.com/dist/ez_setup.py

sudo python ez_setup.py

sudo easy_install -U simplejson

That should take care of the dependencies.

Best Regards

# mithras86 says:

Yes, that does the trick, thanks a lot!

Please note you point to the icon "twitter.png", but provided an icon called "deskbar-twitter.png", so you should change one of them to get the icon working.

But furthermore: this is really cool, i'll post it at forums i'm visiting very often!

# Amblin says:

I've put together a more complete twitter plugin for Deskbar. If anyone is interested it's here

# Fred says:

It's telling me that the api.Update() method requires exactly two arguments where I supplied four (?!). Anyone else having this problem?

# Ajnasz says:

Nice work!

A small modification required if you want to use it with ptyhon-twitter 0.4:

@@ -20,8 +20,8 @@ HANDLERS = {
#It simply always displays "Hello World" in the dropdown list.
class TwitterMatch(Match):
def action(self, text=None):
- api = twitter.Api()
- api.PostUpdate('TWITTER_USERNAME', 'TWITTER_PASSWORD', self.name)
+ api = twitter.Api('TWITTER_USERNAME', 'TWITTER_PASSWORD')
+ api.PostUpdate(self.name)
def get_category(self):
return "actions"
def get_verb(self):

# Phil Wilson says:

Excellent, thanks for the patch!

# reda says:

Hi, Thanks a lot for your work.

I don't use Twitter but I like the concept, and your tool is perfect

However, I don't think everybody wants to go through installing that lib (unless there are distro packages),
so I made my own version using only HTTP methods (which are included by default I think)

anyway here is it

http://ubuntuforums.org/showthread.php?t=554874


it's still far from perfect but I tried it and it worked

Again very nice tool, I think I'll give this twitter thing a try :)

Add your comment