Ubuntu / Linux news and application reviews.


ubuntu gtk-desktop-info

gtk-desktop-info is a python tool to display various pieces of information directly on the desktop, using plugins for html rendering, with html templates and css style sheets for formatting.

The application has been created off the back of existing python scripts used with Conky. The reason for it's creation is a simple one, Conky is great but formatting can suck sometimes and html seemed the obvious choice of formatting giving the user the ability to construct output in a variety of styles based on understood techniques.

General points to note about the app are:
  • Very lightweight and low cpu usage
  • Creates cropped images of the background wallpaper and uses them for the generated html background, effectively making the window transparent.
  • Utilises webkit html rendering engine and supports images, javascript and flash as you would expect in the browser
  • Ability to customise any output within the boundaries of what can be done with html, and as it's html there are plenty of editors out there which can help with design
  • All output content is scrollable, so the window size remains unchanged. Using the scroll wheel on a mouse will alway you to see the extra content
  • Variety of plugins available and you also have the ability to use external scripts for rendering content too


Plugins

All the plugins have come from my conky tinkering of the past, and have been adapted to output html based information, including weather/moon/wind icons for forecasts, and coverart for music. Plugins are defined using the –plugin option of the main application.

Below is a summary of each plugin.
  • “deluge” – this plugin provides a breakdown of bit torrent information, when bit torrents are managed by Deluge. It can provide detailed and/or summary info.
  • “email” - this plugin provides email account information, a count of unread emails and optionally details of the sender and subject of the emails.
  • “exaile” - this plugin displays Exaile based song information, cover art, rating, progress etc
  • “feedparser” - this plugin provides rss/atom feed information
  • “forecast” - this plugin provides weather forecast information from weather.com for a given location. It includes weather, moon and wind images, detailing the weather.
  • “googlecalendar” - this plugin provides Google Calendar event information.
  • “null” - this plugin provides a means to use html, javascript and flash only content. By default is displays a javascript clock.
  • “pidgin” - this plugin provides pidgin buddy information, telling you who is online and what their status is.
  • “rhythmbox” - this plugin displays Rhythmbox based song information, cover art, rating, progress etc
  • “shell” - this plugin provides a means to execute scripts and commands from within a template. Whatever can be done on the command line can be done here too.
  • “tomboy” - this plugin provides information on Tomboy based notes, keeping most formatting from the notes intact in the output.

Note: The shell plugin will provide the equivalent functional to that used with exec/execi calls in Conky. The big difference however, is that it sources all the results from execs inside [] from within a template file, meaning that formatting of command line results is much simpler and neater. A lyrics scripts would work nicely in it for example

Current Limitations

Compiz wallpaper settings are not supported yet, however gnome, xfce, kde3, and kde4 are.

If tiling or simple background colours are used, the application will no handle these well.

I am attempting to find a better way to handle system wallpaper, independently from the window manager type, so that the only thing this application will be dependant on is gtk, webkit and python libraries. However this may be some time off. If you have issues with wallpapers and the fake transparency is not working, I suggest you use the –wallpaper option, as described in the guide.




Basic Install

Method 1: Using apt

1) Create the necessary list file for access to the repository by running one of these:

Jaunty Jackalope:
sudo wget -q http://www.kaivalagi.com/ubuntu/ppa/m-buck-gtk-desktop-info-jaunty.list -O /etc/apt/sources.list.d/m-buck-gtk-desktop-info-jaunty.list

Intrepid Ibex:
sudo wget -q http://www.kaivalagi.com/ubuntu/ppa/m-buck-gtk-desktop-info-intrepid.list -O /etc/apt/sources.list.d/m-buck-gtk-desktop-info-intrepid.list

2) Add the gtk-desktop-info repository public key to your apt setup by running this:
wget -q http://www.kaivalagi.com/ubuntu/ppa/m-buck-gtk-desktop-info-key.gpg -O- | sudo apt-key add -

3) Now that is done simply run the following to install
sudo apt-get update && sudo apt-get install gtk-desktop-info

Method 2: Using tar.gz file

Only go this route if you know what you're doing, you are not likely to get much help if you get stuck!

1) Go to https://launchpad.net/~m-buck/+archive/gtk-desktop-info and download the latest tar.gz files for gtk-desktop-info and gtk-desktop-info-data packages.

2) Extract all the contents of the tar.gz files to an appropriate folder of your choice, the default location is /usr/share/gtk-desktop-info

3) Copy the gtk-desktop-info and gtk-desktop-info.guide script files to /usr/bin, edit them to point to the folder you extracted everything to, and make them executable

There are several dependencies for the app to run, these are:
  • Python Google GData API
  • Python PyWebKitGtk libraries
  • Python Imaging library
  • Python Xlib Libraries
Unless you are using a non-Debian based OS I don't suggest this. Users of Debian/Ubuntu flavour OS's should ideally use the first method as all dependencies will be handled. You will not receive updates using this method either.

Any further details on setup are orientated around the deb package based install, so may differ from what you choose your setup to be, if done using the tarball.


Usage Help

Refer to the attached guide for a detailed explanation of the application, along with information on the command line usage etc. The guide is also available within the install, it can be opened by running the following (evince is expected to be installed):
gtk-desktop-info.guide

You can also see the available options by running this in a terminal:
gtk-desktop-info -h

Development History

Development history going forwards can be seen here https://code.launchpad.net/~m-buck/+...k-desktop-info

And details on the packages available from me can be found here https://launchpad.net/~m-buck#ppas

Here is a more detailed guide in case there is something you do not understend in the above guide:



Credit for this goes to kaivalagi user @ ubuntuforums.org.