Monday, April 7, 2014

Modifying free software

I use the Debian distribution of GNU/Linux on various machines at home and at work. I've been using this distribution since the 1990s, and have been keeping it upgraded over various versions, so my configuration on my laptop has become increasingly customized and comfortable. I'm currently using the squeeze version (with some backports from wheezy). For a graphical user interface, I use XFCE4, version 4.6.2; the latest stable version available through Debian is 4.8. One of the nice things about this version is that it allows me to visually monitor my machine's performance as part of a panel, using a GNOME applet called "system monitor"; this GNOME applet integrates with XFCE via a bridge piece of software called xfapplet.

Note that I'm "one version behind" for both the Debian and XFCE projects. The reason I'm not upgrading either set of software is because the xfapplet bridge that allows me to use GNOME system monitor does not exist in these new versions. I have heard that GNOME has been changed dramatically in its new release (going away from "applets" and using a new paradigm called "indicators"); this may make it difficult for the maintainers of xfapplet to upgrade it to the new versions of GNOME and XFCE.

My solution is to make my own version of the parts of GNOME system monitor that I use. I will start with the excellent xfce4-cpugraph-plugin applet. From there, I intend to make two sets of changes:

  1. Modify xfce4-cpugraph so it shows different colors for each type of CPU used. This will allow a user to tell, at a glance, how much CPU time is spend in the following modes: user, system, nice, IOwait.
  2. Clone the modified xfce4-cpugraph to monitor memory (user, shared, buffer, cached); network (in, out, local); swap space (used/free); system load (moving average); hard disk usage (read, write). Each of the graphs will stand alone as its own plugin, so I'd end up with xfce4-memgraph, xfce4-netgraph, xfce4-swapgraph, xfce4-loadgraph, and xfce4-diskgraph. Users can chose whatever combination of monitors they'd like to install in their xfce4-panel. I may disable the "bars" on the cloned versions of the graphs; I certainly wouldn't be using them.

One caveat: the current plugins are designed to work not only on Linux but on various other operating systems that XFCE works on: FreeBSD, NetBSD, OpenBSD, and Sun/Solaris. I am not going to make the "clone" plugins work on any kernel other than Linux. Also: I plan to modify the upstream code in the XFCE repository, not the Debian package. I may be able to help the Debian maintainer package the projects, if that helps.

Want to help? Please let me know.


Post a Comment