Sysbar offers modules which could be displayed on the bar to provide real time information about various things.
It also offers sidepanels which contain widgets that show additional information from the loaded modules.
Sidebars can be accessed by either clicking or tapping and dragging on either end of the bar.
(Touch gestures are supported)
List of supported features
-
clock
- Module: Show time and date
- Widget: Clendar (Planned: Show events and holidays)
-
weather
- Module: Show weather
- Widget: (Planned: Show more detailed weather info)
-
tray
- Module: Show running tray items
-
hyprland
- Module: Show window title (Planned: Workspace indicator)
-
volume
- Module: Show audio output volume level
- Widget: Same as the module (Planned: Set volume level)
-
network
- Module: Show network type and status (Ethernet, Wireless, Cellular)
- Control: (Planned: Show nearby wireless networks)
-
battery
- Module: Show battery level and status (Charging, Discharging)
- Control: (Planned: Show additional power stuff, Set power plan)
-
notification
- Widget: Show notifications
-
taskbar
- Module: Show running toplevels
-
backlight
- Module: Show backlight level
- Widget: Show and set backlight brightness levels
-
menu
- Module: Shows a simple button to open or close an app launcher
-
mpris
- Module: Show currently playing song
- Widget: Same as the above but with controls and album art
-
bluetooth
- Module: Show bluetooth status (Connected, Disconnected)
- Control: (Planned: Show nearby bluetooth devices)
-
cellular
- Module: Show cellular signal strength
- Control: (Planned: Ability to connect/disconnect to/from cellular networks)
Sysbar offers compile time and runtime configuration options.
Undesired features can be disabled by ommiting them from src/config.hpp
The config system is INI based and can be configured by editing ~/.config/sys64/bar/config.conf
Runtime file based config
section | default | description |
---|---|---|
[main] | Primary configuration | |
position | 0 | 0 = top 1 = right 2 = bottom 3 = left |
size | 40 | Height or width depending on position |
layer | 2 | Background = 0, Bottom = 1, Top = 2, Overlay = 3 |
exclusive | true | Exclude part of the screen for the bar |
verbose | false | Verbose output (For debugging) |
main-monitor | HDMI-A-1 | Monitor output name (DP-1, HDMI-A-1, ect..) |
modules-start | clock,weather,tray | Modules shown at the start of the bar (Left/Top) |
modules-center | hyprland | Modules shown in the middle of the bar |
modules-end | volume,network,notification | Modules shown at the end of the bar (Right/Bottom) |
sidepanel-start-size | 350 | Start (Left/Top) sidepanel (Width/Height) |
sidepanel-end-size | 350 | End (Right/Bottom) sidepanel (Width/Height) |
[clock] | Clock module configuration | |
interval | 1000 | How long (in ms) to refresh the time |
label-format | %H:%M | Label format |
tooltip-format | %Y/%m/%d | Same as the above but for the tooltip |
widget-layout | 0044 | XYWH (Single digit values to position the widget) |
[weather] | Weather module configuration | |
url | https://wttr.in/?format=j1 | wttr.in Cool project, Consider supporting the dev out |
unit | f | Temperature unit Celsius or Fahrenheit |
[hyprland] | Hyprland module configuration | |
character-limit | 128 | Label character limit so the text won't get funky |
[volume] | Volume module configuration | |
show-label | false | Show the volume level as text |
widget-layout | 0441 | XYWH (Single digit values to position the widget) |
[network] | Network module configuration | |
show-label | false | Show signal strength as text |
[battery] | Battery module configuration | |
show-label | false | Show charge level as text |
[notification] | Notification widget configuration | |
command | ffplay /usr/share/.. | Command to run whenever you recieve a notification |
[backlight] | Backlight module configuration | |
path | Path to backlight (/sys/class/backlight/panel) | |
show-icon | true | Show brightness level as an icon |
show-label | true | Show brightness level as text |
widget-layout | 0341 | XYWH (Single digit values to position the widget) |
[menu] | Menu module configuration | |
show-icon | true | Show the icon |
show-label | false | Show the label |
icon-name | start-here | Icon name from your GTK icon theme |
label-text | Applications | Text to show on the menu button |
[taskbar] | Taskbar module configuration | |
text-length | 14 | Window title length |
icon-size | 32 | Size of the icons |
[mpris] | Mpris module configuration | |
show-icon | true | Show player status as an icon |
show-label | true | Show album name as text |
widget-layout | 0142 | XYWH (Single digit values to position the widget) |
[cellular] | Cellular module configuration | |
show-icon | true | Show signal strength as an icon |
show-label | false | Show signal strength as text |
Runtime launch arguments
-p Set position
-s Set start modules (modules on the left side)
-c Set center modules (modules in the middle)
-e Set end modules (modules on the right side)
-S Set bar size (Height or Width depending on position)
-V Be more verbose
-v Prints version info
By default sysbar will follow your GTK4 theme.
However it can also load Custom Style Sheets from ~/.config/sys64/bar/style.css