A minialistic, lightweight, customizable statusbar (formerly xdbar), inspired by xmobar and dwm's statusbar, for X11 Desktops (wayland in progress), that are compatible with EWMH specifications.
Rendering styled/clickable text, is inspired by xmobar's approach of wrapping text in XML like tags.
Populating statusbar is inspired by dwm statusbar's approach of using the root window's WM_NAME attribute text.
+ - - - - - - - - - - - - - - - - - margin - - - - - - - - - - - - - - - - - +
¦ +------------------------------------------------------------------------+ ¦
¦ | + - - - - - - - - - - - - - - - padding - - - - - - - - - - - - - - -+ | ¦
¦ | ¦stdin WM_NAME¦ | ¦
¦ | +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ¦
¦ +------------------------------------------------------------------------+ ¦
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- margin is the empty space outside of the bar window.
- padding is the space between the bar window edges and the drawing region.
- stdin text is typically provided by the window manager.
- WM_NAME (of the root window) can be set using the
xsetrootcommand.
Setting WM_NAME
#!/bin/bash
while true; do
xsetroot -name "$(whoami)@$(hostname) on $(uname -o) | $(date)"
sleep 1
doneUSAGE: clubar [OPTIONS]...
OPTIONS:
-h, --help print this help message.
-v, --version print version.
-t, --topbar window position (top/bottom edge of the screen).
-c file, --config[=file]
filepath for runtime configs (supports: lua).
-g values, --geometry[=values]
window geometry as 'x,y,width,height' (eg: '0,0,1280,720').
-p values, --padding[=values]
window padding as 'left,right,top,bot' (eg: '0,0,10,10').
-m values, --margin[=values]
window margin as 'left,right,top,bot' (eg: '0,0,10,10').
-f color, --foreground[=color]
set default foreground color.
-b color, --background[=color]
set default background color.
--fonts[=values]
comma seperated fonts (eg: 'arial-10,monospace-10:bold').
SIGNALS:
USR1: toggle window visibility (e.g. pkill -USR1 clubar).
USR2: Reload configurations from external config file without reloading.- free, libre and open source Operating System (currently doesn't support *BSD).
- gnu make
- libx11
- libxft
Optional
- pkg-config (if not installed, update
config.mkaccordingly). - lua (required if using
luaconfigplugin).
Default build
makeBuild with plugins enabled
make PLUGINS="luaconfig xrmconfig ..."Install
sudo make installAvailable Plugins (Note: plugins are just space seperated c filenames, from plugins directory, without file extension, see examples.)
- luaconfig: runtime config support with lua source file.
- xrmconfig: runtime config support with X Resources.
Template for styling text
<Tag:Mod1|Mod2|...|Modn=Value> Text </Tag>
| Tag | Modifiers | Value | Description |
|---|---|---|---|
| Fn | - | Number | Index of 'fonts' array from configs (default: 0) |
| Fg | - | Color | Valid color name |
| Bg | - | Color | Valid color name |
| Box | Left, Right, Top, Bottom | Color:Size | valid color name and size (default: 0) in pixels |
| BtnL | Shift, Ctrl, Super, Alt | Command | Raw command |
| BtnM | Shift, Ctrl, Super, Alt | Command | Raw command |
| BtnR | Shift, Ctrl, Super, Alt | Command | Raw command |
| ScrlU | Shift, Ctrl, Super, Alt | Command | Raw command |
| ScrlD | Shift, Ctrl, Super, Alt | Command | Raw command |
<Fn=1><Fg=#131313> Colored </Fg> text with <Bg=#c6c6c6> background</Bg></Fn>.<Box:Bottom=#ffffff:1> underlined </Box> text.
<Box:Top|Bottom|Left|Right=#ffffff:1> Boxed in </Box> text.<BtnL=systemctl reboot> reboot </BtnL>
<BtnL:Ctrl|Shift=sudo -A reboot now> reboot w/ confirmation </BtnL><ScrlU:Ctrl=amixer sset Master 5%+>
<ScrlD:Ctrl=amixer sset Master 5%->
volume
</ScrlD>
</ScrlU>
