## fbpanel
About
Plugins
Screenshots
Docs
Download
Development
| ## 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 structure 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. #### Global section 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
    }
#### Plugin section 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
    }
#### Plugins with additional configuration #### 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
        }
    }
#### Net 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&#xA;%a %B %-e
            TooltipFmt = %A %x
            #Action = xmessage Please define some command
            ShowCalendar = false
            ShowTooltip = true
        }
    }
#### Taskbar TBD For example:
    plugin {
        type = taskbar
        expand = true
        config {
            ShowIconified = true
            ShowMapped = true
            ShowAllDesks = false
            tooltips = true
            IconsOnly = false
            MaxTaskWidth = 150
        }
    }
#### Launchbar TBD 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 TBD 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 TBD 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
            }
        }
    }

Updated on 28-02-2014