UP FOR ADOPTION
Sorry, this is not a new release, but a notice of abandonment. If there is anyone who wants to adopt this window decoration, please let me know. I don't have the time or the skill to extend this as I would like.
BUGS THAT NEED FIXING
1. Compiling. Doesn't compile anymore, and shouldn't require the user to
run 'make -f Makefile.cvs' before './configure'.
2. When moving a shaded window, the window sometimes unshades poorly and
following error occurs:
kwin: X_ConfigureWindow(0x0): BadValue (integer parameter out of range for operation)
To restore and resize the window, there are two options: either maximize the window and then resize it, or right-click on the window while holding down the Alt button and resize the window that way. I believe that this bug is related to the masking operation, but haven't been able to hunt it down yet.
3. The blank bar to the right of the button area does not accept
double-clicks if you want to shade the window. For now, in order to
shade a window, you need to double-click in the title area only.
4. There's an extra black pixel in the lower-left corner, on the outer edge. I think the black line is just draw one pixel too long.
NEAT FEATURES THAT I WOULD LIKE TO SEE
See the second image for mockups of what I have in mind.
1. Tab Bar Placement
The tab bar should alternate sides if you left-click on it while holding down the Alt key. (Or some other reasonable combination--I just chose
Alt+left-click because that's what the B2 decoration uses to move tabs.)
Things to watch out for: as a result of switching sides, the shadows and
light spots change.
2. Buttons on the side
When the window is narrow (like the GIMP's main window), draw the buttons on the side. There should also be an option to disable this, if people don't want it. When in this mode, the left side should also accept double-clicks (for shading), in addition to the tab bar.
3. Buttons on the bottom
Hey, why not?
4. Slim Shady
With this option selected, shaded windows only display the tab bar, not the test of the top bar.
5. Maximum Maximize
There should be an option so that when the window is maximized, the only
border is a one-pixel black border on all sides, with the buttons hanging
down like in the Fitz window decoration. I haven't quite decided if a title should be drawn, but I'm leaning towards "no."
5. (The big one!) Remora Bar
A remora is a fish that attaches itself to large fish with the help of a large sucking disk. The remora bar is much like its animal namesake; it hangs off the bottom of the active window and displays a row of buttons that, when pressed, can call other programs, shell scripts, make dcop calls, you name it. It also can display a text field, which is handy for displaying messages, the current song, etc. I don't know if it's possible for a window decoration
to have dcop hooks so that other programs can call it, but it would be very cool if it could. That way, you could have a script that would be able to display messages in the remora bar.
The height of the ramora bar should be configurable; minimum is 7 pixels high, in the mockup it is 14 pixels. Also in the mockup, I've drawn three button styles: raised button (the first), flat button (the second), and pixmap button (the third). The first two take a black and white image that is the size of the button (here, 14x14), where black is the foreground color and white is the background color. It is possible to change the values of the foreground and background color, but by default the foreground color is black and the background color is the color of the window border. For the raised button, a frame is drawn around it using the frame color's shadow and light
colors. For the pixmap button, the button image is directly imported as is, with no option to change the color.
Between the buttons and the text field is a separator; this is optional and is available as a configuration option.
The text field (the blue area) is configurable for font, font color, and
background color. It should be able to scroll text if the text doesn't fit in
the field provided. The width of the field is also configurable.
Several examples should be included, such as a way to interface with amarok (using dcop calls), an quickstart icon bar to start frequently used programs, and a text field that displays the CPU's temperature and fan speed.
And now, for the old information...
First, a word about Fahrenheit. The theme, like its namesake, is not meant to be the final word in practicality or usability. Think about it: why hasn't the US switched to Celsius, a much more practical and usable temperature scale? It makes much more sense to base a temperature scale around water (since so much of life literally revolves around water). Just what is 0�F and 100�F anyways? It makes no sense at all, other than the inertia of tradition.
Fahrenheit the theme is much the same way, except that it lacks the temperature scale's inertia, but it also looks (in the author's opinion) more visually interesting than the standard square box. Be it the lickable OSX or the crayola WinXP, the fact remains that even by rounding out the corners, most window decorations are hopelessly mired in squareville. Now, there are good reasons for square. Square is usable. Square is practical. Square is comforting and familiar, like a teddy bear that's gotten the stuffing squeezed out of it. But square is also boring, overdone, and, like week-old leftovers, there's only so much you can do with it before you get sick of turkey sandwiches and turkey quiche and turkey omelets and cream of turkey soup.
To relieve my boredom, there's Fahrenheit. That's right, this is about _me_. If you like it, you're more than welcome to use it. If you don't, then forget about it. It's not for you. Go back to squaredom. I don't care. Yes, this violates Fitt's law in obscene and unthinkable ways. The buttons may be too small, but then, I have fine motor control and don't find it a problem in the least. I find it usable; therefore, it is usable for me. It wastes space with all the funky curves and bars. Well, my monitor is 1400x1050, so I've got space to waste.
A straight-forward affair; read the INSTALL file for more details, but the following ought to be enough:
1) make -f Makefile.cvs
(Depending on your system, you may need to add '--prefix=/usr' and if it can't find the location of the Qt libs and includes, those as well. './configure --help' will tell you what you need to know.)
4) (as root) make install
If you have problems compiling, make sure that you have the necessary KDE development files installed. And before complaining that you can't compile, read through the discussions for other KDE 3.2 borders. There is a 99.9% chance that your problem already has a long and glorious precedent set by others.
There are six color settings that you will want to play with in the Control Panel:Appearances & Themes:Colors dialog. These are:
- Active Title Bar
- Inactive Title Bar
- Active Window Frame
- Inactive Window Frame
- Active Window Handle
- Inactive Window Handle
The title bar and window frame colors should be self-evident. Less obviously, however, are the window handle settings. This changes the color of the grip lines in the upper-right hand corner of the frame.
Inspiration: Fahrenheit was inspired by the mock-up screenshots of a hypothetical future BeOS window border, GonX. See the screenshots at http://cotito.free.fr/projects/.
David Johnson on the kwin mailing list was of great help to me while writing this decoration. His Example decoration (http://www.kde-look.org/content/show.php?content=6332) is also a great framework for creating new decorations as well.