Configuration

When Screenbar loads, it creates top-level windows called panels. Panels may be either floating windows or appbars. A floating window is defined by specifying an X and Y position, width, and height; an appbar is defined by a specifying an edge of the screen (top, bottom, left, or right), and a thickness. Each panel has a name, which is a prefix for options affecting it. A panel may be duplicated onto multiple monitors based on the (prefix)Monitors setting. Screenbar also uses windows for drag windows (which follow the cursor when performing a drag 'n drop), and for tooltips.

Each Screenbar window has a layout, which is a hierarchy of elements that define what is shown on the panel and how it looks and behaves. Most customization of Screenbar is done by adjusting the layout hierarchy and the options on the elements. Each element has a name, which is used as a prefix for options affecting it. Flow elements are the main way of positioning things; they have other elements as children, and arrange them from left to right or top to bottom. Children of a flow may also be duplicated for each desk or each task; in that case, the duplicated element and its children know which desk or task they belong to. This is called element context. Branch elements switch between one of several children depending on RC variables and on properties of the desk and task in the element context; this is the way to make focused, minimized, and hovered elements look different.

Some elements, such as the system tray, may be drawn and managed by other modules. These are child modules. Modules must specifically support being used as child modules; modules which don't support being used this way will turn themselves into top-level windows, and draw things on the wrong part of the screen.

If there are a lot of tasks and/or desks open, it may happen that there isn't enough space for the entire layout. In that case, Screenbar uses a size fallback list, which names smaller substitutes for elements. Themes should include a size fallback list and test what happens when opening many windows.

Screenbar includes a default configuration, which puts a panel on the bottom edge of each monitor, and includes a layout with effects for focus, minimized and hovered windows and desks, mouse actions and a size fallback list. When creating a theme, you can either make incremental changes to this config, or define your own from scratch. If you're making incremental changes, simply define any variables you wish to change in your theme.rc. If you want to start from scratch, set sbUseDefaultConfig to false.