# sxbar configuration # Format: key : value # Colours accept hex (#rrggbb) or X colour names # Global settings show_version : true version_text : sxbar ver. 1.1 # Appearance height : 20 bottom_bar : false # secondary_bar: adds a second, modules-only bar on the edge opposite # `bottom_bar` (no workspace switcher, no version text). Tag which modules # go on it further down with `bar : module_name : secondary` -- everything # else stays on the primary bar. See that section below for details. secondary_bar : false vertical_padding : 0 horizontal_padding : 0 text_padding : 5 border : false border_width : 1 # Note: unlike the per-module `colour` directive and most other keys # below, these three don't support a trailing "# comment" on the same # line -- put comments on their own line instead. background_colour : #000000 foreground_colour : #7abccd border_colour : #005577 # Xft font name format: "FamilyName:size=N[:style=Bold]" # For Nerd Font symbols use your Nerd Font family name, e.g.: # font : JetBrainsMonoNerdFont:size=10 # font : Hack Nerd Font:size=10 font : monospace:size=8 # Workspace icons -- replaces a workspace's displayed label (its # _NET_DESKTOP_NAMES string, as reported by your WM -- typically plain # numbers like "1", "2", "3") with different text instead, e.g. a Nerd # Font glyph. Needs a Nerd Font set via `font` above to render glyphs. # Purely cosmetic -- the underlying workspace name/number your WM uses # for switching is unaffected, only what's drawn on the pill changes. # workspace_icon : name : "icon text" # # Example (only meaningful with a Nerd Font -- pick glyphs from your # font's cheat sheet, e.g. https://www.nerdfonts.com/cheat-sheet): # workspace_icon : 1 : "" # globe # workspace_icon : 2 : "" # terminal # workspace_icon : 3 : "" # code # Modules -- any name works here, not just the ones listed below. A # module's command is resolved by name: your own script at # ~/.config/sxbar/scripts/.sh wins if it exists, else the reference # copy `make install` places at $(PREFIX)/share/sxbar/scripts/.sh, # else the module is a silent no-op. There's no separate "custom module" # directive -- a module you write yourself is exactly as first-class as # one sxbar ships a script for; both are just a script in scripts/, # referenced the same way: # # module : name : enabled : refresh_interval_seconds # # The modules below are the ones sxbar ships a script for out of the box # (scripts/clock.sh, scripts/date.sh, ...; see "Reference scripts" in the # wiki for the full list). Each also self-declares its own popup (if it # has one) straight from its script -- see the `menu` subcommand note # under "Floating popups" further down. # clock/date: hover over either to reveal an "Open calendar" shortcut (needs gsimplecal) module : clock : true : 1 module : date : true : 60 # battery: hover over it for detailed status + a power-saver toggle (needs upower, power-profiles-daemon) module : battery : false : 30 # volume: hover over it to reveal a slider (needs wpctl) module : volume : true : 5 # cpu: hover over it to see more detail (cpu, memory, per-core load) in a popup module : cpu : false : 3 # brightness: hover over it to reveal a slider (needs brightnessctl) module : brightness : false : 5 # bluetooth: hover over it to reveal a floating menu (needs bluetoothctl) module : bluetooth : false : 10 # usermenu: hover over it to reveal a floating sleep/log out/shut down menu module : usermenu : true : 300 # network: hover over it to reveal a floating menu showing WiFi/Ethernet + IPs (needs ip) module : network : false : 10 # media: hover over it to reveal album art + Previous/Play-Pause/Next (needs playerctl; curl for remote art) module : media : false : 2 # taskbar: NOT like other modules -- renders one clickable segment per # window on the current workspace directly in the bar (see "Taskbar" # further down), instead of a single line of text. Needs wmctrl, and a # window manager that acts on _NET_ACTIVE_WINDOW client messages to # actually focus what you click. module : taskbar : false : 1 # Your own modules -- write a script, drop it in ~/.config/sxbar/scripts/ # as .sh (executable), then enable it exactly like any module above: # # module : temp : true : 5 # # ...with ~/.config/sxbar/scripts/temp.sh being e.g.: # #!/bin/sh # sensors | grep 'Package' | awk '{print $4}' # # Two ready-made examples ship in scripts/ to copy from: # # module : startmenu : true : 3600 # your favorites as popup buttons -- # # edit the popup_item lines in # # startmenu.sh itself to customize # module : demo_menu : true : 999 # one of every popup row type, see # # "Floating popups" further down # Prefix / icon — text prepended to a module's output (works for any # module, by name). Needs a Nerd Font set via `font` above to render icon # glyphs correctly. # prefix : module_name : "icon text" # (icon : ... is accepted as an alias for prefix) # # Examples: # prefix : clock : " " # prefix : date : " " # prefix : battery : " " # prefix : volume : " " # prefix : cpu : " " # prefix : brightness : " " # prefix : bluetooth : " " # prefix : usermenu : " " # prefix : network : " " # Prefix command -- like `prefix`, but the icon comes from an external # script instead of fixed text, so it can change with module state (e.g. # battery charging vs discharging, volume muted vs not). The script's own # stdout (trailing newline stripped) becomes the prefix; it is re-run on # the module's normal refresh_interval, and it must include its own # trailing space/separator if you want one before the value. # The module's current output (e.g. "83%") is passed in as $1, since the # built-in module commands don't expose state like charging/muted beyond # that string -- scripts that need it re-check the system themselves. # prefix_cmd : module_name : "command or script path" # (icon_cmd : ... is accepted as an alias for prefix_cmd) # # Examples: # prefix_cmd : battery : "~/.config/sxbar/scripts/battery_icon.sh" # prefix_cmd : volume : "~/.config/sxbar/scripts/volume_icon.sh" # # Reference copies of these two scripts ship in this repo's scripts/ dir # and are installed to $(PREFIX)/share/sxbar/scripts/ -- copy them to # ~/.config/sxbar/scripts/ (the path above) and edit from there. # # Any module's script is also self-contained about its own popup menu: # running it as `