.\" Generated by scdoc 1.11.3 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "waybar" "5" "2024-09-15" .PP .SH NAME .PP waybar - configuration file .PP .SH DESCRIPTION .PP The configuration uses the JSONC file format and is named \fBconfig\fR or \fBconfig.\&jsonc\fR.\& .PP Valid locations for this file are: .PP .PD 0 .IP \(bu 4 \fB$XDG_CONFIG_HOME/waybar/\fR .IP \(bu 4 \fB~/.\&config/waybar/\fR .IP \(bu 4 \fB~/waybar/\fR .IP \(bu 4 \fB/etc/xdg/waybar/\fR .IP \(bu 4 \fB/etc/xdg/waybar/\fR .PD .PP A good starting point is the default configuration found at https://github.\&com/Alexays/Waybar/blob/master/resources/config.\&jsonc Also, a minimal example configuration can be found at the bottom of this man page.\& .PP The visual display elements for waybar use a CSS stylesheet, see \fBwaybar-styles(5)\fR for details.\& .PP .SH BAR CONFIGURATION .PP \fBlayer\fR .br typeof: string .br default: bottom .br Decide if the bar is displayed in front (\fBtop\fR) of the windows or behind (\fBbottom\fR) .RS 4 them.\& .PP .RE \fBoutput\fR .br typeof: string|array .br Specifies on which screen this bar will be displayed.\& Exclamation mark(\fB!\&\fR) can be used to exclude specific output.\& .RS 4 Output specification follows sway'\&s and can either be the output port such as "HDMI-A-1" or a string consisting of the make, model, and serial such as "Some Company ABC123 0x00000000".\& See \fBsway-output(5)\fR for details.\& In an array, star '\&\fB*\fR'\& can be used at the end to accept all outputs, in case all previous entries are exclusions.\& .PP .RE \fBposition\fR .br typeof: string .br default: top .br Bar position, can be \fBtop\fR, \fBbottom\fR, \fBleft\fR, \fBright\fR.\& .PP \fBheight\fR .br typeof: integer .br Height to be used by the bar if possible.\& Leave blank for a dynamic value.\& .PP \fBwidth\fR .br typeof: integer .br Width to be used by the bar if possible.\& Leave blank for a dynamic value.\& .PP \fBmodules-left\fR .br typeof: array .br Modules that will be displayed on the left.\& .PP \fBmodules-center\fR .br typeof: array .br Modules that will be displayed in the center.\& .PP \fBmodules-right\fR .br typeof: array .RS 4 Modules that will be displayed on the right.\& .PP .RE \fBmargin\fR .br typeof: string .br Margins value using the CSS format without units.\& .PP \fBmargin-\fR .br typeof: integer .br Margins value without units.\& .PP \fBspacing\fR .br typeof: integer .br Size of gaps in between the different modules.\& .PP \fBname\fR .br typeof: string .br Optional name added as a CSS class, for styling multiple waybars.\& .PP \fBmode\fR .br typeof: string .br Selects one of the preconfigured display modes.\& This is an equivalent of the sway-bar(5) \fBmode\fR command and supports the same values: \fBdock\fR, \fBhide\fR, \fBinvisible\fR, \fBoverlay\fR.\& .br Note: \fBhide\fR and \fBinvisible\fR modes may be not as useful without Sway IPC.\& .PP \fBstart_hidden\fR .br typeof: bool .br default: \fBfalse\fR .br Option to start the bar hidden.\& .PP \fBmodifier-reset\fR .br typeof: string .br default: \fBpress\fR .RS 4 Defines the timing of modifier key to reset the bar visibility.\& To reset the visibility of the bar with the press of the modifier key use \fBpress\fR.\& Use \fBrelease\fR to reset the visibility upon the release of the modifier key and only if no other action happened while the key was pressed.\& This prevents hiding the bar when the modifier is used to switch a workspace, change binding mode, or start a keybinding.\& .PP .RE \fBexclusive\fR .br typeof: bool .br default: \fBtrue\fR .br Option to request an exclusive zone from the compositor.\& Disable this to allow drawing application windows underneath or on top of the bar.\& .PP \fBfixed-center\fR .br typeof: bool .br default: \fBtrue\fR .RS 4 Prefer fixed center position for the `modules-center` block.\& The center block will stay in the middle of the bar whenever possible.\& It can still be pushed around if other blocks need more space.\& When false, the center block is centered in the space between the left and right block.\& .PP .RE \fBpassthrough\fR .br typeof: bool .br default: \fBfalse\fR .br Option to pass any pointer events to the window under the bar.\& .RS 4 Intended to be used with either \fBtop\fR or \fBoverlay\fR layers and without exclusive zone.\& .PP .RE \fBipc\fR .br typeof: bool .br default: false .br Option to subscribe to the Sway IPC bar configuration and visibility events and control waybar with \fBswaymsg bar\fR commands.\& .br Requires \fBbar_id\fR value from sway configuration to be either passed with the \fB-b\fR command line argument or specified with the \fBid\fR option.\& .PP \fBid\fR .br typeof: string .br \fBbar_id\fR for the Sway IPC.\& Use this if you need to override the value passed with the \fB-b bar_id\fR command line argument for the specific bar instance.\& .PP \fBinclude\fR .br typeof: string|array .br Paths to additional configuration files.\& .RS 4 Each file can contain a single object with any of the bar configuration options.\& In case of duplicate options, the first defined value takes precedence, i.\&e.\& including file -> first included file -> etc.\& Nested includes are permitted, but make sure to avoid circular imports.\& For a multi-bar config, the include directive affects only current bar configuration object.\& .PP .RE \fBreload_style_on_change\fR .br typeof: bool .br default: \fBfalse\fR .br Option to enable reloading the css style if a modification is detected on the style sheet file or any imported css files.\& .PP .SH MODULE FORMAT .PP You can use PangoMarkupFormat (See https://developer.\&gnome.\&org/pango/stable/PangoMarkupFormat.\&html#PangoMarkupFormat).\& .PP e.\&g.\& .PP .nf .RS 4 "format": "{}" .fi .RE .SH MULTIPLE INSTANCES OF A MODULE .PP If you want to have a second instance of a module, you can suffix it by a '\&#'\& and a custom name.\& For example, if you want a second battery module, you can add \fB"battery#bat2"\fR to your modules.\& To configure the newly added module, you then also add a module configuration with the same name.\& .PP This could then look something like this \fB(this is an incomplete example)\fR: .PP .nf .RS 4 "modules-right": ["battery", "battery#bat2"], "battery": { "bat": "BAT1" }, "battery#bat2": { "bat": "BAT2" } .fi .RE .PP .SH MINIMAL CONFIGURATION .PP A minimal \fBconfig\fR file could look like this: .PP .nf .RS 4 { "layer": "top", "modules-left": ["sway/workspaces", "sway/mode"], "modules-center": ["sway/window"], "modules-right": ["battery", "clock"], "sway/window": { "max-length": 50 }, "battery": { "format": "{capacity}% {icon}", "format-icons": ["", "", "", "", ""] }, "clock": { "format-alt": "{:%a, %d\&. %b %H:%M}" } } .fi .RE .PP .SH MULTI OUTPUT CONFIGURATION .PP .SS Limit a configuration to some outputs .PP .nf .RS 4 { "layer": "top", "output": "eDP-1", "modules-left": ["sway/workspaces", "sway/mode"], \&.\&.\&. } .fi .RE .PP .nf .RS 4 { "layer": "top", "output": ["eDP-1", "VGA"], "modules-left": ["sway/workspaces", "sway/mode"], \&.\&.\&. } .fi .RE .PP .SS Configuration of multiple outputs .PP Don'\&t specify an output to create multiple bars on the same screen.\& .PP .nf .RS 4 [{ "layer": "top", "output": "eDP-1", "modules-left": ["sway/workspaces", "sway/mode"], \&.\&.\&. }, { "layer": "top", "output": "VGA", "modules-right": ["clock"], \&.\&.\&. }] .fi .RE .PP .SS Rotating modules .PP When positioning Waybar on the left or right side of the screen, sometimes it'\&s useful to be able to rotate the contents of a module so the text runs vertically.\& This can be done using the "rotate" property of the module.\& Example: .PP .nf .RS 4 { "clock": { "rotate": 90 } } .fi .RE .PP Valid options for the "rotate" property are: 0, 90, 180, and 270.\& .PP .SS Grouping modules .PP Module groups allow stacking modules in any direction.\& By default, when the bar is positioned on the top or bottom of the screen, modules in a group are stacked vertically.\& Likewise, when positioned on the left or right, modules in a group are stacked horizontally.\& This can be changed with the "orientation" property.\& .PP A module group is defined by specifying a module named "group/some-group-name".\& The group must also be configured with a list of contained modules.\& Example: .PP .nf .RS 4 { "modules-right": ["group/hardware", "clock"], "group/hardware": { "orientation": "vertical", "modules": [ "cpu", "memory", "battery" ] }, \&.\&.\&. } .fi .RE .PP Valid options for the (optional) "orientation" property are: "horizontal", "vertical", "inherit", and "orthogonal" (default).\& .PP .SS Group Drawers .PP A group may hide all but one element, showing them only on mouse hover.\& In order to configure this, you can use the `drawer` property, whose value is an object with the following properties: .PP \fBtransition-duration\fR: .br typeof: integer .br default: 500 .br Defines the duration of the transition animation in milliseconds.\& .PP \fBchildren-class\fR: .br typeof: string .br default: "hidden" .br Defines the CSS class to be applied to the hidden elements.\& .PP \fBclick-to-reveal\fR: .br typeof: bool .br default: false .br Whether left click should reveal the content rather than mouse over.\& Note that grouped modules may still process their own on-click events.\& .PP \fBtransition-left-to-right\fR: .br typeof: bool .br default: true .br Defines the direction of the transition animation.\& If true, the hidden elements will slide from left to right.\& If false, they will slide from right to left.\& .RS 4 When the bar is vertical, it reads as top-to-bottom.\& .PP .RE .nf .RS 4 "group/power": { "orientation": "inherit", "drawer": { "transition-duration": 500, "children-class": "not-power", "transition-left-to-right": false, }, "modules": [ "custom/power", // First element is the "group leader" and won\&'t ever be hidden "custom/quit", "custom/lock", "custom/reboot", ] }, .fi .RE .PP .SH SUPPORTED MODULES .PP .PD 0 .IP \(bu 4 \fBwaybar-backlight(5)\fR .IP \(bu 4 \fBwaybar-battery(5)\fR .IP \(bu 4 \fBwaybar-bluetooth(5)\fR .IP \(bu 4 \fBwaybar-cava(5)\fR .IP \(bu 4 \fBwaybar-clock(5)\fR .IP \(bu 4 \fBwaybar-cpu(5)\fR .IP \(bu 4 \fBwaybar-custom(5)\fR .IP \(bu 4 \fBwaybar-disk(5)\fR .IP \(bu 4 \fBwaybar-dwl-tags(5)\fR .IP \(bu 4 \fBwaybar-dwl-window(5)\fR .IP \(bu 4 \fBwaybar-gamemode(5)\fR .IP \(bu 4 \fBwaybar-hyprland-language(5)\fR .IP \(bu 4 \fBwaybar-hyprland-submap(5)\fR .IP \(bu 4 \fBwaybar-hyprland-window(5)\fR .IP \(bu 4 \fBwaybar-hyprland-workspaces(5)\fR .IP \(bu 4 \fBwaybar-niri-language(5)\fR .IP \(bu 4 \fBwaybar-niri-window(5)\fR .IP \(bu 4 \fBwaybar-niri-workspaces(5)\fR .IP \(bu 4 \fBwaybar-idle-inhibitor(5)\fR .IP \(bu 4 \fBwaybar-image(5)\fR .IP \(bu 4 \fBwaybar-inhibitor(5)\fR .IP \(bu 4 \fBwaybar-jack(5)\fR .IP \(bu 4 \fBwaybar-keyboard-state(5)\fR .IP \(bu 4 \fBwaybar-memory(5)\fR .IP \(bu 4 \fBwaybar-mpd(5)\fR .IP \(bu 4 \fBwaybar-mpris(5)\fR .IP \(bu 4 \fBwaybar-network(5)\fR .IP \(bu 4 \fBwaybar-pulseaudio(5)\fR .IP \(bu 4 \fBwaybar-river-layout(5)\fR .IP \(bu 4 \fBwaybar-river-mode(5)\fR .IP \(bu 4 \fBwaybar-river-tags(5)\fR .IP \(bu 4 \fBwaybar-river-window(5)\fR .IP \(bu 4 \fBwaybar-sndio(5)\fR .IP \(bu 4 \fBwaybar-states(5)\fR .IP \(bu 4 \fBwaybar-sway-language(5)\fR .IP \(bu 4 \fBwaybar-sway-mode(5)\fR .IP \(bu 4 \fBwaybar-sway-scratchpad(5)\fR .IP \(bu 4 \fBwaybar-sway-window(5)\fR .IP \(bu 4 \fBwaybar-sway-workspaces(5)\fR .IP \(bu 4 \fBwaybar-temperature(5)\fR .IP \(bu 4 \fBwaybar-tray(5)\fR .IP \(bu 4 \fBwaybar-upower(5)\fR .IP \(bu 4 \fBwaybar-wireplumber(5)\fR .IP \(bu 4 \fBwaybar-wlr-taskbar(5)\fR .IP \(bu 4 \fBwaybar-wlr-workspaces(5)\fR .PD .PP .SH SEE ALSO .PP \fBsway-output(5)\fR \fBwaybar-styles(5)"