Project

General

Profile

unexist.dev

/

subtle

Assorted tidbits and projects

Panel » History » Version 20

« Previous - Version 20/21 (diff) - Next » - Current version
Anonymous, 04/18/2011 04:45 PM


Panel\015\012\015\012{{>toc}}\015\012\015\012subtle comes with two panels per screen, one at the top and one at the bottom of the screen. The location of both panels is fix and cannot be changed, the height is determined by the height of the font and the styles. The default config uses the top panel on the first screen only, it's up to the user to enable the bottom panel or disable either one or both.\015\012\015\012Using subtle's panels is no must, foreign panels can also be used as long as they support the WM_STRUT or DOCK window type properties. If this is not the case, subtle can be advised to spare some parts of the screen with the padding style property.\015\012\015\012Styles allow to define different borders, spacings and colors for every item type.\015\012\015\012h2. Item types\015\012\015\012The panels can contain different items and will be hidden when empty.\015\012\015\012Following items are available:\015\012\015\012|_. Items |_. Description |\015\012| :views | List of views with buttons |\015\012| :title | Title of the current active window |\015\012| :tray | Systray icons (Can be used only once) |\015\012| :keychain | Display current chain (Can be used only once) |\015\012| :sublets | Catch-all for installed sublets |\015\012| :sublet | Name of a sublet for direct placement |\015\012| :spacer | Variable spacer (free width / count of spacers) |\015\012| :center | Enclose items with :center to center them |\015\012| :separator | Insert separator |\015\012| icon | Insert an icon (see here) |\015\012\015\012All items except the :tray and :keychain items can be used freely in any combination and multiple times on every panel.\015\012\015\012
{{hide}}\015\012# Panels\015\012screen 1 do\015\012  top    [ :views, :spacer, :title ]\015\012  bottom [ :views, :spacer, :title ]\015\012end\015\012
\015\012\015\012h2. Sublets\015\012\015\012Sublets can either be placed directly by adding the name of the sublet as item name (like :clock) into one of the panels or by using the catch-all item :sublets. The latter will display all unplaced sublets delimited by a separator. If a sublet is placed multiple times on a panel, just the output will be cloned.\015\012\015\012Example:\015\012\015\012
{{hide}}\015\012# Sublets: Direct placement\015\012screen 1 do\015\012  top [ :sublets, :clock ]\015\012end\015\012\015\012# Sublets: Catch-all\015\012screen 1 do\015\012  top [ :sublets ]\015\012end\015\012
\015\012\015\012h2. Icons\015\012\015\012Since r2457 it's possible to add icons directly to the panel, this makes it possible e.g. to use an icon as spacer.\015\012\015\012Example:\015\012\015\012
{{hide}}\015\012icon = Subtlext::Icon.new("/path/to/icon.xbm")\015\012\015\012screen 1 do\015\012  top [ icon, :sublets, icon, :clock ]\015\012end\015\012
\015\012\015\012h2. Alignment\015\012\015\012The alignment inside of a panel can be changed with :spacer and the :center, per default all items are left-aligned.\015\012\015\012h3. Spacer\015\012\015\012Basically, a spacer is just empty space in the panel and it's width is defined by the total free space divided by the amount of total spacers. When using spacers to center something, be aware that this will most likely never be the exact center of the panel. This can be done with the :center item.\015\012\015\012Example:\015\012\015\012
{{hide}}\015\012# Left aligned\015\012screen 1 do\015\012  top [ :views ]\015\012end\015\012\015\012# Right aligned\015\012screen 1 do\015\012  top [ :spacer, :views ]\015\012end\015\012\015\012# Centered\015\012screen 1 do\015\012  top [ :spacer, :views, :spacer ]\015\012end\015\012
\015\012\015\012h3. Center\015\012\015\012Items that are enclosed by two center items will be moved into a special group, that is excluded from the overall alignment of the panel and guaranteed to be in the center of the panel. This group won't affect other items in the panel and spacers inside of it will affect the group only.\015\012\015\012Example:\015\012\015\012
\015\012# Left aligned\015\012screen 1 do\015\012  top [ :views, :center, :title, :center ]\015\012end\015\012\015\012# Right aligned\015\012screen 1 do\015\012  top [ :spacer, :views, :center, :title, :center ]\015\012end\015\012\015\012# Centered\015\012screen 1 do\015\012  top [ :spacer, :views, :spacer, :center, :title, :center ]\015\012end\015\012
\015\012\015\012h2. Examples\015\012\015\012
{{hide}}screen 1 do\015\012  top    [ :views, :title, :spacer, :tray, :sublets ]\015\012  bottom [ ]\015\012end\015\012\015\012screen 1 do\015\012 top    [ :tray, :title, :spacer, :sublets, :spacer, :views ]\015\012 bottom [ :clock, :spacer, :mpd ]\015\012end\015\012