My second window frame design. I wanted to make another usable theme, besides Klarth. Someone had asked if it were possible to make themes that have Klarth's usability advantages but a different look. Obviously, the answer is a resounding Yes!

While I was developing Klarth, many people became excited about it and pitched in to help me with UI advice. I appreciate it. But after a while, it seemed people often wanted it to go their direction. I decided to make a theme that was what I wanted, even if it wasn't particularily usable, accessible, or otherwise a picture perfect default.

I decided to reuse most of Klarth's code, since it worked, and it worked well. And so this Klarth derivative was born. At the time, I was enjoying Calculus tremendously as well, so I thought that Derivative would be a good name for this theme.

Klarth was still being a bit slow from time to time, so I decided to make it as simple as possible. I got tired of Klarth's gradients - the look, the code complexity, the performance hit - so I decided to make it flat. I like the OpenStep look - hence the 'Step-like resize bar (which is also easier to implement). Of course, for such a simple theme, I didn't need most of Klarth's imaging code - so I ended up throwing half of Klarth out and rewriting some of the geometry and color code as well.

When I got to my button design, I had to throw simple out the window. I liked the look of the fading copies, but when I designed this, I used The GIMP's Value layer mode - so I had to implement conversions between RGB and HSV in rep code. Not to mention the actual compositing. Note that the Metacity version does this easily without the mess.


Derivative does:

  • resize the entire frame based on the font size (sawfish only)
  • resize the titlebar buttons to fit the titlebar (metacity only)
  • ...since people who need big font sizes probably need everything to be larger.
  • recolor the entire frame to match your GTK+ accent color
  • recolor the text and button icons to contrast with the accent color
  • remove resize handles and maximize button for non-resizable windows
  • offer customizable button positions (sawfish only)
  • alpha-blend the titlebar icon
  • ...instead of leaving ugly rough edges on scaled icons.
  • scale the titlebar icon proportionally (sawfish only?)
  • ...instead of smashing rectangular icons into squares.


Make sure you download the correct version of Derivative - I have implemented it for both Sawfish and Metacity. The two are not compatible. If you run GNOME 2.2, you'll want the Metacity version.

Frequently Asked Questions

  • Why do my titlebar icons look so awful? (sawfish version)

    You need to compile your Sawfish against gdk-pixbuf, not imlib. Run:

    ./configure --help

    in the Sawfish source directory for a list of configuration options.

    Make sure to either package Sawfish properly or uninstall the binaries which came with your system before installing.

    Note that if your sawfish is built for GTK 2, you should not have this problem.
  • Do you have Sawfish packages for ... that use gdk-pixbuf?

    No. Sorry.

  • Why don't you use titlebar buttons that look like buttons?

    Why is the sky blue?

kenneth .:. whitecape : org