Evolution of Appearance's menu


Currently, an end-user can modify the desktop’s color, and some others options, but that remains limited and not necessarily intuitive.

For a desktop more fun and more modern, I think it’s necessary to separate setting of deskbar’s menu and those of windows. Indeed, if you configure deskbar menu with a dark color, it affects automatically the windows menu, and harmonize the two is very difficult.

Is it possible to modify the code to accept two differents settings for menus, one for deskbar and the other for windows (Menu background, Selected menu item background, Menu item text, Selected menu item border), and add the new options in Appearance’s menu ?

Is it possible to make the Deskbar logo’s change easier, with a click button in the appearance preferences ?

How do I set up a new scroll bar or a new decorator ? There are no explication to set up decorator, and the scroll bar’s option is too limited (border with rounded corner, scroll bar button, arrow style, scroll bar color, scroll bar form…) ?


The appearance settings are quite limited and we would prefer it to stay that way. A lot of applications for Haiku use custom controls and drawing code. When everything is customizable, the applications need to be tested in a lot of configurations to make sure they work. So we are careful about not adding too much settings there.

"Advanced" customization is still possible, but requires writing some C++ code. There are two classes handling all the look and some of the feel of Haiku. One is the decorator, which handles all window borders and tabs. The other is BControlLook, which handles all controls.

We have 3 sample alternative decorators hosted at http://cgit.haiku-os.org/haiku/tree/src/add-ons/decorators . They look and feel like well known systems from the 90s. They also give you an idea of the code you would need to write for a new decorator and can be used to test the system.

jam -q BeDecorator
will compile the Be decorator (which looks like the BeOS R5 one). You can then put the add-on in home/config/non-packaged/add-ons/decorators, and then select it in Appearance preferences.

The control look (http://cgit.haiku-os.org/haiku/tree/src/kits/interface/ControlLook.cpp) was not moved to an add-on yet, but that would be possible as well. Replacing this class should be enough to completely customize the drawing of everything (scrollbars, buttons, etc).

Finally, the DeskBar logo is hardcoded and not easily modifiable. It is embedded as a resource in the deskbar executable. It is part of the Haiku identity and we dont want people to change it too easily. Unless they modify the sourcecode to edit it and replace the DeskBar executable.

I try to compile the 3 decorators, and I have the same message :

error: /boot/home/Haiku documents/BeDecorator/Jamfile:26: line too long!

I’m not a PC developper, and I don’t know the C++ code, and the jam compiler.
Line 26 represents a physical line in the source or a logical line in the source, or the line in the compile object ?
Is it possibile to have a compile log (on the screen or in an output file), and for each error, the text source incriminate with the line number in the source instead of the line number only ?


Hi lmassfr!

Did you checkout the complete Haiku source? You’ll have to even when only compiling parts. The guides can help you to set things up.
Also, i think jam doesn’t like file and folder names that contain spaces. Best to avoid them.