Klarth

clean, functional, good looking

Klarth is probably the first Sawfish theme which actually works. While some people find it rather bland looking, it goes above and beyond most themes in usability and accessibility.

Klarth is also my first sawfish theme. I had implemented another one called Ice before and modified a few others, but I don't really count them. Ice was mostly Seth's code, and entirely Arlo's design. While I started from Crux (everyone has to start somewhere), Klarth has a lot of my own code, and much of John's has been rewritten.

Many people gave me advice and encouragement while I designed and wrote Klarth. Thanks go to them all. I'd especially like to thank Seth, Matthew, John, Jeff, Josh, and the rest of my daily companions from GIMPnet.

Features

Klarth does:

  • resize the titlebar to fit the font size
  • ...instead of cutting it off when your font is too large, or wasting space if it is too small.
  • recolor the entire frame to match your GTK+ colors
  • ...instead of just recoloring an accent color (ala Crux), or not even trying to fit in.
  • (Works for light and dark accents!)
  • recolor the text and button icons to contrast with the accent color
  • ...instead of giving you unreadable white-on-white or black-on-black text.
  • remove resize handles and maximize button for non-resizable windows
  • offer customizable button positions
  • (You can only choose from presets; you will have to add other orders to theme.jl manually.)
  • alpha-blend the titlebar icon
  • ...instead of leaving ugly rough edges on scaled icons.
  • (This requires sawfish compiled with gdk-pixbuf, or metacity.)
  • scale the titlebar icon proportionally
  • ...instead of smashing rectangular icons into squares.

Download

Note: Klarth 2.x requires sawfish to be built against gdk-pixbuf. If your sawfish uses GTK+ 2.x, you should be fine. Otherwise, download Klarth 1.3. Under GNU/Linux, you can check for sure by looking at the output of ldd `which sawfish` - if it mentions Imlib, use 1.3.

If you use Metacity, please download Klarth-MC 0.8.5.

Frequently Asked Questions

Sawfish Version

  • Why doesn't my titlebar have dots like in the screenshot?

    In Klarth 1.x, the dots are turned off by default due to a bug in most sawfish builds. To get them back, simply uncomment the line reading:

    ;; ,@hole-parts

    (To do this, remove the semi-colons.)

    Also, if you are using sawfish for gtk 1, make sure you have sawfish compiled with gdk-pixbuf - otherwise you will only get large magenta areas on your titlebar! This is not a problem with Sawfish for GTK 2. (Technical info: This appears to be a bug in Sawfish's tile-image function when built with imlib, not a Klarth bug.)

    This is not a problem with Klarth 2.x and recent sawfishes.

  • Why don't Klarth's colors update when I change my GTK+ colors?

    This is a bug. I know of one way to fix it, but it would require a large rewrite of Klarth's internals, and I don't like that prospect. I also know another way to fix it, but it's very slow.

    For now, simply change to another theme and back, or run:

    sawfish-client -f restart
  • Why doesn't Klarth's font update when I change Sawfish's default font?

    See the previous question and solution.

  • Why isn't Klarth the default theme?

    Oddly enough, this is actually the second most frequently asked question, aside from Where can I get a copy?. Klarth is not the default mostly because people do not find it as visually appealing as Crux, and because it is slower. Other possible reasons include NIH (Not Invented Here), and the fact that I'm not a graphic designer.

    I don't really care if it is the default or not. I can always switch to it myself. Also, I don't particularily think that Klarth is the ultimate theme ever to be created - I just wanted a theme that worked properly. The code is available - people are free to use it to make better themes. Maybe someone will come up with a beautiful, usable, and accessible theme someday. We'll see.

    Thanks to everyone who likes Klarth enough to ask this.

  • Why aren't Klarth's buttons more button-like?

    Having resize handles in the corners by the buttons is dangerous, because you may accidentally click the button. I know I've hit Close by mistake. It also gives you a larger target to hit with your mouse. Supposedly it even helps with Fitt's Law for maximized windows, though I wasn't thinking of that when I chose this.

    If you don't like it, find/make another theme. I can't please everyone.

  • Why don't you make a theme with Klarth's features, but which looks like Crux?

    It's hard to do this without making the entire frame blurry. Klarth renders almost the entire frame in code, not by using static pixmaps like most themes. This way I can render the pieces at any size I like.

    For what it's worth, I have made a Crux ripoff. You can see a screenshot. A quick feature list:

    • Slower than sludge
    • Buggier than an ant hive
    • Missing various frame pieces
    • Doesn't quite even look like Crux

    I don't expect to finish it. To anyone who has seen the source code for rendering the stairstep pattern (or any other part): I'm sorry. ;)

Metacity Version

  • Why does the titlebar get wider when I shade certain windows?
  • As of 2.4.55, Metacity doesn't allow me to draw non-resizable windows differently when they are shaded. So when you shade a non-resizable window, the titlebar will grow to the size of a normal window's titlebar - to include space for the left and right resize bars.

    See Metacity Bug 114304. It seems Havoc is planning to make a bunch of theme format related changes at once, and then make metacity use a metacity-2/ format, falling back to metacity-1. This way new themes won't break older metacities, which is a good thing.

    When bug 114304 is fixed, I can make a new release which doesn't shed the resize handles for old metacities (metacity-1 format), but does so properly for newer metacities which use the metacity-2 format.

  • Why does...?
  • It's probably a bug. Let me know about it!

kenneth .:. whitecape : org