Documentation for fbpanel project
- Building fbpanel
- Running
- Configuring
- Configuration file structure
- Global section
- Plugin section
- Plugins with additional configuration
Building fbpanel
The following is what you will need to compile fbpanel:
- GTK+-2.4 headers and libraries
(development package)
Once you have the above dependancies installed, you are ready to build
fbpanel.
% tar zxvf fbpanel-x.y.tgz #...untar the fbpanel archive
% cd fbpanel-x.y #...cd inside the source tree
% ./configure #...prepare source for compiling
% make #...fbpanel builds...
% su #...become root
% make install #...do install
Running
Simple like that...
% fbpanel & # use default profile
% fbpanel -p abc & # use profile abc, create it if needed
Configuring
fbpanel stores its configurations in
~/.config/fbpanel directory. Every profile
is represented by a single text file with a same name. Name of default profile
is
default. Edit relevant file and restart fbpanel. You can also tell
running fbpanel to reload its configuration by sending it USR1 signal.
% vi ~/.config/fbpanel/default
% killall -USR1 fbpanel # tell fbpanel to reload configuration
In addition, there is configuration GUI that covers all panel's options, but not plugins yet.
To get it, click
Ctrl-Button2 anywhere in panel or run it with
-C option
Configuration file consists from one
Global section, that covers panel
options, and one or more
Plugin sections.
The syntax is following:
- Spaces at the begining and at the end of a line are ignored
- Lines strarting with '#' or blank lines are ignored. '#' in any other place
is NOT treated as comment
- Variable's name is NOT case sensitive
- Variable's value IS case sensitive
- Variable's value is a text from first non-blank char after '=' till the last non-blank char.
- Section starts by its type (Global or Plugin) and "{' on a same line,
then inner variables and sections, and ends with '}' on separate line.
It describes global panel parameters like position, size and some NETWM settings.
If variable has default value, it can be omited.
The full variable list is:
- Edge - screen edge
Legal values are left, right, top or bottom.
Default is bottom.
- Allign - allignment of a panel
Legal values are left, right or center.
Default is center.
- WidthType - units of width
Legal values are
- pixel - width is number of pixels
- percent - width is percent of an edge
- request - follow widgets' size requests. can shrink or grow dynamically
Default is percent.
- Width - panel width in widthtype units
Legal values are numbers.
Default is 100.
- HeightType - units of height
Legal values are
- pixel - height is number of pixels
Default is pixel.
- Height - panel height in heighttype units
Legal values are numbers.
Default is 26.
- Margin - margin from screen edge for left or right allignment.
Legal values are numbers.
Default is 0.
- SetDockType - set panel's NETWM window type to Dock
Legal values are true or false.
Default is true.
- SetPartialStrut - ask NETWM compliant window manager to not cover panel
by maximized windows.
Legal values are true or false.
Default is true.
- Transparent - enable transparent background
Legal values are true or false.
Default is false.
- TintColor - color to composite on root background
Legal values are colors, eg 0xRRGGBB or red, black etc.
Default is white.
- Alpha - transparency of the tint color
Legal values are numbers from 0 to 255.
Default is 127.
- Autohide - hide panel when mouse is far enough
Legal values are true or false.
Default is false.
- RoundCorners - panel has rounded corners
Legal values are true or false.
Default is true.
- RoundCornersRadius - radius of ronded corners.
Legal values are numbers from 0 to 25.
Default is 7.
- Layer - stacking layer of a panel
Legal values are above or below.
Default is above.
- SetLayer - set or not stacking layer of panel. If not, defaul WM policy
is used.
Legal values are true or false.
Default is false.
- MaxElemHeight - maximal height of plugins' lements, like icons, messages etc.
If plugin has more space, it can place elements in multiple rows.
Legal values are numbers from 10 to 200.
Default is 200
For example:
Global {
edge = bottom
allign = center
margin = 0
widthtype = percent
width = 92
height = 48
transparent = true
tintcolor = #ffffff
alpha = 32
setdocktype = true
setpartialstrut = true
autohide = false
heightWhenHidden = 2
roundcorners = false
roundcornersradius = 7
layer = above
setlayer = false
maxelemheight = 24
}
It describes which plugin to load, how to position it and has plugin specific configuration
section. If variable has default value, it can be omited.
The full variable list is:
- type - plugin type
Legal values are battery, cpu, dclock, deskno, deskno2, genmon, icons,
image, launchbar, mem, menu, net, pager, separator, space, systray,
taskbar, tclock, volume, wincmd
Mandatory.
- expand - expand plugin if extra space is available
Legal values are true or false
Default is false
- padding - padding around plugin in pixels
Legal values are numbers
Default is 0
- config - a section with plugin specific configuration.
For example:
Plugin {
type = space
expand = false
padding = 0
config {
size = 2
}
}
Plugin {
type = cpu
}
- color - chart color
Legal values are colors eg 0xRRGGBB or red, black etc.
Default is green.
For example:
Plugin {
type = cpu
config {
Color = green
}
}
- interface - interface to watch
Legal values are network interface names.
Default is eth0.
- TxColor - color of Tx traffic
Legal values are colors.
Default is violet.
- RxColor - color of Rx traffic
Legal values are colors.
Default is blue.
- TxLimit - Tx limit of the connection, in KB/s.
Used to scale chart properly
Legal values are numbers.
Default is 12.
- RxLimit - Rx limit of the connection, in KB/s.
Used to scale chart properly
Legal values are numbers.
Default is 120.
For example:
Plugin {
type = net
config {
interface = eth0
TxLimit = 20
RxLimit = 190
TxColor = violet
RxColor = blue
}
}
Pager
- ShowWallpaper - show desktop wallpaper in pager window or not
Legal values are true or false.
Default is true.
For example:
Plugin {
type = pager
config {
showwallpaper = true
}
}
Space
- size - size of space to occupy in pixels
Legal values are numbers.
Default is 1.
For example:
Plugin {
type = space
config {
size = 15
}
}
Mem
- ShowSwap - show swap usage or not
Legal values are true or false
Default is false.
For example:
Plugin {
type = mem
config {
ShowSwap = true
}
}
dclock
- ShowSeconds - show secondsor not
Legal values are true or false
Default is false.
- HoursView - 24h or 12h hours view
Legal values are 12 or 24
Default is 24.
- TooltipFmt - tooltip content
Legal values are strftime formats
Default is %A %x.
- Action - command to run on mouse click
Legal values are bash commands
Default is none.
- Color - digits color
Legal values are colors, eg 0xRRGGBB or red, black etc.
Default is blue.
For example:
Plugin {
type = dclock
config {
ShowSeconds = false
HoursView = 24
Action = xmessage Please define some command
}
}
tclock
- ClockFmt - Clock format string. May contain strftime conversion
specifications and Pango markup information.
Legal values are strings
Default is "%R".
- TooltipFmt - Tooltip format string. May contain strftime conversion
specifications and Pango markup information.
Legal values are strings
Default is "%A %x".
- Action - command to run on mouse click
Legal values are bash commands
Default is none.
- ShowCalendar - Show a GTK calendar widget when the clock is clicked.
Only valid if Action is unset.
Legal values are true or false
Default is true.
- ShowTooltip - Show tooltip for clock
Legal values are true or false
Default is true.
Plugin {
type = tclock
config {
# 2 line view, time in bold above and date below
ClockFmt = %-l:%M %P
%a %B %-e
TooltipFmt = %A %x
#Action = xmessage Please define some command
ShowCalendar = false
ShowTooltip = true
}
}
Taskbar
For example:
plugin {
type = taskbar
expand = true
config {
ShowIconified = true
ShowMapped = true
ShowAllDesks = false
tooltips = true
IconsOnly = false
MaxTaskWidth = 150
}
}
Launchbar
For example:
plugin {
type = launchbar
expand = false
padding = 0
config {
button {
icon = gnome-terminal
tooltip = Terminal
action = xterm
}
button {
image = /opt/google/chrome/product_logo_48.png
tooltip = Google Chrome
action = google-chrome
}
}
}
Menu
For example:
plugin {
type = menu
config {
icon = start-here
systemmenu {
}
separator {
}
menu {
name = Computer
icon = computer
item {
name = Terminal
icon = terminal
action = x-terminal
}
item {
name = Lock Display
icon = gnome-lockscreen
action = xtrlock2
}
separator {
}
item {
name = Reboot
icon = gnome-session-reboot
action = sudo reboot
}
}
}
}
Icons
For example:
plugin {
type = icons
expand = false
padding = 0
config {
DefaultIcon = /usr/share/fbpanel/images/default.xpm
application {
icon = gnome-terminal
ClassName = XTerm
}
application {
icon = gnome-terminal
ClassName = mlterm
}
application {
icon = gnome-terminal
ClassName = URxvt
}
application {
icon = gnome-emacs
ClassName = Emacs
}
application {
icon = mozilla-firefox
ClassName = Firefox-bin
}
application {
icon = mozilla-firefox
ClassName = Firefox
}
application {
image = /usr/share/icons/yasis/scalable/apps/gnome-ppp.svg
AppName = minicom
}
}
}