waybar-battery

title: waybar-battery(5)

text:
# waybar-battery(5)

## NAME
waybar - battery module

## DESCRIPTION
The battery module displays the current capacity and state (eg. charging) of your battery.

## CONFIGURATION
bat:

typeof: string

The battery to monitor, as in /sys/class/power_supply/ instead of auto detect.

adapter:

typeof: string

The adapter to monitor, as in /sys/class/power_supply/ instead of auto detect.

full-at:

typeof: integer

Define the max percentage of the battery, for when you've set the battery to stop charging at a lower level to save it. For example, if you've set the battery to stop at 80% that will become the new 100%.

design-capacity:

typeof: bool

default: false

Option to use the battery design capacity instead of its current maximal capacity.

interval:

typeof: integer

default: 60

The interval in which the information gets polled.

states:

typeof: object

A number of battery states which get activated on certain capacity levels. See waybar-states(5).

format:

typeof: string

default: {capacity}%

The format, how information should be displayed.

format-time:

typeof: string

default: {H} h {M} min

The format, how the time should be displayed.

format-icons:

typeof: array/object

Based on the current capacity, the corresponding icon gets selected.

The order is low to high. Or by the state if it is an object.

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

bat-compatibility:

typeof: bool

default: false

Option to enable battery compatibility if not detected.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu.

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

events:

typeof: object

Specifies commands to be executed on specific battery states. See EVENTS section below.

## FORMAT REPLACEMENTS
{capacity}: Capacity in percentage

{power}: Power in watts

{icon}: Icon, as defined in format-icons.

{time}: Estimate of time until full or empty. Note that this is based on the power draw at the last refresh time, not an average.

{cycles}: Amount of charge cycles the highest-capacity battery has seen. (Linux only)

{health}: The percentage of the highest-capacity battery's original maximum charge it can still hold.

## TIME FORMAT
The battery module allows you to define how time should be formatted via format-time.

The three arguments are: {H}: Hours {M}: Minutes {m}: Zero-padded minutes

## CUSTOM FORMATS
The battery module allows one to define custom formats based on up to two factors. The best-fitting format will be selected.

format-<state>: With states, a custom format can be set depending on the capacity of your battery.

format-<status>: With the status, a custom format can be set depending on the status in /sys/class/power_supply/<bat>/status (in lowercase).

format-<status>-<state>: You can also set a custom format depending on both values.

## STATES

- Every entry (state) consists of a <name> (typeof: string) and a <value> (typeof: integer).

- The state can be addressed as a CSS class in the style.css. The name of the CSS class is the <name> of the state. Each class gets activated when the current capacity is equal to or below the configured <value>.

- Also each state can have its own format. Those can be configured via format-<name>. Or if you want to differentiate a bit more even as format-<status>-<state>. For more information see custom-formats.

## EVENTS
Every entry in the events object consists of a <event-name> (typeof: string) and a <command> (typeof: string).

<event-name> can be in one of the following formats:

- on-<status>-<state>

- on-<status>-<capacity>

Where:

- <status> is either charging or discharging,

- <state> is the name of one of the states specified in the states object,

- <capacity> is a battery level value (between 0-100).

## EXAMPLES

```
"battery": {
	"bat": "BAT2",
	"interval": 60,
	"states": {
		"warning": 30,
		"critical": 15
	},
	"events": {
		"on-discharging-warning": "notify-send -u normal 'Low Battery'",
		"on-discharging-critical": "notify-send -u critical 'Very Low Battery'",
		"on-charging-100": "notify-send -u normal 'Battery Full!'"
	},
	"format": "{capacity}% {icon}",
	"format-icons": ["", "", "", "", ""],
	"max-length": 25
}
```

## STYLE

- #battery

- #battery.<status>

•

<status> is the value of /sys/class/power_supply/<bat>/status in lowercase.

•

\#battery.<state>

•

<state> can be defined in the config. For more information see states.

•

\#battery.<status>.<state>

•

Combination of both <status> and <state>.

The following classes are applied to the entire Waybar rather than just the battery widget:

•

window#waybar.battery-<state>

•

<state> can be defined in the config, as previously mentioned.


waybar-bluetooth

package: waybar

title: waybar-bluetooth(5)

text:
# waybar-bluetooth(5)

## NAME
waybar - bluetooth module

## DESCRIPTION
The bluetooth module displays information about a bluetooth controller and its connections.

## CONFIGURATION
Addressed by bluetooth

controller:

typeof: string

Use the controller with the defined alias. Otherwise, a random controller is used. Recommended to define when there is more than 1 controller available to the system.

format-device-preference:

typeof: array

A ranking of bluetooth devices, addressed by their alias. The order is from first displayed to last displayed.

If this config option is not defined or none of the devices in the list are connected, it will fall back to showing the last connected device.

format:

typeof: string

default:  {status}

The format, how information should be displayed. This format is used when other formats aren't specified.

format-disabled:

typeof: string

This format is used when the displayed controller is disabled.

format-off:

typeof: string

This format is used when the displayed controller is turned off.

format-on:

typeof: string

This format is used when the displayed controller is turned on with no devices connected.

format-connected:

typeof: string

This format is used when the displayed controller is connected to at least 1 device.

format-no-controller:

typeof: string

This format is used when no bluetooth controller can be found

format-icons:

typeof: array/object

Based on the current battery percentage (see section EXPERIMENTAL BATTERY PERCENTAGE FEATURE), the corresponding icon gets selected.

The order is low to high. Will only show the current battery percentage icon in the *-connected-battery config options.

Or by the state if it is an object. It will fall back to the enabled state if its derivatives are not defined (on, off, connected).

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

The format, how information should be displayed in the tooltip. This format is used when other formats aren't specified.

tooltip-format-disabled:

typeof: string

This format is used when the displayed controller is disabled.

tooltip-format-off:

typeof: string

This format is used when the displayed controller is turned off.

tooltip-format-on:

typeof: string

This format is used when the displayed controller is turned on with no devices connected.

tooltip-format-connected:

typeof: string

This format is used when the displayed controller is connected to at least 1 device.

tooltip-format-no-controller:

typeof: string

This format is used when no bluetooth controller can be found

tooltip-format-enumerate-connected:

typeof: string

This format is used to define how each connected device should be displayed within the device_enumerate format replacement in the tooltip menu.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{status}: Status of the bluetooth device.

{icon}: Icon, as defined in format-icons.

{num_connections}: Number of connections the displayed controller has.

{controller_address}: Address of the displayed controller.

{controller_address_type}: Address type of the displayed controller.

{controller_alias}: Alias of the displayed controller.

{device_address}: Address of the displayed device.

{device_address_type}: Address type of the displayed device.

{device_alias}: Alias of the displayed device.

{device_enumerate}: Show a list of all connected devices, each on a separate line. Define the format of each device with the tooltip-format-enumerate-connected

and/or tooltip-format-enumerate-connected-battery config options. Can only be used in the tooltip-related format options.

## EXPERIMENTAL BATTERY PERCENTAGE FEATURE
At the time of writing, the experimental features of BlueZ need to be turned on, for the battery percentage options listed below to work.

### FORMAT REPLACEMENT
{device_battery_percentage}: Battery percentage of the displayed device if available. Use only in the config options defined below.

### CONFIGURATION
format-connected-battery:

typeof: string

This format is used when the displayed device provides its battery percentage.

tooltip-format-connected-battery:

typeof: string

This format is used when the displayed device provides its battery percentage.

tooltip-format-enumerate-connected-battery:

typeof: string

This format is used to define how each connected device with a battery should be displayed within the device_enumerate format replacement option.

When this config option is not defined, it will fall back on the tooltip-format-enumerate-connected config option.

## EXAMPLES

```
"bluetooth": {
	// "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system
	"format": " {status}",
	"format-disabled": "", // an empty format will hide the module
	"format-connected": " {num_connections} connected",
	"tooltip-format": "{controller_alias}\t{controller_address}",
	"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
	"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}"
}
```

```
"bluetooth": {
	"format": " {status}",
	"format-connected": " {device_alias}",
	"format-connected-battery": " {device_alias} {device_battery_percentage}%",
	// "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
	"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
	"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
	"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
	"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
}
```

## STYLE

- #bluetooth

- #bluetooth.disabled

- #bluetooth.off

- #bluetooth.on

- #bluetooth.connected

- #bluetooth.discoverable

- #bluetooth.discovering

- #bluetooth.pairable

branch: sisyphus


waybar-cffi

title: waybar-cffi(5)

text:
# waybar-cffi(5)

## NAME
waybar - cffi module

## DESCRIPTION
The cffi module gives full control of a GTK widget to a third-party dynamic library, to create more complex modules using different programming languages.

## CONFIGURATION
Addressed by cffi/<name>

module_path:

typeof: string

The path to the dynamic library to load to control the widget.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

Some additional configuration may be required depending on the cffi dynamic library being used.

## EXAMPLES

### C example:
An example module written in C can be found at https://github.com/Alexays/Waybar/resources/custom_modules/cffi_example/

Waybar config to enable the module:

```
"cffi/c_example": {
	"module_path": ".config/waybar/cffi/wb_cffi_example.so"
}
```

## STYLE
The classes and IDs are managed by the cffi dynamic library.


waybar-clock

title: waybar-clock(5)

text:
# waybar-clock(5)

## NAME
waybar - clock module

## DESCRIPTION
clock module displays current date and time

## FILES
$XDG_CONFIG_HOME/waybar/config

Per user configuration file

## CONFIGURATION
1. Addressed by clock

Option

Typeof

Default

Description

interval

integer

60

The interval in which the information gets polled

format

string

{:%H:%M}

The format, how the date and time should be displayed. See format options below

timezone

string

The timezone to display the time in, e.g. America/New_York. "" represents the system's local timezone. See Wikipedia's unofficial list of timezones <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>

timezones

list of strings

A list of timezones (as in timezone) to use for time display, changed using the scroll wheel. Do not specify timezone option when timezones is specified. "" represents the system's local timezone

locale

string

A locale to be used to display the time. Intended to render times in custom timezones with the proper language and format

max-length

integer

The maximum length in character the module should display

rotate

integer

Positive value to rotate the text label (in 90 degree increments)

on-click

string

Command to execute when clicked on the module

on-click-middle

string

Command to execute when you middle clicked on the module using mousewheel

on-click-right

string

Command to execute when you right-click on the module

on-scroll-up

string

Command to execute when scrolling up on the module

on-scroll-down

string

Command to execute when scrolling down on the module

smooth-scrolling-threshold

double

Threshold to be used when scrolling

tooltip

bool

true

Option to enable tooltip on hover

tooltip-format

string

same as format

Tooltip on hover

menu

string

Action that popups the menu.

menu-file

string

Location of the menu descriptor file. There need to be an element of type GtkMenu with id menu

menu-actions

array

The actions corresponding to the buttons of the menu.

expand:

bool

false

Enables this module to consume all left over space dynamically.

View all valid format options in strftime(3) or have a look https://en.cppreference.com/w/cpp/chrono/duration/formatter

2. Addressed by clock: calendar

Option

Typeof

Default

Description

mode

string

month

Calendar view mode. Possible values: year|month

mode-mon-col

integer

3

Relevant for mode=year. Count of months per row

weeks-pos

string

The position where week numbers should be displayed. Disabled when is empty. Possible values: left|right

on-scroll

integer

1

Value to scroll months/years forward/backward. Can be negative. Is configured under on-scroll option

3. Addressed by clock: calendar: format

Option

Typeof

Default

Description

months

string

Format is applied to months header(January, February,...etc.)

days

string

Format is applied to days

weeks

string

{:%U}

Format is applied to week numbers. When weekday format is not provided then is used default format: '{:%W}' when week starts with Monday, '{:%U}' otherwise

weekdays

string

Format is applied to weeks header(Su,Mo,...etc.)

today

string

{}

Format is applied to Today

### Actions
String

Action

mode

Switch calendar mode between year/month

tz_up

Switch to the next provided time zone

tz_down

Switch to the previously provided time zone

shift_up

Switch to the next calendar month/year

shift_down

Switch to the previous calendar month/year

## FORMAT REPLACEMENTS

- {calendar}: Current month calendar

- {tz_list}: List of time in the rest timezones, if more than one timezone is set in the config

- {ordinal_date}: The current day in (English) ordinal form, e.g. 21st

## EXAMPLES
1. General

```
"clock": {
	"interval": 60,
	"format": "{:%H:%M}",
	"max-length": 25
}
```

2. Calendar

```
"clock": {
	"format": "{:%H:%M}  ",
	"format-alt": "{:%A, %B %d, %Y (%R)}  ",
	"tooltip-format": "<tt><small>{calendar}</small></tt>",
	"calendar": {
		"mode"          : "year",
		"mode-mon-col"  : 3,
		"weeks-pos"     : "right",
		"on-scroll"     : 1,
		"on-click-right": "mode",
		"format": {
			"months":     "<span color='#ffead3'><b>{}</b></span>",
			"days":       "<span color='#ecc6d9'><b>{}</b></span>",
			"weeks":      "<span color='#99ffdd'><b>W{}</b></span>",
			"weekdays":   "<span color='#ffcc66'><b>{}</b></span>",
			"today":      "<span color='#ff6699'><b><u>{}</u></b></span>"
		}
	},
	"actions": {
		"on-click-right": "mode",
		"on-click-forward": "tz_up",
		"on-click-backward": "tz_down",
		"on-scroll-up": "shift_up",
		"on-scroll-down": "shift_down"
	}
},
```

3. Full date on hover

```
"clock": {
	"interval": 60,
	"tooltip": true,
	"format": "{:%H.%M}",
	"tooltip-format": "{:%Y-%m-%d}",
}
```

## STYLE
•

\#clock

## Troubleshooting
If clock module is disabled at startup with locale::facet::_S_create_c_locale

name not valid error message try one of the following:

- check if LC_TIME is set properly (glibc)

- set locale to C in the config file (musl)

The locale option must be set for {calendar} to use the correct start-of-week, regardless of system locale.

### Calendar in Chinese. Alignment
In order to have aligned Chinese calendar there are some useful recommendations:

1.

Use "WenQuanYi Zen Hei Mono" which is provided in most Linux distributions

2.

Try different font sizes and find best for you. size = 9pt should be fine

3.

In case when "WenQuanYi Zen Hei Mono" font is used disable monospace font pango tag

Example of working config

```
"clock": {
	"format": "{:%H:%M}  ",
	"format-alt": "{:%A, %B %d, %Y (%R)}  ",
	"tooltip-format": "n<span size='9pt' font='WenQuanYi Zen Hei Mono'>{calendar}</span>",
	"calendar": {
		"mode"          : "year",
		"mode-mon-col"  : 3,
		"weeks-pos"     : "right",
		"on-scroll"     : 1,
		"on-click-right": "mode",
		"format": {
			"months":     "<span color='#ffead3'><b>{}</b></span>",
			"days":       "<span color='#ecc6d9'><b>{}</b></span>",
			"weeks":      "<span color='#99ffdd'><b>W{}</b></span>",
			"weekdays":   "<span color='#ffcc66'><b>{}</b></span>",
			"today":      "<span color='#ff6699'><b><u>{}</u></b></span>"
		}
	},
	"actions": {
		"on-click-right": "mode",
		"on-click-forward": "tz_up",
		"on-click-backward": "tz_down",
		"on-scroll-up": "shift_up",
		"on-scroll-down": "shift_down"
	}
},
```

## AUTHOR
Alexis Rouillard <contact@arouillard.fr>


waybar-cpu

title: waybar-cpu(5)

text:
# waybar-cpu(5)

## NAME
waybar - cpu module

## DESCRIPTION
The cpu module displays the current CPU utilization.

## CONFIGURATION
interval:

typeof: integer

default: 10

The interval in which the information gets polled.

format:

typeof: string

default: {usage}%

The format, how information should be displayed. On {} data gets inserted.

format-icons:

typeof: array/object

Based on the current usage, the corresponding icon gets selected.

The order is low to high. Or by the state if it is an object.

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

states:

typeof: object

A number of CPU usage states which get activated on certain usage levels. See waybar-states(5).

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{load}: Current CPU load.

{usage}: Current overall CPU usage.

{usage{n}}: Current CPU core n usage. Cores are numbered from zero, so first core will be {usage0} and 4th will be {usage3}.

{avg_frequency}: Current CPU average frequency (based on all cores) in GHz.

{max_frequency}: Current CPU max frequency (based on the core with the highest frequency) in GHz.

{min_frequency}: Current CPU min frequency (based on the core with the lowest frequency) in GHz.

{icon}: Icon for overall CPU usage.

{icon{n}}: Icon for CPU core n usage. Use like {icon0}.

## EXAMPLES
Basic configuration:

```
"cpu": {
	"interval": 10,
	"format": "{}% ",
	"max-length": 10
}
```

CPU usage per core rendered as icons:

```
"cpu": {
	"interval": 1,
	"format": "{icon0}{icon1}{icon2}{icon3} {usage:>2}% ",
	"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
},
```

## STYLE
•

\#cpu


waybar-custom

title: waybar-custom(5)

text:
# waybar-custom(5)

## NAME
waybar - custom module

## DESCRIPTION
The custom module displays either the output of a script or static text. To display static text, specify only the format field.

## CONFIGURATION
Addressed by custom/<name>

exec:

typeof: string

The path to the script, which should be executed.

exec-if:

typeof: string

The path to a script, which determines if the script in exec should be executed.

exec will be executed if the exit code of exec-if equals 0.

hide-empty-text:

typeof: bool

Disables the module when output is empty, but format might contain additional static content.

exec-on-event:

typeof: bool

default: true

If an event command is set (e.g. on-click or on-scroll-up) then re-execute the script after executing the event command.

return-type:

typeof: string

See return-type

interval:

typeof: integer

The interval (in seconds) in which the information gets polled.

Use once if you want to execute the module only on startup.

You can update it manually with a signal. If no interval or signal is defined, it is assumed that the out script loops itself.

If a signal is defined then the script will run once on startup and will only update with a signal.

restart-interval:

typeof: integer

The restart interval (in seconds).

Can't be used with the interval option, so only with continuous scripts.

Once the script exits, it'll be re-executed after the restart-interval.

signal:

typeof: integer

The signal number used to update the module.

The number is valid between 1 and N, where SIGRTMIN+N = SIGRTMAX.

If no interval is defined then a signal will be the only way to update the module.

format:

typeof: string

default: {text}

The format, how information should be displayed. On {text} data gets inserted.

format-icons:

typeof: array

Based on the set percentage, the corresponding icon gets selected. The order is low to high.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

The tooltip format. If specified, overrides any tooltip output from the script in exec.

Uses the same format replacements as format.

escape:

typeof: bool

default: false

Option to enable escaping of script output.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## RETURN-TYPE
When return-type is set to json, Waybar expects the exec-script to output its data in JSON format. This should look like this:

```
{"text": "$text", "tooltip": "$tooltip", "class": "$class", "percentage": $percentage }
```

The class parameter also accepts an array of strings.

If nothing or an invalid option is specified, Waybar expects i3blocks style output. Values are newline separated. This should look like this:

```
$text\n$tooltip\n$class*
```

class is a CSS class, to apply different styles in style.css

## FORMAT REPLACEMENTS
{text}: Output of the script.

{percentage} Percentage which can be set via a json return type.

{icon}: An icon from 'format-icons' according to percentage.

## EXAMPLES

### Spotify:

```
"custom/spotify": {
	"format": " {text}",
	"max-length": 40,
	"interval": 30, // Remove this if your script is endless and write in loop
	"exec": "$HOME/.config/waybar/mediaplayer.sh 2> /dev/null", // Script in resources folder
	"exec-if": "pgrep spotify",
	"return-type": "json"
}
```

### mpd:

```
"custom/mpd": {
	"format": "♪ {text}",
	//"max-length": 15,
	"interval": 10,
	"exec": "mpc current",
	"exec-if": "pgrep mpd",
	"on-click": "mpc toggle",
	"on-click-right": "sonata"
}
```

### cmus:

```
"custom/cmus": {
	"format": "♪ {text}",
	//"max-length": 15,
	"interval": 10,
	"exec": "cmus-remote -C "format_print '%a - %t'"", // artist - title
	"exec-if": "pgrep cmus",
	"on-click": "cmus-remote -u",                        //toggle pause
	"escape": true                                       //handle markup entities
}
```

### Pacman

```
"custom/pacman": {
	"format": "{text}  ",
	"interval": "once",
	"exec": "pacman_packages",
	"on-click": "update-system",
	"signal": 8
}
```

### Alternate Pacman

```
"custom/pacman": {
	"format": "{text}  ",
	"interval": 3600,                     // every hour
	"exec": "checkupdates | wc -l",       // # of updates
	"exec-if": "exit 0",                  // always run; consider advanced run conditions
	"on-click": "termite -e 'sudo pacman -Syu'; pkill -SIGRTMIN+8 waybar", // update system
	"signal": 8
}
```

You can use the signal and update the number of available packages with pkill -RTMIN+8 waybar.

## STYLE

- #custom-<name>

- #custom-<name>.<class>

- <class> can be set by the script. For more information see return-type


waybar-disk

title: waybar-disk(5)

text:
# waybar-disk(5)

## NAME
waybar - disk module

## DESCRIPTION
The disk module displays the current disk space used.

## CONFIGURATION
Addressed by disk

path:

typeof: string

default: "/"

Any path residing in the filesystem or mountpoint for which the information should be displayed.

interval:

typeof: integer

default: 30

The interval in which the information gets polled.

format:

typeof: string

default: "{percentage_used}%"

The format, how information should be displayed.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

states:

typeof: object

A number of disk utilization states that get activated on certain percentage thresholds (percentage_used). See waybar-states(5).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: "{used} out of {total} used ({percentage_used}%)"

The format of the information displayed in the tooltip.

unit:

typeof: string

Use with specific_free, specific_used, and specific_total to force calculation to always be in a certain unit. Accepts kB, kiB, MB, Mib, GB, GiB, TB, TiB.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{percentage_used}: Percentage of disk in use.

{percentage_free}: Percentage of free disk space

{total}: Total amount of space on the disk, partition, or mountpoint. Automatically selects unit based on size remaining.

{used}: Amount of used disk space. Automatically selects unit based on size remaining.

{free}: Amount of available disk space for normal users. Automatically selects unit based on size remaining.

{path}: The path specified in the configuration.

{specific_total}: Total amount of space on the disk, partition, or mountpoint in a specific unit. Defaults to bytes.

{specific_used}: Amount of used disk space in a specific unit. Defaults to bytes.

{specific_free}: Amount of available disk space for normal users in a specific unit. Defaults to bytes.

## EXAMPLES

```
"disk": {
	"interval": 30,
	"format": "{percentage_free}% free on {path}",
}
```

```
"disk": {
	"interval": 30,
	"format": "{specific_free:0.2f} GB out of {specific_total:0.2f} GB available. Alternatively {free} out of {total} available",
	"unit": "GB"
	// 1434.25 GB out of 2000.00 GB available. Alternatively 1.4TiB out of 1.9TiB available.
}
```

## STYLE
•

\#disk


waybar-dwl-tags

title: waybar-dwl-tags(5)

text:
# waybar-dwl-tags(5)

## NAME
waybar - dwl tags module

## DESCRIPTION
The tags module displays the current state of tags in dwl.

## CONFIGURATION
Addressed by dwl/tags

num-tags:

typeof: uint

default: 9

The number of tags that should be displayed. Max 32.

tag-labels:

typeof: array

The label to display for each tag.

disable-click:

typeof: bool

default: false

If set to false, you can left-click to set focused tag. Right-click to toggle tag focus. If set to true this behaviour is disabled.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## EXAMPLE

```
"dwl/tags": {
	"num-tags": 5
}
```

## STYLE

- #tags button

- #tags button.occupied

- #tags button.focused

- #tags button.urgent

Note that occupied/focused/urgent status may overlap. That is, a tag may be both occupied and focused at the same time.

## SEE ALSO
waybar(5), dwl(1)


waybar-dwl-window

title: waybar-dwl-window(5)

text:
# waybar-dwl-window(5)

## NAME
waybar - dwl window module

## DESCRIPTION
The window module displays the title of the currently focused window in DWL

## CONFIGURATION
Addressed by dwl/window

format:

typeof: string

default: {title}

The format, how information should be displayed.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

rewrite:

typeof: object

Rules to rewrite the module format output. See rewrite rules.

icon:

typeof: bool

default: false

Option to hide the application icon.

icon-size:

typeof: integer

default: 24

Option to change the size of the application icon.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{title}: The title of the focused window.

{app_id}: The app_id of the focused window.

{layout}: The layout of the focused window.

## REWRITE RULES
rewrite is an object where keys are regular expressions and values are rewrite rules if the expression matches. Rules may contain references to captures of the expression.

Regular expression and replacement follow ECMA-script rules.

If no expression matches, the format output is left unchanged.

Invalid expressions (e.g., mismatched parentheses) are skipped.

## EXAMPLES

```
"dwl/window": {
	"format": "{}",
	"max-length": 50,
	"rewrite": {
		"(.*) - Mozilla Firefox": "🌎 $1",
		"(.*) - zsh": "> [$1]"
	}
}
```


waybar-ext-workspaces

title: waybar-ext-workspaces(5)

text:
# waybar-ext-workspaces(5)

## NAME
waybar - wlr workspaces module

## DESCRIPTION
The workspaces module displays the currently used workspaces in wayland compositor.

## CONFIGURATION
Addressed by ext/workspaces

format:

typeof: string

default: {name}

The format, how information should be displayed.

format-icons:

typeof: array

Based on the workspace name and state, the corresponding icon gets selected. See icons.

sort-by-name:

typeof: bool

default: true

Should workspaces be sorted by name. Workspace names will be sorted numerically when all names are numbers.

sort-by-coordinates:

typeof: bool

default: false

Should workspaces be sorted by coordinates.

Note that if both sort-by-name and sort-by-coordinates are true sort-by name will be first. If both are false - sort by id will be performed.

sort-by-id:

typeof: bool

default: false

Should workspaces be sorted by ID. Workspace ID will be sorted numerically when all ID are numbers. Takes precedence over any other sort-by option.

all-outputs:

typeof: bool

default: false

If set to false workspaces group will be shown only in assigned output. Otherwise, all workspace groups are shown.

active-only:

typeof: bool

default: false

If set to true only active or urgent workspaces will be shown.

ignore-hidden:

typeof: bool

default: true

If set to false hidden workspaces will be shown.

## FORMAT REPLACEMENTS
{name}: Name of workspace assigned by compositor.

{id}: ID of workspace assigned by compositor.

{icon}: Icon, as defined in format-icons.

## CLICK ACTIONS
activate: Switch to workspace.

close: Close the workspace.

## ICONS
In addition to workspace name matching, the following format-icons can be set.

- default: Will be shown, when no string match is found.

- active: Will be shown, when workspace is active

## EXAMPLES

```
"ext/workspaces": {
	"format": "{name}: {icon}",
	"on-click": "activate",
	"format-icons": {
		"Workspace 1": "",
		"Workspace 2": "",
		"Workspace 3": "",
		"Workspace 4": "",
		"active": "",
		"default": ""
	},
	"sort-by-id": true
}
```

## Style

- #workspaces

- #workspaces button

- #workspaces button.active

- #workspaces button.urgent

- #workspaces button.hidden


waybar-gamemode

title: waybar-gamemode(5)

text:
# waybar-gamemode(5)

## NAME
waybar - gamemode module

## DESCRIPTION
The gamemode module displays if any game or application is running with

Feral Gamemode optimizations.

## CONFIGURATION
format:

typeof: string

default: {glyph}

The text format.

format-alt:

typeof: string

default: {glyph} {count}

The text format when toggled.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: Games running: {glyph}

The text format of the tooltip.

hide-not-running:

typeof: bool

default: true

Defines if the module should be hidden if no games are running.

use-icon:

typeof: bool

default: true

Defines if the module should display a GTK icon instead of the specified glyph

glyph:

typeof: string

default: 

The string icon to display. Only visible if use-icon is set to false.

icon-name:

typeof: string

default: input-gaming-symbolic

The GTK icon to display. Only visible if use-icon is set to true.

icon-size:

typeof: unsigned integer

default: 20

Defines the size of the icons.

icon-spacing:

typeof: unsigned integer

default: 4

Defines the spacing between the icon and the text.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{glyph}: The string icon glyph to use instead.

{count}: The number of games running with gamemode optimizations.

## TOOLTIP FORMAT REPLACEMENTS
{count}: The number of games running with gamemode optimizations.

## EXAMPLES

```
"gamemode": {
	"format": "{glyph}",
	"format-alt": "{glyph} {count}",
	"glyph": "",
	"hide-not-running": true,
	"use-icon": true,
	"icon-name": "input-gaming-symbolic",
	"icon-spacing": 4,
	"icon-size": 20,
	"tooltip": true,
	"tooltip-format": "Games running: {count}"
}
```

## STYLE

- #gamemode

- #gamemode.running


waybar-gps

title: waybar-gps(5)

text:
# waybar-gps(5)

## NAME
waybar - gps module

## DESCRIPTION
gps module for gpsd.

## FILES
$XDG_CONFIG_HOME/waybar/config

Per user configuration file

## ADDITIONAL FILES
libgps lives in:

1.

/usr/lib/libgps.so or /usr/lib64/libgps.so

2.

/usr/lib/pkgconfig/libgps.pc or /usr/lib64/pkgconfig/libgps.pc

3.

/usr/include/gps

## CONFIGURATION
format:

typeof: string

default: {glyph}

The text format.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: Games running: {glyph}

The text format of the tooltip.

interval:

typeof: integer

default: 5

The interval in which the GPS information gets polled (e.g. current speed).

Significant updates (e.g. the current fix mode) are updated immediately.

hide-disconnected:

typeof: bool

default: true

Defines if the module should be hidden if there is no GPS receiver.

hide-no-fix:

typeof: bool

default: false

Defines if the module should be hidden if there is no GPS fix.

## FORMAT REPLACEMENTS
{mode}: Fix mode

{status}: Technology used for GPS fix. Not all GPS receivers report this.

{latitude}: Latitude, decimal degrees. Can be NaN.

{latitude_error}: Latitude uncertainty, meters. Can be NaN.

{longitude}: Longitude, decimal degrees. Can be NaN.

{longitude_error}: Longitude uncertainty, meters. Can be NaN.

{altitude_hae}: Altitude, height above ellipsoid, meters. Can be NaN.

{altitude_msl}: Longitude, MSL, meters. Can be NaN.

{altitude_error}: Altitude uncertainty, meters. Can be NaN.

{speed}: Speed over ground, meters/sec. Can be NaN.

{speed_error}: Speed uncertainty, meters/sec. Can be NaN.

{climb}: Vertical speed, meters/sec. Can be NaN.

{climb_error}: Vertical speed uncertainty, meters/sec. Can be NaN.

{satellites_visible}: Number of satellites visible from the GPS receiver.

{satellites_used}: Number of satellites used for the GPS fix.

## EXAMPLES

```
"gps": {
	"format": "{mode}",
	"format-disabled": "", // an empty format will hide the module
	"format-no-fix": "No fix",
	"format-fix-3d": "{status}",
	"tooltip-format": "{mode}",
	"tooltip-format-no-fix": "{satellites_visible} satellites visible",
	"tooltip-format-fix-2d": "{satellites_used}/{satellites_visible} satellites used",
	"tooltip-format-fix-3d": "Altitude: {altitude_hae}m",
	"hide-disconnected": false
}
```

## STYLE

- #gps

- #gps.disabled Applied when GPS is disabled.

- #gps.fix-none Applied when GPS is present, but there is no fix.

- #gps.fix-2d Applied when there is a 2D fix.

- #gps.fix-3d Applied when there is a 3D fix.


waybar-hyprland-language

title: waybar-hyprland-language(5)

text:
# waybar-hyprland-language(5)

## NAME
waybar - hyprland language module

## DESCRIPTION
The language module displays the currently selected language.

## CONFIGURATION
Addressed by hyprland/language

format:

typeof: string

default: {}

The format, how information should be displayed.

format-<lang>

typeof: string

Provide an alternative name to display per language where <lang> is the language of your choosing. Can be passed multiple times with multiple languages as shown by the example below.

keyboard-name:

typeof: string

Specifies which keyboard to use from hyprctl devices output. Using the option that begins with "at-translated-set..." is recommended.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{short}: Short name of layout (e.g. "us"). Equals to {}.

{shortDescription}: Short description of layout (e.g. "en").

{long}: Long name of layout (e.g. "English (Dvorak)").

{variant}: Variant of layout (e.g. "dvorak").

## EXAMPLES

```
"hyprland/language": {
	"format": "Lang: {long}",
	"format-en": "AMERICA, HELL YEAH!",
	"format-tr": "As bayrakları",
	"keyboard-name": "at-translated-set-2-keyboard"
}
```

## STYLE
•

\#language


waybar-hyprland-submap

title: waybar-hyprland-submap(5)

text:
# waybar-hyprland-submap(5)

## NAME
waybar - hyprland submap module

## DESCRIPTION
The submap module displays the currently active submap similar to sway/mode.

## CONFIGURATION
Addressed by hyprland/submap

format:

typeof: string

default: {}

The format, how information should be displayed. On {} the currently active submap is displayed.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

always-on:

typeof: bool

default: false

Option to display the widget even when there's no active submap.

default-submap

typeof: string

default: Default

Option to set the submap name to display when not in an active submap.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## EXAMPLES

```
"hyprland/submap": {
	"format": "✌ {}",
	"max-length": 8,
	"tooltip": false
}
```

## STYLE

- #submap

- #submap.<name>


waybar-hyprland-window

title: waybar-hyprland-window(5)

text:
# waybar-hyprland-window(5)

## NAME
waybar - hyprland window module

## DESCRIPTION
The window module displays the title of the currently focused window in Hyprland.

## CONFIGURATION
Addressed by hyprland/window

format:

typeof: string

default: {title}

The format, how information should be displayed. On {} the current window title is displayed.

rewrite:

typeof: object

Rules to rewrite window title. See rewrite rules.

separate-outputs:

typeof: bool

Show the active window of the monitor the bar belongs to, instead of the focused window.

icon:

typeof: bool

default: false

Option to hide the application icon.

icon-size:

typeof: integer

default: 24

Option to change the size of the application icon.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
See the output of "hyprctl clients" for examples

{title}: The current title of the focused window.

{initialTitle}: The initial title of the focused window.

{class}: The current class of the focused window.

{initialClass}: The initial class of the focused window.

## REWRITE RULES
rewrite is an object where keys are regular expressions and values are rewrite rules if the expression matches. Rules may contain references to captures of the expression.

Regular expression and replacement follow ECMA-script rules.

If no expression matches, the title is left unchanged.

Invalid expressions (e.g., mismatched parentheses) are skipped.

## EXAMPLES

```
"hyprland/window": {
	"format": "{}",
	"rewrite": {
		"(.*) - Mozilla Firefox": "🌎 $1",
		"(.*) - zsh": "> [$1]"
	}
}
```

## STYLE

- #window

- window#waybar.empty #window When no windows are in the workspace

The following classes are applied to the entire Waybar rather than just the window widget:

- window#waybar.empty When no windows are in the workspace

- window#waybar.solo When one tiled window is visible in the workspace (floating windows may be present)

- window#waybar.<app_id> Where <app_id> is the class (e.g. chromium) of the solo tiled window in the workspace (use hyprctl clients to see classes)

- window#waybar.floating When there are only floating windows in the workspace

- window#waybar.fullscreen When there is a fullscreen window in the workspace; useful with Hyprland's fullscreen, 1 mode

- window#waybar.swallowing When there is a swallowed window in the workspace


waybar-hyprland-workspaces

title: waybar-hyprland-workspaces(5)

text:
# waybar-hyprland-workspaces(5)

## NAME
waybar - hyprland workspaces module

## DESCRIPTION
The workspaces module displays the currently used workspaces in hyprland compositor.

## CONFIGURATION
Addressed by hyprland/workspaces

format:

typeof: string

default: {id}

The format, how information should be displayed.

format-icons:

typeof: array

Based on the workspace ID and state, the corresponding icon gets selected. See icons.

window-rewrite:

typeof: object

Regex rules to map window class to an icon or preferred method of representation for a workspace's window.

Keys are the rules, while the values are the methods of representation. Values may use the placeholders {class} and {title} to use the window's original class and/or title respectively. Rules may specify `class<...>`, `title<...>`, or both in order to fine-tune the matching. You may assign an empty value to a rule to have it ignored from generating any representation in workspaces.

This setting is ignored if workspace-taskbar.enable is set to true.

window-rewrite-default:

typeof: string

default: "?"

The default method of representation for a workspace's window. This will be used for windows whose classes do not match any of the rules in window-rewrite.

This setting is ignored if workspace-taskbar.enable is set to true.

format-window-separator:

typeof: string

default: " "

The separator to be used between windows in a workspace.

This setting is ignored if workspace-taskbar.enable is set to true.

workspace-taskbar:

typeof: object

Contains settings for the workspace taskbar, an alternative mode for the workspaces module which displays the window icons as images instead of text.

enable:

typeof: bool

default: false

Enables the workspace taskbar mode. format:

typeof: string

default: {icon}

Format to use for each window in the workspace taskbar. Available placeholders are {icon} and {title}.

icon-size:

typeof: int

default: 16

Size of the icons in the workspace taskbar.

icon-theme:

typeof: string | array

default: []

Icon theme to use for the workspace taskbar. If an array is provided, the first theme that is found for a given icon will be used. If no theme is found (or the array is empty), the default icon theme is used.

orientation:

typeof: "horizontal" | "vertical"

default: horizontal

Direction in which the workspace taskbar is displayed.

show-special:

typeof: bool

default: false

If set to true, special workspaces will be shown.

special-visible-only:

typeof: bool

default: false

If this and show-special are to true, special workspaces will be shown only if visible.

persistent-only:

typeof: bool

default: false

If set to true, only persistent workspaces will be shown on bar.

all-outputs:

typeof: bool

default: false

If set to false workspaces group will be shown only in assigned output. Otherwise, all workspace groups are shown.

active-only:

typeof: bool

default: false

If set to true, only the active workspace will be shown.

move-to-monitor:

typeof: bool

default: false

If set to true, open the workspace on the current monitor when clicking on a workspace button.

Otherwise, the workspace will open on the monitor where it was previously assigned. Analog to using `focusworkspaceoncurrentmonitor` dispatcher instead of `workspace` in Hyprland.

ignore-workspaces:

typeof: array

default: []

Regexes to match against workspaces names. If there's a match, the workspace will not be shown. This takes precedence over show-special, all-outputs, and active-only.

sort-by:

typeof: string

default: "default"

If set to number, workspaces will sort by number.

If set to name, workspaces will sort by name. If set to id, workspaces will sort by id. If set to special-centered, workspaces will sort by default with special workspaces in the center. If none of those, workspaces will sort with default behavior.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{id}: id of workspace assigned by compositor

{name}: workspace name assigned by compositor

{icon}: Icon, as defined in format-icons.

## ICONS
Additional to workspace name matching, the following format-icons can be set.

- default: Will be shown, when no string match is found and none of the below conditions have defined icons.

- active: Will be shown, when workspace is active

- special: Will be shown on non-active special workspaces

- empty: Will be shown on non-active, non-special empty persistent workspaces

- visible: Will be shown on workspaces that are visible but not active. For example: this is useful if you want your visible workspaces on other monitors to have the same look as active.

- persistent: Will be shown on non-empty persistent workspaces

## EXAMPLES

```
"hyprland/workspaces": {
	"format": "{name}: {icon}",
	"format-icons": {
		"1": "",
		"2": "",
		"3": "",
		"4": "",
		"5": "",
		"active": "",
		"default": ""
	},
	"persistent-workspaces": {
		"*": 5, // 5 workspaces by default on every monitor
		"HDMI-A-1": 3 // but only three on HDMI-A-1
	}
}
```

```
"hyprland/workspaces": {
	"format": "{name}: {icon}",
	"format-icons": {
		"1": "",
		"2": "",
		"3": "",
		"4": "",
		"5": "",
		"active": "",
		"default": ""
	},
	"persistent-workspaces": {
		"*": [ 2,3,4,5 ], // 2-5 on every monitor
		"HDMI-A-1": [ 1 ] // but only workspace 1 on HDMI-A-1
	}
}
```

```
"hyprland/workspaces": {
	"format": "{name}n{windows}",
	"format-window-separator": "n",
	"window-rewrite-default": "",
	"window-rewrite": {
		"title<.*youtube.*>": "", // Windows whose titles contain "youtube"
		"class<firefox>": "", // Windows whose classes are "firefox"
		"class<firefox> title<.*github.*>": "", // Windows whose class is "firefox" and title contains "github". Note that "class" always comes first.
		"foot": "", // Windows that contain "foot" in either class or title. For optimization reasons, it will only match against a title if at least one other window explicitly matches against a title.
		"code": "󰨞",
		"title<.* - (.*) - VSCodium>": "codium $1"  // captures part of the window title and formats it into output
	}
}
```

```
"hyprland/workspaces": {
	// Formatting omitted for brevity
	"ignore-workspaces": [
		"(special:)?chrome-sharing-indicator"
	]
}
```

## Style

- #workspaces

- #workspaces button

- #workspaces button.active

- #workspaces button.empty

- #workspaces button.visible

- #workspaces button.persistent

- #workspaces button.special

- #workspaces button.urgent

- #workspaces button.hosting-monitor (gets applied if workspace-monitor == waybar-monitor)

- #workspaces .taskbar-window (each window in the taskbar)


waybar-idle-inhibitor

title: waybar-idle-inhibitor(5)

text:
# waybar-idle-inhibitor(5)

## NAME
waybar - idle_inhibitor module

## DESCRIPTION
The idle_inhibitor module can inhibit the idle behavior such as screen blanking, locking, and screensaver, also known as "presentation mode".

## CONFIGURATION
format:

typeof: string

The format, how the state should be displayed.

format-icons:

typeof: array

Based on the current state, the corresponding icon gets selected.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module. A click also toggles the state

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

start-activated:

typeof: bool

default: false

Whether the inhibit should be activated when starting waybar.

timeout:

typeof: double

The number of minutes the inhibition should last.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format-activated:

typeof: string

This format is used when the inhibit is activated.

tooltip-format-deactivated:

typeof: string

This format is used when the inhibit is deactivated.

menu:

typeof: string

Action that popups the menu. Cannot be "on-click".

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{status}: status (activated or deactivated)

{icon}: Icon, as defined in format-icons

## EXAMPLES

```
"idle_inhibitor": {
	"format": "{icon}",
	"format-icons": {
		"activated": "",
		"deactivated": ""
	},
	"timeout": 30.5
}
```

## STYLE

- #idle_inhibitor

- #idle_inhibitor.activated

- #idle_inhibitor.deactivated


waybar-image

title: waybar-image(5)

text:
# waybar-image(5)

## NAME
waybar - image module

## DESCRIPTION
The image module displays an image from a path.

## CONFIGURATION
path:

typeof: string

The path to the image.

exec:

typeof: string

The path to the script, which should return image path file.

It will only execute if the path is not set

size:

typeof: integer

The width/height to render the image.

interval:

typeof: integer

The interval (in seconds) to re-render the image.

This is useful if the contents of path changes.

If no interval is defined, the image will only be rendered once.

signal:

typeof: integer

The signal number used to update the module.

This can be used instead of interval if the file changes irregularly.

The number is valid between 1 and N, where SIGRTMIN+N = SIGRTMAX.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to enable tooltip on hover.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## SCRIPT OUTPUT
Similar to the custom module, output values of the script are newline separated. The following is the output format:

```
$path\n$tooltip
```

## EXAMPLES

```
"image#album-art": {
	"path": "/tmp/mpd_art",
	"size": 32,
	"interval": 5,
	"on-click": "mpc toggle"
}
```

## STYLE

- #image

- #image.empty


waybar-inhibitor

title: waybar-inhibitor(5)

text:
# waybar-inhibitor(5)

## NAME
waybar - inhibitor module

## DESCRIPTION
The inhibitor module allows one to take an inhibitor lock that logind provides. See systemd-inhibit(1) for more information.

## CONFIGURATION
what:

typeof: string or array

The inhibitor lock or locks that should be taken when active. The available inhibitor locks are idle, shutdown, sleep, handle-power-key, handle-suspend-key, handle-hibernate-key and handle-lid-switch.

format:

typeof: string

The format, how the state should be displayed.

format-icons:

typeof: array

Based on the current state, the corresponding icon gets selected.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module. A click also toggles the state

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

menu:

typeof: string

Action that popups the menu. Cannot be "on-click".

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{status}: status (activated or deactivated)

{icon}: Icon, as defined in format-icons

## EXAMPLES

```
"inhibitor": {
	"what": "handle-lid-switch",
	"format": "{icon}",
	"format-icons": {
		"activated": "",
		"deactivated": ""
	}
}
```


waybar-jack

title: waybar-jack(5)

text:
# waybar-jack(5)

## NAME
waybar - JACK module

## DESCRIPTION
The jack module displays the current state of the JACK server.

## CONFIGURATION
Addressed by jack

format:

typeof: string

default: {load}%

The format, how information should be displayed. This format is used when other formats aren't specified.

format-connected:

typeof: string

This format is used when the module is connected to the JACK server.

format-disconnected:

typeof: string

This format is used when the module is not connected to the JACK server.

format-xrun:

typeof: string

This format is used for one polling interval when the JACK server reports an xrun.

realtime:

typeof: bool

default: true

Option to drop real-time privileges for the JACK client opened by Waybar.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: {bufsize}/{samplerate} {latency}ms

The format of information displayed in the tooltip.

interval:

typeof: integer

default: 1

The interval in which the information gets polled.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{load}: The current CPU load estimated by JACK.

{bufsize}: The size of the JACK buffer.

{samplerate}: The sample rate at which the JACK server is running.

{latency}: The duration, in ms, of the current buffer size.

{xruns}: The number of xruns reported by the JACK server since starting Waybar.

## EXAMPLES

```
"jack": {
	"format": "DSP {}%",
	"format-xrun": "{xruns} xruns",
	"format-disconnected": "DSP off",
	"realtime": true
}
```

## STYLE

- #jack

- #jack.connected

- #jack.disconnected

- #jack.xrun


waybar-keyboard-state

title: waybar-keyboard-state(5)

text:
# waybar-keyboard-state(5)

## NAME
waybar - keyboard-state module

## DESCRIPTION
The keyboard-state module displays the state of number lock, caps lock, and scroll lock.

You must be a member of the input group to use this module.

## CONFIGURATION
interval:

Deprecated, this module uses event loop now, the interval has no effect.

typeof: integer

default: 1

The interval, in seconds, to poll the keyboard state.

format:

typeof: string|object

default: {name} {icon}

The format, how information should be displayed. If a string, the same format is used for all keyboard states. If an object, the fields "numlock", "capslock", and "scrolllock" each specify the format for the corresponding state. Any unspecified states use the default format.

format-icons:

typeof: object

default: {"locked": "locked", "unlocked": "unlocked"}

Based on the keyboard state, the corresponding icon gets selected. The same set of icons is used for number, caps, and scroll lock, but the icon is selected from the set independently for each. See icons.

numlock:

typeof: bool

default: false

Display the number lock state.

capslock:

typeof: bool

default: false

Display the caps lock state.

scrolllock:

typeof: bool

default: false

Display the scroll lock state.

device-path:

typeof: string

default: chooses first valid input device

Which libevdev input device to show the state of. Libevdev devices can be found in /dev/input. The device should support number lock, caps lock, and scroll lock events.

binding-keys:

typeof: array

default: [58, 69, 70]

Customize the key to trigger this module, the key number can be found in /usr/include/linux/input-event-codes.h or running sudo libinput debug-events --show-keycodes.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{name}: Caps, Num, or Scroll.

{icon}: Icon, as defined in format-icons.

## ICONS
The following format-icons can be set.

- locked: Will be shown when the keyboard state is locked. Default "locked".

- unlocked: Will be shown when the keyboard state is not locked. Default "unlocked"

## EXAMPLE:

```
"keyboard-state": {
	"numlock": true,
	"capslock": true,
	"format": "{name} {icon}",
	"format-icons": {
		"locked": "",
		"unlocked": ""
	}
}
```

## STYLE

- #keyboard-state

- #keyboard-state label

- #keyboard-state label.locked

- #keyboard-state label.numlock

- #keyboard-state label.numlock.locked

- #keyboard-state label.capslock

- #keyboard-state label.capslock.locked

- #keyboard-state label.scrolllock

- #keyboard-state label.scrolllock.locked


waybar-memory

title: waybar-memory(5)

text:
# waybar-memory(5)

## NAME
waybar - memory module

## DESCRIPTION
The memory module displays the current memory utilization.

## CONFIGURATION
Addressed by memory

interval:

typeof: integer

default: 30

The interval in which the information gets polled.

format:

typeof: string

default: {percentage}%

The format, how information should be displayed.

format-icons:

typeof: array/object

Based on the current percentage, the corresponding icon gets selected.

The order is low to high. Or by the state if it is an object.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

states:

typeof: object

A number of memory utilization states which get activated on certain percentage thresholds. See waybar-states(5).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{percentage}: Percentage of memory in use.

{swapPercentage}: Percentage of swap in use.

{total}: Amount of total memory available in GiB.

{swapTotal}: Amount of total swap available in GiB.

{used}: Amount of used memory in GiB.

{swapUsed}: Amount of used swap in GiB.

{avail}: Amount of available memory in GiB.

{swapAvail}: Amount of available swap in GiB.

{swapState}: Signals if swap is activated or not

## EXAMPLES

```
"memory": {
	"interval": 30,
	"format": "{}% ",
	"max-length": 10
}
```

### FORMATTED MEMORY VALUES

```
"memory": {
	"interval": 30,
	"format": "{used:0.1f}G/{total:0.1f}G "
}
```

## STYLE
•

\#memory


waybar-menu

title: waybar-menu(5)

text:
# waybar-menu(5)

## NAME
waybar - menu property

## OVERVIEW
Some modules support a 'menu', which allows to have a popup menu when a defined click is done over the module.

## PROPERTIES
A module that implements a 'menu' needs 3 properties defined in its config :

menu:

typeof: string

Action that popups the menu. The possibles actions are :

Option

Description

on-click

When you left-click on the module

on-click-release

When you release left button on the module

on-double-click

When you double left click on the module

on-triple-click

When you triple left click on the module

on-click-middle

When you middle click on the module using mousewheel

on-click-middle-release

When you release mousewheel button on the module

on-double-click-middle

When you double middle click on the module

on-triple-click-middle

When you triple middle click on the module

on-click-right

When you right click on the module using

on-click-right-release

When you release right button on the module

on-double-click-right

When you double right click on the module

on-triple-click-right

When you triple middle click on the module

on-click-backward

When you click on the module using mouse backward button

on-click-backward-release

When you release mouse backward button on the module

on-double-click-backward

When you double click on the module using mouse backward button

on-triple-click-backward

When you triple click on the module using mouse backawrd button

on-click-forward

When you click on the module using mouse forward button

on-click-forward-release

When you release mouse forward button on the module

on-double-click-forward

When you double click on the module using mouse forward button

on-triple-click-forward

When you triple click on the module using mouse forward button

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu.

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu. The identifiers of

each actions needs to exists as an id in the 'menu-file' for it to be linked properly.

## MENU-FILE
The menu-file is an `.xml` file representing a GtkBuilder. Documentation for it can be found here : https://docs.gtk.org/gtk4/class.Builder.html

Here, it needs to have an element of type GtkMenu with id "menu". Eeach actions in menu-actions are linked to elements in the menu-file file by the id of the elements.

## EXAMPLE
Module config :

```
"custom/power": {
	"format" : "⏻ ",
		"tooltip": false,
		"menu": "on-click",
		"menu-file": "~/.config/waybar/power_menu.xml",
		"menu-actions": {
			"shutdown": "shutdown",
			"reboot": "reboot",
			"suspend": "systemctl suspend",
			"hibernate": "systemctl hibernate",
		},
},
```

~/.config/waybar/power_menu.xml :

```
<?xml version="1.0" encoding="UTF-8"?>
<interface>

  <object class="GtkMenu" id="menu">
	<child>
		<object class="GtkMenuItem" id="suspend">
			<property name="label">Suspend</property>

        </object>
	</child>
	<child>

        <object class="GtkMenuItem" id="hibernat">
			<property name="label">Hibernate</property>

        </object>
	</child>

    <child>

        <object class="GtkMenuItem" id="shutdown">
			<property name="label">Shutdown</property>

        </object>

    </child>

    <child>

      <object class="GtkSeparatorMenuItem" id="delimiter1"/>

    </child>

    <child>
		<object class="GtkMenuItem" id="reboot">
			<property name="label">Reboot</property>
		</object>

    </child>

  </object>
</interface>
```

## STYLING MENUS
•

menu Style for the menu

•

menuitem Style for items in the menu

## EXAMPLE:

```
menu {
	border-radius: 15px;
	background: #161320;
	color: #B5E8E0;
}
menuitem {
	border-radius: 15px;
}
```


waybar-mpd

title: waybar-mpd(5)

text:
# waybar-mpd(5)

## NAME
waybar - mpd module

## DESCRIPTION
The mpd module displays information about a running "Music Player Daemon" instance.

## CONFIGURATION
Addressed by mpd

server:

typeof: string

The network address or Unix socket path of the MPD server. If empty, connect to the default host.

port:

typeof: integer

The port MPD listens to. If empty, use the default port.

password:

typeof: string

The password required to connect to the MPD server. If empty, no password is sent to MPD.

interval:

typeof: integer

default: 5

The interval in which the connection to the MPD server is retried

timeout:

typeof: integer

default: 30

The timeout for the connection. Change this if your MPD server has a low `connection_timeout` setting

unknown-tag:

typeof: string

default: "N/A"

The text to display when a tag is not present in the current song, but used in `format`

format:

typeof: string

default: "{album} - {artist} - {title}"

Information displayed when a song is playing.

format-stopped:

typeof: string

default: "stopped"

Information displayed when the player is stopped.

format-paused:

typeof: string

This format is used when a song is paused.

format-disconnected:

typeof: string

default: "disconnected"

Information displayed when the MPD server can't be reached.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: "MPD (connected)"

Tooltip information displayed when connected to MPD.

tooltip-format-disconnected:

typeof: string

default: "MPD (disconnected)"

Tooltip information displayed when the MPD server can't be reached.

artist-len:

typeof: integer

Maximum length of the Artist tag.

album-len:

typeof: integer

Maximum length of the Album tag.

album-artist-len:

typeof: integer

Maximum length of the Album Artist tag.

title-len:

typeof: integer

Maximum length of the Title tag.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

state-icons:

typeof: object

default: {}

Icon to show depending on the play/pause state of the player ({ "playing": "...", "paused": "..." })

consume-icons:

typeof: object

default: {}

Icon to show depending on the "consume" option ({ "on": "...", "off": "..." })

random-icons:

typeof: object

default: {}

Icon to show depending on the "random" option ({ "on": "...", "off": "..." })

repeat-icons:

typeof: object

default: {}

Icon to show depending on the "repeat" option ({ "on": "...", "off": "..." })

single-icons:

typeof: object

default: {}

Icon to show depending on the "single" option ({ "on": "...", "off": "..." })

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS

### WHEN PLAYING/PAUSED
{artist}: The artist of the current song

{albumArtist}: The artist of the current album

{album}: The album of the current song

{title}: The title of the current song

{date}: The date of the current song

{volume}: The current volume in percent

{elapsedTime}: The current position of the current song. To format as a date/time (see example configuration)

{totalTime}: The length of the current song. To format as a date/time (see example configuration)

{songPosition}: The position of the current song.

{queueLength}: The length of the current queue.

{uri}: The URI of the song relative to the MPD music directory.

{filename} The last part of the URI.

{stateIcon}: The icon corresponding to the playing or paused status of the player (see state-icons option)

{consumeIcon}: The icon corresponding the "consume" option (see consume-icons option)

{randomIcon}: The icon corresponding the "random" option (see random-icons option)

{repeatIcon}: The icon corresponding the "repeat" option (see repeat-icons option)

{singleIcon}: The icon corresponding the "single" option (see single-icons option)

### WHEN STOPPED
{consumeIcon}: The icon corresponding the "consume" option (see consume-icons option)

{randomIcon}: The icon corresponding the "random" option (see random-icons option)

{repeatIcon}: The icon corresponding the "repeat" option (see repeat-icons option)

{singleIcon}: The icon corresponding the "single" option (see single-icons option)

### WHEN DISCONNECTED
Currently, no format replacements when disconnected.

## EXAMPLES

```
"mpd": {
	"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ",
	"format-disconnected": "Disconnected ",
	"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
	"interval": 2,
	"consume-icons": {
		"on": " " // Icon shows only when "consume" is on
	},
	"random-icons": {
		"off": "<span color="#f53c3c"></span> ", // Icon grayed out when "random" is off
		"on": " "
	},
	"repeat-icons": {
		"on": " "
	},
	"single-icons": {
		"on": "1 "
	},
	"state-icons": {
		"paused": "",
		"playing": ""
	},
	"tooltip-format": "MPD (connected)",
	"tooltip-format-disconnected": "MPD (disconnected)"
}
```

## STYLE

- #mpd

- #mpd.disconnected

- #mpd.stopped

- #mpd.playing

- #mpd.paused


waybar-mpris

title: waybar-mpris(5)

text:
# waybar-mpris(5)

## NAME
waybar - MPRIS module

## DESCRIPTION
The mpris module displays currently playing media via libplayerctl.

## CONFIGURATION
player:

typeof: string

default: playerctld

Name of the MPRIS player to attach to. Using the default value always follows the currently active player.

ignored-players:

typeof: []string

Ignore updates of the listed players, when using playerctld.

interval:

typeof: integer

default: 0

Refresh MPRIS information on a timer.

format:

typeof: string

default: {player} ({status}) {dynamic}

The text format.

format-[status]:

typeof: string

The status-specific text format.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: {player} ({status}) {dynamic}

The tooltip text format.

tooltip-format-[status]:

typeof: string

The status-specific tooltip format.

artist-len:

typeof: integer

Maximum length of the Artist tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the artist in `{dynamic}` tag.

album-len:

typeof: integer

Maximum length of the Album tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the album in `{dynamic}` tag.

title-len:

typeof: integer

Maximum length of the Title tag (Wide/Fullwidth Unicode characters count as two). Set to zero to hide the title in `{dynamic}` tag.

dynamic-len:

typeof: integer

Maximum length of the Dynamic tag (Wide/Fullwidth Unicode characters

count as two). The dynamic tag will not truncate any tags beyond their

set length limits, instead, it will attempt to fit as much of the

available tags as possible. It is recommended you set title-len to

something less than or equal to this value, so the title will always be

displayed.

dynamic-order:

typeof: []string

default: ["title", "artist", "album", "position", "length"]

Order of the tags shown by Dynamic tag. The position and length tags

will always be combined in the format [{position}/{length}]. The order

of these tags in relation to other tags will be determined based on the

declaration of the first among the two tags. Absence in this list means

force exclusion.

dynamic-importance-order:

typeof: []string

default: ["title", "artist", "album", "position", "length"]

Priority of the tags when truncating the Dynamic tag. The final ones

will be the first to be truncated. Absence in this list means force

inclusion.

dynamic-separator:

typeof: string

default: " - "

These characters will be used to separate two different tags, except

when one of these tags is position and length.

truncate-hours:

typeof: bool

default: true

Whether to hide hours when media duration is less than an hour long.

enable-tooltip-len-limits:

typeof: bool

default: false

Option to enable the length limits for the tooltip as well. By default, the tooltip ignores all length limits.

ellipsis:

typeof: string

default: "…"

This character will be used when any of the tags exceed their maximum length. If you don't want to use an ellipsis, set this to empty string.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

default: play-pause

Overwrite default action toggles.

on-click-middle:

typeof: string

default: previous track

Overwrite default action toggles.

on-click-right:

typeof: string

default: next track

Overwrite default action toggles.

player-icons:

typeof: map[string]string

Allows setting {player_icon} based on player-name property.

status-icons:

typeof: map[string]string

Allows setting {status_icon} based on player status (playing, paused, stopped).

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{player}: The name of the current media player

{status}: The current status (playing, paused, stopped)

{artist}: The artist of the current track

{album}: The album title of the current track

{title}: The title of the current track

{length}: Length of the track, formatted as HH:MM:SS

{dynamic}: Use {artist}, {album}, {title} and {length}, automatically omit

empty values

{player_icon}: Chooses an icon from player-icons based on {player}

{status_icon}: Chooses an icon from status-icons based on {status}

## EXAMPLES

```
"mpris": {
	"format": "{player_icon} {dynamic}",
	"format-paused": "{status_icon} <i>{dynamic}</i>",
	"player-icons": {
		"default": "▶",
		"mpv": "🎵"
	},
	"status-icons": {
		"paused": "⏸"
	},
	// "ignored-players": ["firefox"]
}
```

## STYLE

- #mpris

- #mpris.${status}

- #mpris.${player}


waybar-network

title: waybar-network(5)

text:
# waybar-network(5)

## NAME
waybar - network module

## DESCRIPTION
The network module displays information about the current network connections.

## CONFIGURATION
Addressed by network

interface:

typeof: string

Use the defined interface instead of auto-detection. Accepts wildcard.

rfkill:

typeof: bool

default: true

If enabled, the disabled format will be used when rfkill is blocking wlan interfaces.

interval:

typeof: integer

default: 60

The interval in which the network information gets polled (e.g. signal strength).

family:

typeof: string

default: ipv4

The address family that is used for the format replacement {ipaddr} and to determine if a network connection is present. Set it to ipv4_6 to display both.

format:

typeof: string

default: {ifname}

The format, how information should be displayed. This format is used when other formats aren't specified.

format-ethernet:

typeof: string

This format is used when an ethernet interface is displayed.

format-wifi:

typeof: string

This format is used when a wireless interface is displayed.

format-linked:

typeof: string

This format is used when a linked interface with no IP address is displayed.

format-disconnected:

typeof: string

This format is used when the displayed interface is disconnected.

format-disabled:

typeof: string

This format is used when rfkill is blocking wlan interfaces.

format-icons:

typeof: array/object

Based on the current signal strength, the corresponding icon gets selected.

The order is low to high. Or by the state if it is an object.

rotate:

typeof: integer

Positive value to rotate the text label (in 90 degree increments).

max-length:

typeof: integer

The maximum length in character the module should display.

min-length:

typeof: integer

The minimum length in characters the module should accept.

align:

typeof: float

The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

justify:

typeof: string

The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

on-click:

typeof: string

Command to execute when clicked on the module.

on-click-middle:

typeof: string

Command to execute when middle-clicked on the module using mousewheel.

on-click-right:

typeof: string

Command to execute when you right-click on the module.

on-update:

typeof: string

Command to execute when the module is updated.

on-scroll-up:

typeof: string

Command to execute when scrolling up on the module.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

The format, how information should be displayed in the tooltip. This format is used when other formats aren't specified.

tooltip-format-ethernet:

typeof: string

This format is used when an ethernet interface is displayed.

tooltip-format-wifi:

typeof: string

This format is used when a wireless interface is displayed.

tooltip-format-disconnected:

typeof: string

This format is used when the displayed interface is disconnected.

tooltip-format-disabled:

typeof: string

This format is used when rfkill is blocking wlan interfaces.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type

GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{ifname}: Name of the network interface.

{ipaddr}: The first IP of the interface.

{gwaddr}: The default gateway for the interface

{netmask}: The subnetmask corresponding to the IP(V4).

{netmask6}: The subnetmask corresponding to the IP(V6).

{cidr}: The subnetmask corresponding to the IP(V4) in CIDR notation.

{cidr6}: The subnetmask corresponding to the IP(V6) in CIDR notation.

{essid}: Name (SSID) of the wireless network.

{bssid}: MAC address (BSSID) of the wireless access point.

{signalStrength}: Signal strength of the wireless network.

{signaldBm}: Signal strength of the wireless network in dBm.

{frequency}: Frequency of the wireless network in GHz.

{bandwidthUpBits}: Instant up speed in bits/seconds.

{bandwidthDownBits}: Instant down speed in bits/seconds.

{bandwidthTotalBits}: Instant total speed in bits/seconds.

{bandwidthUpOctets}: Instant up speed in octets/seconds.

{bandwidthDownOctets}: Instant down speed in octets/seconds.

{bandwidthTotalOctets}: Instant total speed in octets/seconds.

{bandwidthUpBytes}: Instant up speed in bytes/seconds.

{bandwidthDownBytes}: Instant down speed in bytes/seconds.

{bandwidthTotalBytes}: Instant total speed in bytes/seconds.

{icon}: Icon, as defined in format-icons.

## EXAMPLES

```
"network": {
	"interface": "wlp2s0",
	"format": "{ifname}",
	"format-wifi": "{essid} ({signalStrength}%) ",
	"format-ethernet": "{ifname} ",
	"format-disconnected": "", //An empty format will hide the module.
	"format-disconnected": "",
	"tooltip-format": "{ifname}",
	"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
	"tooltip-format-ethernet": "{ifname} ",
	"tooltip-format-disconnected": "Disconnected",
	"max-length": 50
}
```

## STYLE

- #network

- #network.disconnected

- #network.disabled

- #network.linked

- #network.ethernet

- #network.wifi


waybar-niri-language

title: waybar-niri-language(5)

text:
# waybar-niri-language(5)

## NAME
waybar - niri language module

## DESCRIPTION
The language module displays the currently selected language in niri.

## CONFIGURATION
Addressed by niri/language

format:

typeof: string

default: {}

The format, how information should be displayed.

format-<lang>

typeof: string

Provide an alternative name to display per language where <lang> is the language of your choosing. Can be passed multiple times with multiple languages as shown by the example below.

menu:

typeof: string

Action that popups the menu.

menu-file:

typeof: string

Location of the menu descriptor file. There need to be an element of type GtkMenu with id menu

menu-actions:

typeof: array

The actions corresponding to the buttons of the menu.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{short}: Short name of layout (e.g. "us"). Equals to {}.

{shortDescription}: Short description of layout (e.g. "en").

{long}: Long name of layout (e.g. "English (Dvorak)").

{variant}: Variant of layout (e.g. "dvorak").

## EXAMPLES

```
"niri/language": {
	"format": "Lang: {long}"
	"format-en": "AMERICA, HELL YEAH!"
	"format-tr": "As bayrakları"
}
```

## STYLE
•

\#language


waybar-niri-window

title: waybar-niri-window(5)

text:
# waybar-niri-window(5)

## NAME
waybar - niri window module

## DESCRIPTION
The window module displays the title of the currently focused window in niri.

## CONFIGURATION
Addressed by niri/window

format:

typeof: string

default: {title}

The format, how information should be displayed. On {} the current window title is displayed.

rewrite:

typeof: object

Rules to rewrite window title. See rewrite rules.

separate-outputs:

typeof: bool

Show the active window of the monitor the bar belongs to, instead of the focused window.

icon:

typeof: bool

default: false

Option to hide the application icon.

icon-size:

typeof: integer

default: 24

Option to change the size of the application icon.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
See the output of "niri msg windows" for examples

{title}: The current title of the focused window.

{app_id}: The current app ID of the focused window.

## REWRITE RULES
rewrite is an object where keys are regular expressions and values are rewrite rules if the expression matches. Rules may contain references to captures of the expression.

Regular expression and replacement follow ECMA-script rules.

If no expression matches, the title is left unchanged.

Invalid expressions (e.g., mismatched parentheses) are skipped.

## EXAMPLES

```
"niri/window": {
	"format": "{}",
	"rewrite": {
		"(.*) - Mozilla Firefox": "🌎 $1",
		"(.*) - zsh": "> [$1]"
	}
}
```

## STYLE

- #window

- window#waybar.empty #window When no windows are on the workspace

The following classes are applied to the entire Waybar rather than just the window widget:

- window#waybar.empty When no windows are in the workspace

- window#waybar.solo When only one window is on the workspace

- window#waybar.<app-id> Where app-id is the app ID of the only window on the workspace