waybar-niri-workspaces

title: waybar-niri-workspaces(5)

text:
# waybar-niri-workspaces(5)

## NAME
waybar - niri workspaces module

## DESCRIPTION
The workspaces module displays the currently used workspaces in niri.

## CONFIGURATION
Addressed by niri/workspaces

all-outputs:

typeof: bool

default: false

If set to false, workspaces will only be shown on the output they are on. If set to true all workspaces will be shown on every output.

format:

typeof: string

default: {value}

The format, how information should be displayed.

format-icons:

typeof: array

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

disable-click:

typeof: bool

default: false

If set to false, you can click to change workspace. If set to true this behaviour is disabled.

disable-markup:

typeof: bool

default: false

If set to true, button label will escape pango markup.

current-only:

typeof: bool

default: false

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

on-update:

typeof: string

Command to execute when the module is updated.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{value}: Name of the workspace, or index for unnamed workspaces, as defined by niri.

{name}: Name of the workspace for named workspaces.

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

{index}: Index of the workspace on its output.

{output}: Output where the workspace is located.

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

- default: Will be shown, when no string matches are found.

- focused: Will be shown, when workspace is focused.

- active: Will be shown, when workspace is active on its output.

- urgent: Will be shown, when workspace has urgent windows.

- empty: Will be shown, when workspace is empty.

## EXAMPLES

```
"niri/workspaces": {
	"format": "{icon}",
	"format-icons": {
		// Named workspaces
		// (you need to configure them in niri)
		"browser": "",
		"discord": "",
		"chat": "<b></b>",
		// Icons by state
		"active": "",
		"default": ""
	}
}
```

## Style

- #workspaces button

- #workspaces button.focused: The single focused workspace.

- #workspaces button.active: The workspace is active (visible) on its output.

- #workspaces button.urgent: The workspace has one or more urgent windows.

- #workspaces button.empty: The workspace is empty.

- #workspaces button.current_output: The workspace is from the same output as the bar that it is displayed on.

- #workspaces button#niri-workspace-<name>: Workspaces named this, or index for unnamed workspaces.


waybar-power-profiles-daemon

package: waybar

title: waybar-power-profiles-daemon(5)

text:
# waybar-power-profiles-daemon(5)

## NAME
waybar - power-profiles-daemon module

## DESCRIPTION
The power-profiles-daemon module displays the active power-profiles-daemon profile and cycle through the available profiles on click.

## FILES
$XDG_CONFIG_HOME/waybar/config

## CONFIGURATION
Option

Typeof

Default

Description

format

string

"{icon}"

Message displayed on the bar. {icon} and {profile} are respectively substituted with the icon representing the active profile and its full name.

tooltip-format

string

"Power profile: {profile}\nDriver: {driver}"

Messaged displayed in the module tooltip. {icon} and {profile} are respectively substituted with the icon representing the active profile and its full name.

tooltip

bool

true

Display the tooltip.

format-icons

object

See default value in the example below.

Icons used to represent the various power-profile. Note: the default configuration uses the font-awesome icons. You may want to override it if you don't have this font installed on your system.

expand:

bool

false

Enables this module to consume all left over space dynamically.

## CONFIGURATION EXAMPLES
Compact display (default config):

```
"power-profiles-daemon": {

  "format": "{icon}",

  "tooltip-format": "Power profile: {profile}nDriver: {driver}",

  "tooltip": true,

  "format-icons": {

    "default": "",

    "performance": "",

    "balanced": "",

    "power-saver": ""

  }
}
```

Display the full profile name:

```
"power-profiles-daemon": {

  "format": "{icon}   {profile}",

  "tooltip-format": "Power profile: {profile}nDriver: {driver}",

  "tooltip": true,

  "format-icons": {

    "default": "",

    "performance": "",

    "balanced": "",

    "power-saver": ""

  }
}
```

branch: sisyphus


waybar-privacy

title: waybar-privacy(5)

text:
# waybar-privacy(5)

## NAME
waybar - privacy module

## DESCRIPTION
The privacy module displays if any application is capturing audio, sharing

the screen or playing audio.

## CONFIGURATION
icon-spacing:

typeof: integer

default: 4

The spacing between each privacy icon.

icon-size:

typeof: integer

default: 20

The size of each privacy icon.

transition-duration:

typeof: integer

default: 250

Option to disable tooltip on hover.

modules

typeof: array of objects

default: [{"type": "screenshare"}, {"type": "audio-in"}]

Which privacy modules to monitor. See MODULES CONFIGURATION for

more information.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

ignore-monitor

typeof: bool

default: true

Ignore streams with stream.monitor property.

ignore

typeof: array of objects

default: []

Additional streams to be ignored. See IGNORE CONFIGURATION for

more information.

## MODULES CONFIGURATION
type:

typeof: string

values: "screenshare", "audio-in", "audio-out"

Specifies which module to use and configure.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-icon-size:

typeof: integer

default: 24

The size of each icon in the tooltip.

## IGNORE CONFIGURATION
type:

typeof: string

name:

typeof: string

## EXAMPLES

```
"privacy": {
	"icon-spacing": 4,
	"icon-size": 18,
	"transition-duration": 250,
	"modules": [
		{
			"type": "screenshare",
			"tooltip": true,
			"tooltip-icon-size": 24
		},
		{
			"type": "audio-out",
			"tooltip": true,
			"tooltip-icon-size": 24
		},
		{
			"type": "audio-in",
			"tooltip": true,
			"tooltip-icon-size": 24
		}
	],
	"ignore-monitor": true,
	"ignore": [
		{
			"type": "audio-in",
			"name": "cava"
		},
		{
			"type": "screenshare",
			"name": "obs"
		}
	]
},
```

## STYLE

- #privacy

- #privacy-item

- #privacy-item.screenshare

- #privacy-item.audio-in

- #privacy-item.audio-out


waybar-pulseaudio

title: waybar-pulseaudio(5)

text:
# waybar-pulseaudio(5)

## NAME
waybar - pulseaudio module

## DESCRIPTION
The pulseaudio module displays the current volume reported by PulseAudio.

Additionally, you can control the volume by scrolling up or down while the cursor is over the module.

## CONFIGURATION
format:

typeof: string

default: {volume}%

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

format-bluetooth:

typeof: string

This format is used when using bluetooth speakers.

format-muted:

typeof: string

This format is used when the sound is muted.

format-source:

typeof: string

default: {volume}%

This format used for the source.

format-source-muted:

typeof: string

This format is used when the source is muted.

format-icons:

typeof: array

Based on the current port name and volume, the corresponding icon gets selected. The order is low to high. See Icons.

rotate:

typeof: integer

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

states:

typeof: object

A number of volume states which get activated on certain volume levels. 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.

scroll-step:

typeof: float

default: 1.0

The speed at which to change the volume when scrolling.

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. This replaces the default behaviour of volume control.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module. This replaces the default behaviour of volume control.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

reverse-scrolling:

typeof: bool

Option to reverse the scroll direction.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

max-volume:

typeof: integer

default: 100

The maximum volume that can be set, in percentage.

ignored-sinks:

typeof: array

Sinks in this list will not be shown as active sink by Waybar. Entries should be the sink's description field.

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
{desc}: Pulseaudio port's description, for bluetooth it'll be the device name.

{volume}: Volume in percentage.

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

{format_source}: Source format, format-source, format-source-muted.

## ICONS:
The following strings for format-icons are supported.

•

the device name

If they are found in the current PulseAudio port name, the corresponding icons will be selected.

- default (Shown, when no other port is found)

- headphone

- speaker

- hdmi

- headset

- hands-free

- portable

- car

- hifi

- phone

Additionally, suffixing a device name or port with -muted will cause the icon to be selected when the corresponding audio device is muted. This applies to default as well.

## EXAMPLES

```
"pulseaudio": {
	"format": "{volume}% {icon}",
	"format-bluetooth": "{volume}% {icon}",
	"format-muted": "",
	"format-icons": {
		"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
		"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
		"headphones": "",
		"handsfree": "",
		"headset": "",
		"phone": "",
		"phone-muted": "",
		"portable": "",
		"car": "",
		"default": ["", ""]
	},
	"scroll-step": 1,
	"on-click": "pavucontrol"
}
```

## STYLE

- #pulseaudio

- #pulseaudio.bluetooth

- #pulseaudio.muted


waybar-pulseaudio-slider

title: waybar-pulseaudio-slider(5)

text:
# waybar-pulseaudio-slider(5)

## NAME
waybar - pulseaudio slider module

## DESCRIPTION
The pulseaudio slider module displays and controls the current volume of the default sink or source as a bar.

The volume can be controlled by dragging the slider across the bar or clicking on a specific position.

## CONFIGURATION
min:

typeof: int

default: 0

The minimum volume value the slider should display and set.

max:

typeof: int

default: 100

The maximum volume value the slider should display and set.

orientation:

typeof: string

default: horizontal

The orientation of the slider. Can be either `horizontal` or `vertical`.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## EXAMPLES

```
"modules-right": [

    "pulseaudio/slider",
],
"pulseaudio/slider": {

    "min": 0,

    "max": 100,

    "orientation": "horizontal"
}
```

## STYLE
The slider is a component with multiple CSS Nodes, of which the following are exposed:

\#pulseaudio-slider:

Controls the style of the box around the slider and bar.

\#pulseaudio-slider slider:

Controls the style of the slider handle.

\#pulseaudio-slider trough:

Controls the style of the part of the bar that has not been filled.

\#pulseaudio-slider highlight:

Controls the style of the part of the bar that has been filled.

### STYLE EXAMPLE

```
#pulseaudio-slider slider {

    min-height: 0px;

    min-width: 0px;

    opacity: 0;

    background-image: none;

    border: none;

    box-shadow: none;
}
#pulseaudio-slider trough {

    min-height: 80px;

    min-width: 10px;

    border-radius: 5px;

    background-color: black;
}
#pulseaudio-slider highlight {

    min-width: 10px;

    border-radius: 5px;

    background-color: green;
}
```


waybar-river-layout

title: waybar-river-layout(5)

text:
# waybar-river-layout(5)

## NAME
waybar - river layout module

## DESCRIPTION
The layout module displays the current layout in river.

It may not be set until a layout is first applied.

## CONFIGURATION
Addressed by river/layout

format:

typeof: string

default: {}

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

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.

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.

## EXAMPLE

```
"river/layout": {
	"format": "{}",
	"min-length": 4,
	"align": "right"
}
```

## STYLE

- #layout

- #layout.focused Applied when the output this module's bar belongs to is focused.

- #layout.<layout> Applied when the output this module's bar belongs uses this layout.

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


waybar-river-mode

title: waybar-river-mode(5)

text:
# waybar-river-mode(5)

## NAME
waybar - river mode module

## DESCRIPTION
The mode module displays the current mapping mode of river.

## CONFIGURATION
Addressed by river/mode

format:

typeof: string

default: {}

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

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.

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

```
"river/mode": {
	"format": " {}"
}
```

## STYLE

- #mode

- #mode.<mode>


waybar-river-tags

title: waybar-river-tags(5)

text:
# waybar-river-tags(5)

## NAME
waybar - river tags module

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

## CONFIGURATION
Addressed by river/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.

hide-vacant:

typeof: bool

default: false

Only show relevant tags: tags that are either focused or have a window on them.

## EXAMPLE

```
"river/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), river(1)


waybar-river-window

title: waybar-river-window(5)

text:
# waybar-river-window(5)

## NAME
waybar - river window module

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

## CONFIGURATION
Addressed by river/window

format:

typeof: string

default: {}

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

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.

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

```
"river/window": {
	"format": "{}"
}
```

## STYLE

- #window

- #window.focused Applied when the output this module's bar belongs to is focused.


waybar-states

title: waybar-states(5)

text:
# waybar-states(5)

## NAME
waybar - states property

## OVERVIEW
Some modules support 'states' which allows percentage values to be used as styling triggers to apply a class when the value matches the declared state value.

## 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 value is equal to or less than the configured <value> for the battery module, or equal to or greater than the configured <value> for all other modules.

•

Also, each state can have its own format. Those can be configured via format-<name>, or if you want to differentiate a bit more, as format-<status>-<state>.

## EXAMPLE

```
"battery": {
	"bat": "BAT2",
	"interval": 60,
	"states": {
		"warning": 30,
		"critical": 15
	},
	"format": "{capacity}% {icon}",
	"format-icons": ["", "", "", "", ""],
	"max-length": 25
}
```

## STYLING STATES
•

\#battery.<state> - <state> can be defined in the config.

## EXAMPLE:

- #battery.warning: { background: orange; }

- #battery.critical: { background: red; }


waybar-styles

title: waybar-styles(5)

text:
# waybar-styles(5)

## NAME
waybar-styles - using stylesheets for waybar

## DESCRIPTION
Waybar uses Cascading Style Sheets (CSS) to configure its appearance.

It uses the first file found in this search order:

- $XDG_CONFIG_HOME/waybar/style.css

- ~/.config/waybar/style.css

- ~/waybar/style.css

- /etc/xdg/waybar/style.css

- /etc/xdg/waybar/style.css

## EXAMPLE
An example user-controlled stylesheet that just changes the color of the clock to be green on black, while keeping the rest of the system config the same would be:

```
@import url("file:///etc/xdg/waybar/style.css")
#clock {

  background: #000000;

  color: #00ff00;
}
```

### Hover-effect
You can apply special styling to any module for when the cursor hovers it.

```
#clock:hover {

  background-color: #ffffff;
}
```

### Setting cursor style
Most, if not all, module types support setting the `cursor` option. This is configured in your `config.jsonc`. If set to `false`, when hovering the module a "pointer"(as commonly known from web CSS styling `cursor: pointer`) style cursor will not be shown. Default behavior is to indicate an interaction event is available.

There are more cursor types to choose from by setting the `cursor` option to a number, see Gdk3 official docs for all possible cursor types: https://docs.gtk.org/gdk3/enum.CursorType.html. However, note that not all cursor options listed may be available on your system. If you attempt to use a cursor which is not available, the application will crash.

Example of disabling pointer(`Gdk::Hand2`) cursor type on a custom module:

```
"custom/my-custom-module": {

    ...

    "cursor": false,
}
```

Example of setting cursor type to `Gdk::Boat`(according to https://docs.gtk.org/gdk3/enum.CursorType.html#boat):

```
"custom/my-custom-module": {

    ...

    "cursor": 8,
}
```

## SEE ALSO
•

waybar(5)


waybar-sway-language

title: waybar-sway-language(5)

text:
# waybar-sway-language(5)

## NAME
waybar - sway language module

## DESCRIPTION
The language module displays the current keyboard layout in Sway

## CONFIGURATION
Addressed by sway/language

format:

typeof: string

default: {}

The format, how layout should be displayed.

hide-single-layout:

typeof: bool

default: false

Defines visibility of the module if a single layout is configured

tooltip-format:

typeof: string

default: {}

The format, how layout should be displayed in tooltip.

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
{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").

{flag}: Country flag of layout.

## EXAMPLES

```
"sway/language": {
	"format": "{}",
},
"sway/language": {
	"format": "{short} {variant}",
}
```

## STYLE
•

\#language


waybar-sway-mode

title: waybar-sway-mode(5)

text:
# waybar-sway-mode(5)

## NAME
waybar - sway mode module

## DESCRIPTION
The mode module displays the current binding mode of Sway

## CONFIGURATION
Addressed by sway/mode

format:

typeof: string

default: {}

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

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.

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

```
"sway/mode": {
	"format": " {}",
	"max-length": 50
}
```

## STYLE
•

\#mode


waybar-sway-scratchpad

title: waybar-sway-scratchpad(5)

text:
# waybar-sway-scratchpad(5)

## NAME
waybar - sway scratchpad module

## DESCRIPTION
The scratchpad module displays the scratchpad status in Sway

## CONFIGURATION
Addressed by sway/scratchpad

format:

typeof: string

default: {icon} {count}

The format, how information should be displayed.

show-empty:

typeof: bool

default: false

Option to show module when scratchpad is empty.

format-icons:

typeof: array/object

Based on the current scratchpad window counts, the corresponding icon gets selected.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: {app}: {title}

The format, how information in the tooltip should be displayed.

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
{icon}: Icon, as defined in format-icons.

{count}: Number of windows in the scratchpad.

{app}: Name of the application in the scratchpad.

{title}: Title of the application in the scratchpad.

## EXAMPLES

```
"sway/scratchpad": {
	"format": "{icon} {count}",
	"show-empty": false,
	"format-icons": ["", ""],
	"tooltip": true,
	"tooltip-format": "{app}: {title}"
}
```

## STYLE

- #scratchpad

- #scratchpad.empty


waybar-sway-window

title: waybar-sway-window(5)

text:
# waybar-sway-window(5)

## NAME
waybar - sway window module

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

## CONFIGURATION
Addressed by sway/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.

all-outputs:

typeof: bool

default: false

Option to show the focused window along with its workspace styles on all outputs.

offscreen-css:

typeof: bool

default: false

Only effective when all-outputs is true. Adds style according to present windows on unfocused outputs instead of showing the focused window and style.

offscreen-css-text:

typeof: string

Only effective when both all-outputs and offscreen-style are true. On screens currently not focused, show the given text along with that workspace styles.

show-focused-workspace-name:

typeof: bool

default: false

If the workspace itself is focused and the workspace contains nodes or floating_nodes, show the workspace name. If not set, text remains empty but styles according to nodes in the workspace are still applied.

show-hidden-marks:

typeof: bool

default: false

For the {marks} format replacement, include hidden marks that start with an underscore.

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.

{shell}: The shell of the focused window. It's 'xwayland' when the window is running through xwayland, otherwise, it's 'xdg-shell'.

{marks}: Marks of the 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

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

## STYLE
•

\#window

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, or screen is not focused and offscreen-css option is not set

- window#waybar.solo When one tiled window is in the workspace

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

- window#waybar.stacked When there is more than one window in the workspace and the workspace layout is stacked

- window#waybar.tabbed When there is more than one window in the workspace and the workspace layout is tabbed

- window#waybar.tiled When there is more than one window in the workspace and the workspace layout is splith or splitv

- window#waybar.<app_id> Where app_id is the app_id or instance name like (chromium) of the only window in the workspace


waybar-sway-workspaces

title: waybar-sway-workspaces(5)

text:
# waybar-sway-workspaces(5)

## NAME
waybar - sway workspaces module

## DESCRIPTION
The workspaces module displays the currently used workspaces in Sway.

## CONFIGURATION
Addressed by sway/workspaces

all-outputs:

typeof: bool

default: false

If set to false, workspaces will only be shown on the output they are on. If set to true all workspaces will be shown on every output.

format:

typeof: string

default: {value}

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.

disable-scroll:

typeof: bool

default: false

If set to false, you can scroll to cycle through workspaces. If set to true this behaviour is disabled.

reverse-scroll:

typeof: bool

default: false

If set to false, scrolling up will switch to the previous workspace and scrolling down will switch to the next workspace. If set to true, the behavior will be reversed.

disable-click:

typeof: bool

default: false

If set to false, you can click to change workspace. If set to true this behaviour is disabled.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

disable-scroll-wraparound:

typeof: bool

default: false

If set to false, scrolling on the workspace indicator will wrap around to the first workspace when reading the end, and vice versa. If set to true this behavior is disabled.

enable-bar-scroll:

typeof: bool

default: false

If set to false, you can't scroll to cycle throughout workspaces from the entire bar. If set to true this behaviour is enabled.

disable-markup:

typeof: bool

default: false

If set to true, button label will escape pango markup.

current-only:

typeof: bool

default: false

If set to true. Only focused workspaces will be shown.

persistent-workspaces:

typeof: json (see below)

default: empty

Lists workspaces that should always be shown, even when non-existent

on-update:

typeof: string

Command to execute when the module is updated.

disable-auto-back-and-forth:

typeof: bool

Whether to disable workspace_auto_back_and_forth when clicking on workspaces. If this is set to true, clicking on a workspace you are already on won't do anything, even if workspace_auto_back_and_forth is enabled in the Sway configuration.

alphabetical_sort:

typeof: bool

Whether to sort workspaces alphabetically. Please note this can make "swaymsg workspace prev/next" move to workspaces inconsistent with the ordering shown in Waybar.

warp-on-scroll:

typeof: bool

default: true

If set to false, you can scroll to cycle through workspaces without mouse warping being enabled. If set to true this behaviour is disabled.

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. 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. For Wayland windows `class` is matched against the `app_id`, and for X11 windows against the `class` property.

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.

format-window-separator:

typeof: string

default: " "

The separator to be used between windows in a workspace.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS
{value}: Name of the workspace, as defined by sway.

{name}: Number stripped from workspace value.

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

{index}: Index of the workspace.

{output}: Output where the workspace is located.

{windows}: Result from window-rewrite

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

- default: Will be shown, when no string matches are found.

- urgent: Will be shown, when workspace is flagged as urgent

- focused: Will be shown, when workspace is focused

- persistent: Will be shown, when workspace is persistent.

- high-priority-named: Icons by names will be shown always for those workspaces, independent by state.

## PERSISTENT WORKSPACES
Each entry of persistent_workspace names a workspace that should always be shown. Associated with that value is a list of outputs indicating where the workspace should be shown, an empty list denoting all outputs.

```
"sway/workspaces": {
	"persistent-workspaces": {
		"3": [], // Always show a workspace with name '3', on all outputs if it does not exist
		"4": ["eDP-1"], // Always show a workspace with name '4', on output 'eDP-1' if it does not exist
		"5": ["eDP-1", "DP-2"] // Always show a workspace with name '5', on outputs 'eDP-1' and 'DP-2' if it does not exist
	}
}
```

n.b.: the list of outputs can be obtained from command line using swaymsg -t get_outputs

## EXAMPLES

```
"sway/workspaces": {
	"disable-scroll": true,
	"all-outputs": true,
	"format": "{name}: {icon}",
	"format-icons": {
		"1": "",
		"2": "",
		"3": "",
		"4": "",
		"5": "",
		"high-priority-named": [ "1", "2" ],
		"urgent": "",
		"focused": "",
		"default": ""
	}
}
```

```
"sway/workspaces": {

  "format": "<span size='larger'>{name}</span> {windows}",

  "format-window-separator": " | ",

  "window-rewrite-default": "{name}",

  "window-format": "<span color='#e0e0e0'>{name}</span>",

  "window-rewrite": {

    "class<firefox>": "",

    "class<kitty>": "k",
	"title<.* - (.*) - VSCodium>": "codium $1"  // captures part of the window title and formats it into output

  }
}
```

## Style

- #workspaces button

- #workspaces button.visible

- #workspaces button.focused

- #workspaces button.urgent

- #workspaces button.persistent

- #workspaces button.empty

- #workspaces button.current_output

- #workspaces button#sway-workspace-${name}


waybar-systemd-failed-units

title: waybar-systemd-failed-units(5)

text:
# waybar-systemd-failed-units(5)

## NAME
waybar - systemd failed units monitor module

## DESCRIPTION
The systemd-failed-units module displays the number of failed systemd units.

## CONFIGURATION
Addressed by systemd-failed-units

format:

typeof: string

default: {nr_failed} failed

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

format-ok:

typeof: string

This format is used when there is no failing units.

user:

typeof: bool

default: true

Option to count user systemd units.

system:

typeof: bool

default: true

Option to count systemwide (PID=1) systemd units.

hide-on-ok:

typeof: bool

default: true

Option to hide this module when there is no failing units.

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
{nr_failed_system}: Number of failed units from systemwide (PID=1) systemd.

{nr_failed_user}: Number of failed units from user systemd.

{nr_failed}: Number of total failed units.

{systemd_state}: State of the systemd system session

{user_state}: State of the systemd user session

{overall_state}: Overall state of the systemd and user session. ("Ok" or "Degraded")

## EXAMPLES

```
"systemd-failed-units": {
	"hide-on-ok": false,
	"format": "✗ {nr_failed}",
	"format-ok": "✓",
	"system": true,
	"user": false,
}
```

## STYLE

- #systemd-failed-units

- #systemd-failed-units.ok

- #systemd-failed-units.degraded


waybar-temperature

title: waybar-temperature(5)

text:
# waybar-temperature(5)

## NAME
waybar - temperature module

## DESCRIPTION
The temperature module displays the current temperature from a thermal zone.

## CONFIGURATION
Addressed by temperature

thermal-zone:

typeof: integer

The thermal zone, as in /sys/class/thermal/.

hwmon-path:

typeof: string

The temperature path to use, e.g. /sys/class/hwmon/hwmon2/temp1_input instead of one in /sys/class/thermal/.

This can also be an array of strings. In this case, waybar will check each item in the array and use the first valid one. This is suitable if you want to share the same configuration file among different machines with different hardware configurations.

hwmon-path-abs:

typeof: string

The path of the hwmon-directory of the device, e.g. /sys/devices/pci0000:00/0000:00:18.3/hwmon. (Note that the subdirectory hwmon/hwmon#, where # is a number is not part of the path!) Has to be used together with input-filename.

This can also be an array of strings, for which, it just works like hwmon-path.

input-filename:

typeof: string

The temperature filename of your hwmon-path-abs, e.g. temp1_input

warning-threshold:

typeof: integer

The threshold before it is considered warning (Celsius).

critical-threshold:

typeof: integer

The threshold before it is considered critical (Celsius).

interval:

typeof: integer

default: 10

The interval in which the information gets polled.

format-warning:

typeof: string

The format to use when temperature is considered warning

format-critical:

typeof: string

The format to use when temperature is considered critical

format:

typeof: string

default: {temperatureC}°C

The format (Celsius/Fahrenheit/Kelvin) in which the temperature should be displayed.

format-icons:

typeof: array

Based on the current temperature (Celsius) and critical-threshold if available, the corresponding icon gets selected. The order is low to high.

tooltip-format:

typeof: string

default: {temperatureC}°C

The format for the tooltip

rotate:

typeof: integer

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

max-length:

typeof: integer

The maximum length in characters 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 you click 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
{temperatureC}: Temperature in Celsius.

{temperatureF}: Temperature in Fahrenheit.

{temperatureK}: Temperature in Kelvin.

## EXAMPLES

```
 "temperature": {
	// "thermal-zone": 2,
	// "hwmon-path": ["/sys/class/hwmon/hwmon2/temp1_input", "/sys/class/thermal/thermal_zone0/temp"],
	// "critical-threshold": 80,
	// "format-critical": "{temperatureC}°C ",
	"format": "{temperatureC}°C "
}
```

## STYLE

- #temperature

- #temperature.critical


waybar-tray

title: waybar-tray(5)

text:
# waybar-tray(5)

## NAME
waybar - tray module

## DESCRIPTION
WARNING tray is still in beta. There may be bugs. Breaking changes may occur.

## CONFIGURATION
Addressed by tray

icon-size:

typeof: integer

Defines the size of the tray icons.

show-passive-items:

typeof: bool

default: false

Defines visibility of the tray icons with Passive status.

smooth-scrolling-threshold:

typeof: double

Threshold to be used when scrolling.

spacing:

typeof: integer

Defines the spacing between the tray icons.

reverse-direction:

typeof: bool

Defines if new app icons should be added in a reverse order

on-update:

typeof: string

Command to execute when the module is updated.

expand:

typeof: bool

default: false

Enables this module to consume all left over space dynamically.

## EXAMPLES

```
"tray": {
	"icon-size": 21,
	"spacing": 10,

  "icons": {

    "blueman": "bluetooth",

    "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"

  }
}
```

## STYLE

- #tray

- #tray > .passive

- #tray > .active

- #tray > .needs-attention


waybar-upower

title: waybar-upower(5)

text:
# waybar-upower(5)

## NAME
waybar - upower module

## DESCRIPTION
The upower module displays the main battery capacity with all other upower compatible devices in the tooltip.

## CONFIGURATION
native-path:

typeof: string

default:

The battery to monitor. Refer to the https://upower.freedesktop.org/docs/UpDevice.html#UpDevice--native-path

Can be obtained using `upower --dump`

model:

typeof: string

default:

The battery to monitor, based on the model. (this option is ignored if native-path is given).

Can be obtained using `upower --dump`

icon-size:

typeof: integer

default: 20

Defines the size of the icons.

format:

typeof: string

default: {percentage}

The text format.

format-alt:

typeof: string

default: {percentage} {time}

The text format when toggled.

hide-if-empty:

typeof: bool

default: true

Defines visibility of the module if no devices can be found.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-spacing:

typeof: integer

default: 4

Defines the spacing between the tooltip device name and device battery

status.

tooltip-padding:

typeof: integer

default: 4

Defines the spacing between the tooltip window edge and the tooltip content.

on-click:

typeof: string

Command to execute when clicked on the module.

show-icon:

typeof: bool

default: true

Option to disable battery icon.

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.

## FORMAT REPLACEMENTS
{percentage}: The battery capacity in percentage

{time}: An estimated time either until empty or until fully charged

depending on the charging state.

## EXAMPLES

```
"upower": {
	"icon-size": 20,
	"hide-if-empty": true,
	"tooltip": true,
	"tooltip-spacing": 20
}
```

```
"upower": {
	"native-path": "/org/bluez/hci0/dev_D4_AE_41_38_D0_EF",
	"icon-size": 20,
	"hide-if-empty": true,
	"tooltip": true,
	"tooltip-spacing": 20
}
```

```
"upower": {
	"native-path": "battery_sony_controller_battery_d0o27o88o32ofcoee",
	"icon-size": 20,
	"hide-if-empty": true,
	"tooltip": true,
	"tooltip-spacing": 20
}
```

```
"upower": {
	"show-icon": false,
	"hide-if-empty": true,
	"tooltip": true,
	"tooltip-spacing": 20
}
```

## STYLE

- #upower

- #upower.charging

- #upower.discharging

- #upower.full

- #upower.empty

- #upower.unknown-status


waybar-wireplumber

title: waybar-wireplumber(5)

text:
# waybar-wireplumber(5)

## NAME
waybar - WirePlumber module

## DESCRIPTION
The wireplumber module displays the current volume reported by WirePlumber.

## CONFIGURATION
format:

typeof: string

default: {volume}%

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

format-muted:

typeof: string

This format is used when the sound is muted.

node-type:

typeof: string

default: Audio/Sink

The WirePlumber node type to attach to. Use Audio/Source to manage microphones etc.

tooltip:

typeof: bool

default: true

Option to disable tooltip on hover.

tooltip-format:

typeof: string

default: {node_name}

The format of information displayed in the tooltip.

rotate:

typeof: integer

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

states:

typeof: object

A number of volume states which get activated on certain volume levels. 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.

scroll-step:

typeof: float

default: 1.0

The speed at which to change the volume when scrolling.

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. This replaces the default behaviour of volume control.

on-scroll-down:

typeof: string

Command to execute when scrolling down on the module. This replaces the default behaviour of volume control.

max-volume:

typeof: float

default: 100

The maximum volume that can be set, in percentage.

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.

## FORMAT REPLACEMENTS
{volume}: Volume in percentage.

{node_name}: The node's nickname as reported by WirePlumber (node.nick property)

## EXAMPLES

### Basic:

```
"wireplumber": {
	"format": "{volume}%",
	"format-muted": "",
	"on-click": "helvum"
}
```

### Separate Sink and Source Widgets

```
"wireplumber#sink": {

    "format": "{volume}% {icon}",

    "format-muted": "",

    "format-icons": ["", "", ""],

    "on-click": "helvum",

    "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",

    "scroll-step": 5
},
"wireplumber#source": {

    "node-type": "Audio/Source",

    "format": "{volume}% ",

    "format-muted": "",

    "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",

    "scroll-step": 5
}
```

## STYLE

- #wireplumber

- #wireplumber.muted


waybar-wlr-taskbar

title: waybar-wlr-taskbar(5)

text:
# waybar-wlr-taskbar(5)

## NAME
waybar - wlr taskbar module

## DESCRIPTION
The taskbar module displays the currently open applications. This module requires a compositor that implements the foreign-toplevel-manager interface.

## CONFIGURATION
Addressed by wlr/taskbar

all-outputs:

typeof: bool

default: false

If set to false applications on the waybar's current output will be shown. Otherwise, all applications are shown.

format:

typeof: string

default: {icon}

The format, how information should be displayed.

icon-theme:

typeof: array|string

The names of the icon-themes that should be used to find an icon. The list will be traversed from left to right. If omitted, the system default will be used.

icon-size:

typeof: integer

default: 16

The size of the icon.

markup:

typeof: bool

default: false

If set to true, pango markup will be accepted in format and tooltip-format.

tooltip:

typeof: bool

default: true

If set to false no tooltip will be shown.

tooltip-format:

typeof: string

default: {title}

The format, how information in the tooltip should be displayed.

active-first:

typeof: bool

default: false

If set to true, always reorder the tasks in the taskbar so that the currently active one is first. Otherwise don't reorder.

sort-by-app-id:

typeof: bool

default: false

If set to true, group tasks by their app_id. Cannot be used with 'active-first'.

on-click:

typeof: string

The action which should be triggered when clicking on the application button with the left mouse button.

on-click-middle:

typeof: string

The action which should be triggered when clicking on the application button with the middle mouse button.

on-click-right:

typeof: string

The action which should be triggered when clicking on the application button with the right mouse button.

on-update:

typeof: string

Command to execute when the module is updated.

ignore-list:

typeof: array

List of app_id/titles to be invisible.

app_ids-mapping:

typeof: object

Dictionary of app_id to be replaced with

rewrite:

typeof: object

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

## FORMAT REPLACEMENTS
{icon}: The icon of the application.

{name}: The application name as in desktop file if appropriate desktop files are found, otherwise same as {app_id}

{title}: The title of the application.

{app_id}: The app_id (== application name) of the application.

{state}: The state (minimized, maximized, active, fullscreen) of the application.

{short_state}: The state (minimize == m, maximized == M, active == A, fullscreen == F) represented as one character of the application.

## CLICK ACTIONS
activate: Bring the application into foreground.

minimize: Toggle application's minimized state.

minimize-raise: Bring the application into foreground or toggle its minimized state.

maximize: Toggle application's maximized state.

fullscreen: Toggle application's fullscreen state.

close: Close the application.

## 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

```
"wlr/taskbar": {
	"format": "{icon}",
	"icon-size": 14,
	"icon-theme": "Numix-Circle",
	"tooltip-format": "{title}",
	"on-click": "activate",
	"on-click-middle": "close",
	"ignore-list": [
	    "Alacritty"
	],
	"app_ids-mapping": {
		"firefoxdeveloperedition": "firefox-developer-edition"
	},
	"rewrite": {
		"Firefox Web Browser": "Firefox",
		"Foot Server": "Terminal"
	}
}
```

## Style

- #taskbar

- #taskbar button

- #taskbar button.maximized

- #taskbar button.minimized

- #taskbar button.active

- #taskbar button.fullscreen


ignore.list

package: websec

title: ignore.list(5)

summary: websec url monitoring configuration

text:
# ignore.list(5)

## NAME
ignore.list - websec url monitoring configuration

## DESCRIPTION

### IGNORE KEYWORDS
When determining which parts of a particular web page has changed, you may want to skip those paragraphs that contains certain predefined words. For example, pages like InfoWorld, PC Magazine and PC Week often contain the current date/time regardless of whether there is new or changed content. In such cases, you can use IGNORE KEYWORDS to skip those paragraphs which contains date/time information.

Ignore keywords are stored in a file called "ignore.list" in the same directory as websec. Like the URL list, the ignore keywords are partitioned into different sections. Each section has a user-defined name. An example is shown below:

```
        [General]
        all rights reserved
        an error occurred
        click here
        comments
        copyright
        [Date_Time]
        January\s+\d{1,2}
        February\s+\d{1,2}
        March\s+\d{1,2}
        April\s+\d{1,2}
        May\s+\d{1,2}
```

In the example above, there are two sections: "General" and "Date_Time". You can use them in the URL list as follows:

```
    Ignore = General
```

You can also use multiple sections at one go:

```
    Ignore = General,Date_Time
```

If you use certain ignore keywords regularly, you might want to add them to a defaults section in the URL list.

Ignore keywords can contain regular expressions. For example, the ignore keyword "January\s+\d{1,2}" tells websec to look for the string "January", followed by one or more spaces, followed by at least one but not more than two digits.

Two sections of ignore keywords are supplied in this distribution. "General" contains some general ignore keywords which you may want to use. "Date_Time" contains date/time detectors coded using regular expressions. Feel free to add your own!

### IGNORE URLS
Most advertisements in webpages are of the following form:

```
        <A HREF="http://page.url.com/advert/cgi-bin/" ...>
        <IMG SRC="advert.animated.gif" ...>
        Click here for free beer!
        </A>
```

Such advertisements can be ignored when running webdiff using ignore URLs.

Ignore URLs are also stored in "ignore.list". They contain all of parts of the URL referred to by the <A HREF> tag which you want to ignore. An example is shown below:

```
        [Adverts]
        page.url.com/advert/cgi-bin/
```

Use the "Adverts" section in the URL list as follows:

```
    IgnoreURL = Adverts
```

You can also use multiple sections at one go:

```
    IgnoreURL = Adverts1,Adverts2
```

If you use certain ignore URLs regularly, you might want to add them to a defaults section in the URL list.

Like ignore keywords, ignore URLs can contain regular expressions.

An "Adverts" section is supplied in this distribution. Feel free to add your own!

## SEE ALSO
url.list(5)

## AUTHOR
Baruch Even <websec@ev-en.org> is maintaining this program.


url.list

title: url.list(5)

summary: websec url monitoring configuration

text:
# url.list(5)

## NAME
url.list - websec url monitoring configuration

## DESCRIPTION
The URL list consists of one or more sections separated by newlines. You can have sections without a URL, they will update the defaults for all the subsequenet blocks. The Name and Prefix parameters are required as well as one of Email, EmailLink and Program. The rest are completely optional.

The following parameters (case-sensitive) are recognized in each section:

```
    URL        - URL of web page to monitor
    Name       - Name of web site. Pages delivered to you will have the
                 following format: "Name - Date (Day)" eg. "PC Magazine - 4
                 Sep 98 (Fri)"
    Prefix     - Prefix of filenames for archive files of web pages created
                 by Web Secretary.
    Email      - Comma-delimited list of email addresses to send highlighted
                 pages to.
    EmailLink  - Comma-delimited list of email addresses to send URL of
                 changed pages to.
    Program    - application to call with the diff-file, special cases:
                 "mozilla", pages are opened in new tabs,
                 "konqueror", pages are opened using "kfmclient openURL"
    Auth       - Authentication information in "username:password" format.
                 Put "none" if no authentication needed.
    Diff       - Put "none" if you want Web Secretary to always mail this
                 page to you instead of checking for and highlighting
                 changes in the page.  Put "webdiff" if you want Web
                 Secretary to check for changes.
                 Put "htmldiff" to use a different implementation of HTML
                 diff output. Note that you need to install the perl-modules
                 Algorithm::Diff and HTML::Diff which are availabe on
                 http://www.cpan.org/ for this to work.
    Hicolor   -  Color used to highlight new or changed content. Currently,
                 four colors are defined. They are: blue, pink, yellow and
                 grey. You can also supply your own HTML color tag in the
                 form "#rrggbb".
    Ignore     - Comma-delimited List of section names containing ignore
                 keywords. There must be NO SPACES between delimiters and
                 section names. The ignore sections and keywords are stored
                 in a file called "ignore.list".
    IgnoreURL  - Comma-delimited List of section names containing ignore
                 URLs. There must be NO SPACES between delimiters and
                 section names. The ignore sections and keywords are stored
                 in a file called "ignore.list".
    AsciiMarker - If set to 1 it will add ascii markers around the changes so
                     that highlighting is noticeable in text mode too. Useful for
                                 text MUAs users.
    Tmin       - Every token containing <= Tmin words will not be highlighted
                 for differences.
    Tmax       - Every token containing >= Tmax words will not be checked for
                 ignore keywords.
    Proxy      - Specify proxy "http://your.proxy.here:portnum" if you are
                 using one. (Alternatively, you can make use of the
                 "http_proxy" environment variable)
    ProxyAuth  - Specify proxy authentication in "username:password" format.
                 The code for this feature was contributed by Volker Stampa.
    MailFrom   - The E-Mail address to send mail from, this can be left empty
                 and the user used to run websec will be used.
    ProgramDigest - If specified "true", websec does not open all changed pages
                 separately with the application specified in "Program", but opens
                 a summary page that contains links to all changed pages.
    Digest     - true|false or yes|no. This works only if EmailLink is
                 specified. It consolidates all the changed URLs and sends
                 them in one email.
    UserAgent  - The User-Agent that will be sent by the web client. This can
                 be used to bypass servers that prevent access based on the user
                 agent.
    DateFMT    - Date format to use in e-mail messages, can be empty for no date.
                 Set it to " - %Y-%m-%d" for ISO dates. This is perl format for dates.
    RandomWait - Websec waits for a random number of seconds between retries up
                 to the value specified by the RandomWait keyword. This is to
                 prevent websec from being blocked by websites that perform log
                 analysis to find time similarities between requests.
```

Any line which begins with a '#' is treated as comment and ignored.

If a section does not contain a URL entry, the values provided will be treated as the default for the following sections.

For example,

```
    # Defaults
    Auth = none
    Diff = webdiff
    Hicolor = blue
    Ignore = General,Date_Time
    IgnoreURL = Adverts
    Tmin = 1
    Tmax = 10
    Proxy = http://proxy.nus.edu.sg:8080
    Email = vchew@post1.com
    # Web page to monitor which does not require authentication
    URL = http://browserwatch.iworld.com/news.html
    Name = Browser Watch
    Prefix = browsewatch
    # New defaults with authentication information
    Auth = user:password
    # More web pages to monitor which requires authentication
    URL = http://www.infoworld.com
    Name = Infoworld
    Prefix = infoworld
    URL = http://developer.javasoft.com/
    Name = Java Developer Central
    Prefix = jdc
```

## SEE ALSO
ignore.list(5)

## AUTHOR
Baruch Even <websec@ev-en.org> is maintaining this program.


weston.ini

package: weston

title: weston.ini(5)

summary: configuration file for

text:
# weston.ini(5)

## NAME
weston.ini - configuration file for Weston - a Wayland compositor

## INTRODUCTION
Weston obtains configuration from its command line parameters and the configuration file described here.

## DESCRIPTION
Weston uses a configuration file called weston.ini for its setup. The weston.ini configuration file is searched for in one of the following places when the server is started:

```
$XDG_CONFIG_HOME/weston.ini   (if $XDG_CONFIG_HOME is set)
$HOME/.config/weston.ini      (if $HOME is set)
weston/weston.ini in each
    $XDG_CONFIG_DIR           (if $XDG_CONFIG_DIRS is set)
/etc/xdg/weston/weston.ini    (if $XDG_CONFIG_DIRS is not set)
```

where environment variable $HOME is the user's home directory, and $XDG_CONFIG_HOME is the user specific configuration directory, and $XDG_CONFIG_DIRS is a colon ':' delimited listed of configuration base directories, such as /etc/xdg-foo:/etc/xdg.

The weston.ini file is composed of a number of sections which may be present in any order, or omitted to use default configuration values. Each section has the form:

```
[SectionHeader]
Key1=Value1
Key2=Value2

    ...
```

The spaces are significant. Comment lines are ignored:

```
#comment
```

The section headers are:

```
core           The core modules and options
libinput       Input device configuration
shell          Desktop customization
launcher       Add launcher to the panel
output         Output configuration
input-method   Onscreen keyboard input
keyboard       Keyboard layouts
terminal       Terminal application options
xwayland       XWayland options
autolaunch     Autolaunch options
```

Possible value types are string, signed and unsigned 32-bit integer, and boolean. Strings must not be quoted, do not support any escape sequences, and run till the end of the line. Integers can be given in decimal (e.g. 123), octal (e.g. 0173), and hexadecimal (e.g. 0x7b) form. Boolean values can be only 'true' or 'false'.

## CORE SECTION
The core section is used to select the startup compositor modules and general options.

shell=desktop

specifies a shell to load (string). This can be used to load your own implemented shell or one with Weston as default. Available shells in the /usr/lib64/weston directory are:

```
desktop
ivi
kiosk
lua
```

xwayland=true

ask Weston to load the XWayland module (boolean).

backend=headless

overrides defaults backend. Available backends are:

```
drm
headless
rdp
pipewire
vnc
wayland
x11
```

repaint-window=N

Set the approximate length of the repaint window in milliseconds. The repaint window is used to control and reduce the output latency for clients. If the window is longer than the output refresh period, the repaint will be done immediately when the previous repaint finishes, not processing client requests in between. If the repaint window is too short, the compositor may miss the target vertical blank, increasing output latency. The default value is 7 milliseconds. The allowed range is from 1 to 1000 milliseconds, but the compositor will reduce large values to 1 millisecond less than the current refresh rate.

idle-time=seconds

sets Weston's idle timeout in seconds. This idle timeout is the time after which Weston will enter an "inactive" mode and screen will fade to black. A value of 0 disables the timeout. Important : This option may also be set via Weston's '-i' command line option and will take precedence over the current .ini option. This means that if both weston.ini and command line define this idle-timeout time, the one specified in the command-line will be used. On the other hand, if none of these sets the value, default idle timeout will be set to 300 seconds.

require-input=true

require an input device for launch

require-outputs=any

configures the behavior if Weston fails to configure and enable outputs. Depending on the use-case, it may preferable to ensure that Weston only starts if it can enable all available outputs, or that it ignores failed outputs. The possible options are:

```
all-found    all available outputs must be enabled
any          start if any output could be enabled
none         start even if no output was enabled
```

wait-for-debugger=true

Raises SIGSTOP before initializing the compositor. This allows the user to attach with a debugger and continue execution by sending SIGCONT. This is useful for debugging a crash on start-up when it would be inconvenient to launch weston directly from a debugger. Boolean, defaults to false. There is also a command line option to do the same.

remoting=remoting-plugin.so

specifies a plugin for remote output to load (string). This can be used to load your own implemented remoting plugin or one with Weston as default. Available remoting plugins in the __libweston_modules_dir__ directory are:

```
remoting-plugin.so
```

renderer=auto

Selects a renderer to use for internal composition when required, or auto to select the most appropriate renderer. Available renderers are:

```
auto
gl
noop
pixman
```

Not all backends support all renderers. use-pixman=true

Deprecated in favour of the renderer= option. Enables pixman-based rendering for all outputs on backends that support it. Boolean, defaults to false. There is also a command line option to do the same.

color-management=true

Enables color management and requires using GL-renderer. Boolean, defaults to false. TENTATIVE, EXPERIMENTAL, WORK IN PROGRESS: Color management enables the use of ICC files to describe monitor color behavior, Wayland protocol extensions for clients to describe their color spaces and perform monitor profiling, and tone mapping required to enable HDR video modes. This extended functionality comes at the cost of heavier image processing and sometimes a loss of some hardware off-loading features like composite-bypass.

output-decorations=true

For headless-backend with GL-renderer only: draws output window decorations, similar to what wayland-backend does for floating output windows. Boolean, defaults to false. These decorations cannot normally be screenshot. This option is useful for the Weston test suite only.

output-straight-alpha=true

Require straight alpha framebuffers from renderers for outputs. Only supported by the headless backend. Boolean, defaults to false.

placeholder-color=0xRRGGBB

sets the color of the placeholder (unsigned integer). The hexadecimal digit pairs are in order red, green, and blue. This placeholder is used for content-protection or when we're not able to lift a surface/view in a HW plane, but we require direct scan-out of buffers. Defaults to 0x660000 (red grenadier).

## LIBINPUT SECTION
The libinput section is used to configure input devices when using the libinput input device backend. The defaults are determined by libinput and vary according to what is most sensible for any given device.

Available configuration are:

enable-tap=false

Enables tap to click on touchpad devices.

tap-and-drag=false

For touchpad devices with enable-tap enabled. If the user taps, then taps a second time, this time holding, the virtual mouse button stays down for as long as the user keeps their finger on the touchpad, allowing the user to click and drag with taps alone.

tap-and-drag-lock=false

For touchpad devices with enable-tap and tap-and-drag enabled. In the middle of a tap-and-drag, if the user releases the touchpad for less than a certain number of milliseconds, then touches it again, the virtual mouse button will remain pressed and the drag can continue.

disable-while-typing=true

For devices that may be accidentally triggered while typing on the keyboard, causing a disruption of the typing. Disables them while the keyboard is in use.

middle-button-emulation=false

For pointer devices with left and right buttons, but no middle button. When enabled, a middle button event is emitted when the left and right buttons are pressed simultaneously.

left-handed=false

Configures the device for use by left-handed people. Exactly what this option does depends on the device. For pointers with left and right buttons, the buttons are swapped. On tablets, the tablet is logically turned upside down, because it will be physically turned upside down.

rotation=n

Changes the direction of the logical north, rotating it n degrees clockwise away from the default orientation, where n is a whole number between 0 and 359 inclusive. Needed for trackballs, mainly. Allows the user to orient the trackball sideways, for example.

accel-profile={flat,adaptive}

Set the pointer acceleration profile. The pointer's screen speed is proportional to the physical speed with a certain constant of proportionality. Call that constant alpha. flat keeps alpha fixed. See accel-speed. adaptive causes alpha to increase with physical speed, giving the user more control when the speed is slow, and more reach when the speed is high. adaptive is the default.

accel-speed=v

If accel-profile is set to flat, it simply sets the value of alpha. If accel-profile is set to adaptive, the effect is more complicated, but generally speaking, it will change the pointer's speed. v is normalised and must lie in the range [-1, 1]. The exact mapping between v and alpha is hardware-dependent, but higher values cause higher cursor speeds.

natural-scroll=false

Enables natural scrolling, mimicking the behaviour of touchscreen scrolling. That is, if the wheel, finger, or fingers are moved down, the surface is scrolled up instead of down, as if the finger, or fingers were in contact with the surface being scrolled.

scroll-method={two-finger,edge,button,none}

Sets the scroll method. two-finger scrolls with two fingers on a touchpad. edge scrolls with one finger on the right edge of a touchpad. button scrolls when the pointer is moved while a certain button is pressed. See scroll-button. none disables scrolling altogether.

scroll-button={BTN_LEFT,BTN_RIGHT,BTN_MIDDLE,...}

For devices with scroll-method set to button. Specifies the button that will trigger scrolling. See /usr/include/linux/input-event-codes.h for the complete list of possible values.

disable-input=false

Ignore all libinput-based input devices.

touchscreen_calibrator=true

Advertise the touchscreen calibrator interface to all clients. This is a potential denial-of-service attack vector, so it should only be enabled on trusted userspace. Boolean, defaults to false. The interface is required for running touchscreen calibrator applications. It provides the application raw touch events, bypassing the normal touch handling. It also allows the application to upload a new calibration into the compositor.

Even though this option is listed in the libinput section, it does affect all Weston configurations regardless of the used backend. If the backend does not use libinput, the interface can still be advertised, but it will not list any devices.

calibration_helper=/bin/echo

An optional calibration helper program to permanently save a new touchscreen calibration. String, defaults to unset. The given program will be executed with seven arguments when a calibrator application requests the server to take a new calibration matrix into use. The program is executed synchronously and will therefore block Weston for its duration. If the program exit status is non-zero, Weston will not apply the new calibration. If the helper is unset or the program exit status is zero, Weston will use the new calibration immediately.

The program is invoked as:

```
calibration_helper syspath m1 m2 m3 m4 m5 m6
```

where syspath is the udev sys path for the device and m1 through m6 are the calibration matrix elements in libinput's LIBINPUT_CALIBRATION_MATRIX udev property format. The sys path is an absolute path and starts with the sys mount point.

## SHELL SECTION
The shell section is used to customize the compositor. Some keys may not be handled by different shell plugins.

The entries that can appear in this section are:

client=/usr/lib64/weston/clients/weston-desktop-shell

specifies the path for the shell client to run. It is possible to pass arguments and environment variables to the program, for example, 'ENVFOO=bar ENVBAR=baz /path/to/program --arg anotherarg', with entries that are space-separated but with no support for quoting. If no client was specified then weston-desktop-shell is launched (string).

background-image=file

sets the path for the background image file (string).

background-type=tile

determines how the background image is drawn (string). Can be centered, scale, scale-crop, scale-fit or tile (default). Centered shows the image once centered. If the image is smaller than the output, the rest of the surface will be in background color. If the image size does fit the output it will be cropped left and right, or top and bottom. Scale means scaled to fit the output precisely, not preserving aspect ratio. Scale-crop preserves aspect ratio, scales the background image just big enough to cover the output, and centers it. The image ends up cropped from left and right, or top and bottom, if the aspect ratio does not match the output. Scale-fit is similar to scale-crop but it fits to the output so the image does not get cropped. Tile repeats the background image to fill the output.

background-color=0xRRGGBB

sets the color of the background (unsigned integer). The hexadecimal digit pairs are in order red, green, and blue. To maintain backward compatibility, 0xAARRGGBB format values are allowed, but AA is ignored and the background is always solid. Since a background color of 0 means no background color, a black background can be specified as 0xff000000.

clock-format=format

sets the panel clock format (string). Can be none, minutes, seconds, minutes-24h, seconds-24h. By default, minutes format is used.

panel-color=0xAARRGGBB

sets the color of the panel (unsigned integer). The hexadecimal digit pairs are in order transparency, red, green, and blue. Examples:

```
0xffff0000    Red
0xff00ff00    Green
0xff0000ff    Blue
0x00ffffff    Fully transparent
```

panel-position=top

sets the position of the panel (string). Can be top, bottom, left, right, none.

locking=true

enables screen locking (boolean).

animation=zoom

sets the effect used for opening new windows (string). Can be zoom, fade, none. By default, no animation is used.

close-animation=fade

sets the effect used when closing windows (string). Can be fade, none. By default, the fade animation is used.

startup-animation=fade

sets the effect used by desktop-shell when starting up (string). Can be fade, none. By default, the fade animation is used.

focus-animation=dim-layer

sets the effect used with the focused and unfocused windows. Can be dim-layer, none. By default, no animation is used.

allow-zap=true

whether the shell should quit when the Ctrl-Alt-Backspace key combination is pressed

disallow-output-changed-move=false

whether the shell should move client's window to a different/another output than the one assigned initially and is no longer available/enabled/plugged in.

binding-modifier=ctrl

sets the modifier key used for common bindings (string), such as moving surfaces, resizing, rotating, switching, closing and setting the transparency for windows, controlling the backlight and zooming the desktop. See weston-bindings(7). Possible values: none, ctrl, alt, super (default)

cursor-theme=theme

sets the cursor theme (string).

cursor-size=24

sets the cursor size (unsigned integer).

lua-script=script

sets the Lua script which will be interpreted and executed when starting the lua-shell. Path can be either absolute or relative using the current working directory.

## LAUNCHER SECTION
There can be multiple launcher sections, one for each launcher.

icon=icon

sets the path to icon image (string). Svg images are not currently supported.

displayname=displayname

sets the display name of the launcher that appears in the tooltip.

path=program

sets the path to the program that is run by clicking on this launcher (string). It is possible to pass arguments and environment variables to the program. For example:

```
path=GDK_BACKEND=wayland gnome-terminal --full-screen

```

## OUTPUT SECTION
There can be multiple output sections, each corresponding to one output. It is currently only recognized by the drm and x11 backends.

name=name

sets a name for the output (string). The backend uses the name to identify the output. All X11 output names start with a letter X. All Wayland output names start with the letters WL. Examples of usage:

```
LVDS1    DRM backend, Laptop internal panel no.1
VGA1     DRM backend, VGA connector no.1
X1       X11 backend, X window no.1
WL1      Wayland backend, Wayland window no.1
```

See weston-drm(7) for more details.

mode=mode

sets the output mode (string). The mode parameter is handled differently depending on the backend. On the X11 backend, it just sets the WIDTHxHEIGHT of the weston window. The DRM backend accepts different modes, along with an option of a modeline string. See weston-drm(7) for examples of modes-formats supported by DRM backend.

transform=normal

How you have rotated your monitor from its normal orientation (string). The transform key can be one of the following 8 strings:

```
normal               Normal output.
rotate-90            90 degrees clockwise.
rotate-180           Upside down.
rotate-270           90 degrees counter clockwise.
flipped              Horizontally flipped
flipped-rotate-90    Flipped and 90 degrees clockwise
flipped-rotate-180   Flipped and upside down
flipped-rotate-270   Flipped and 90 degrees counter clockwise
```

scale=factor

The scaling multiplier applied to the entire output, in support of high resolution ("HiDPI" or "retina") displays, that roughly corresponds to the pixel ratio of the display's physical resolution to the logical resolution. Applications that do not support high resolution displays typically appear tiny and unreadable. Weston will scale the output of such applications by this multiplier, to make them readable. Applications that do support their own output scaling can draw their content in high resolution, in which case they avoid compositor scaling. Weston will not scale the output of such applications, and they are not affected by this multiplier.

An integer, 1 by default, typically configured as 2 or higher when needed, denoting the scaling multiplier for the output.

icc_profile=file

If option color-management is true, load the given ICC file as the output color profile. This works only on DRM, headless, wayland, and x11 backends, and for remoting and pipewire outputs.

color-profile=name

Color profiles describe how the display is assumed to behave. Knowing the display color behavior, Weston can adapt window contents to produce the presumed appearance. The option color-management must be set to true for this to work. This works only on DRM, headless, wayland, and x11 backends, and for remoting and pipewire outputs. If icc_profile is also set, that is used instead. This key creates a parametric profile to be used as the output color profile. The profile can be created from parameters recorded in a color-profile section by referring to it by its name value. Alternatively this key can use one of the special profile names that contain a colon (:).

The default is color-profile=auto:.

The following special names are accepted:

srgb:

Creates a parametric sRGB color profile (gamma 2.2).

auto:[flags...]

Creates an automatic parametric color profile.

Automatic parametric color profiles are created based on the eotf-mode and colorimetry-mode configuration keys of the respective output section, and optionally using the monitor reported EDID (DRM-backend only). Multiple flags must be separated by whitespace. The available flags are:

edid-primaries

Get primaries and white point from EDID if colorimetry-mode is default. Ignored if EDID does not provide all of them.

edid-tf

Get transfer function from EDID if eoft-mode is sdr or hdr-gamma. The transfer function is the power-law curve with the EDID indicated exponent.

edid-dr

Get dynamic range information from EDID if eotf-mode is st2084.

Examples:

```
color-profile=srgb:
color-profile=auto:
color-profile=auto:edid-tf edid-dr
color-profile=auto: edid-primaries
color-profile=my-awesome-display
```

The last example causes Weston to read the color-profile section that has name=my-awesome-display.

Notably, setting

```
eotf-mode=sdr
colorimetry-mode=default
color-profile=auto:
```

produces the same color profile as color-profile=srgb:.

color-effect=name

Use the given color effect for the output. For now we only provide color effects for color vision deficiencies (CVD). Only works when option color-management is false. The effect can be one of the following strings:

inversion

color inversion, i.e. the RGB complement

grayscale

convert colors to shades of gray

deuteranopia

color correction (not simulation) for deuteranopia

protanopia

color correction (not simulation) for protanopia

tritanopia

color correction (not simulation) for tritanopia

seat=name

The logical seat name that this output should be associated with. If this is set then the seat's input will be confined to the output that has the seat set on it. The expectation is that this functionality will be used in a multiheaded environment with a single compositor for multiple output and input configurations. The default seat is called "default" and will always be present. This seat can be constrained like any other.

allow_hdcp=true

Allows HDCP support for this output. If set to true, HDCP can be tried for the content-protection, provided by the backends, on this output. By default, HDCP support is always allowed for an output. The content-protection can actually be realized, only if the hardware (source and sink) support HDCP, and the backend has the implementation of content-protection protocol. Currently, HDCP is supported by drm-backend.

content-type=content_type

The type of the content being primarily displayed to this output. Can be "no data" (default), "graphics", "photo", "cinema" or "game".

app-ids=app-id[,app_id]*

A comma separated list of the IDs of applications to place on this output. These IDs should match the application IDs as set with the xdg_shell.set_app_id request. Currently, this option is supported by kiosk-shell.

colorimetry-mode=default

Sets the colorimetry mode on the output. The colorimetry mode together with the EOTF mode below define the color encoding used in the video signal. The colorimetry mode is used for choosing between the default sink defined colorimetry (intended to be described by EDID), and standardised other encodings that support wide color gamut (WCG). The display driver, the graphics card, and the video sink (monitor) need to support the chosen mode, otherwise the result is undefined or fails.

The mode can be one of the following strings:

```
default              default (RGB) colorimetry, video sink dependant
bt2020cycc           Rec. ITU-R BT.2020 constant luminance YCbCr
bt2020ycc            Rec. ITU-R BT.2020 non-constant luminance YCbCr
bt2020rgb            Rec. ITU-R BT.2020 RGB
p3d65                SMPTE ST 2113 DCI-P3 RGB D65
p3dci                SMPTE ST 2113 DCI-P3 RGB Theater
ictcp                Rec. ITU-R BT.2100 ICtCp
```

Defaults to default. Non-default modes require color-management=true. Note: The operating system might not honor the choice between RGB and YCbCr, that may be picked by a Linux display driver automatically.

eotf-mode=sdr

Sets the EOTF mode on the output. This is used for choosing between standard dynamic range (SDR) mode and the various high dynamic range (HDR) modes. The display driver, the graphics card, and the video sink (monitor) need to support the chosen mode, otherwise the result is undefined. The mode can be one of the following strings:

```
sdr                  traditional gamma, SDR
hdr-gamma            traditional gamma, HDR
st2084               SMPTE ST 2084, a.k.a Perceptual Quantizer
hlg                  Hybrid Log-Gamma (ITU-R BT.2100)
```

Defaults to sdr. Non-SDR modes require color-management=true.

mirror-of=ouput_name

Makes the remote output overlap (mirror) the native output identified by the mirror-of value. This is useful for sharing or mirroring a native DRM output. The output mirroring the DRM native one, will inherit the same video modeline as the DRM native one, including the refresh rate and scale of the native output. Note that depending on the remote backend, automatic output resize will be disabled when mirroring is in effect. Mirroring a DRM native output to another DRM native output is yet not supported, being intended only for remote outputs. NOTE: The native outputs created by the DRM backend using the 'clone-of' are for cloning the outputs, and not sharing or mirroring. See also weston-drm(7).

vrr-mode=mode

Sets the variable refresh rate mode of the display. The mode can be one of the following strings:

```
none                 variable refresh rate is disabled
game                 game variable refresh rate
```

Defaults to "none".

underscan=type

Some displays will scale up the signal they receive, spilling some framebuffer content off the edges of the display. This is a throw-back to the days of analog CRTs and broadcast video with auxiliary signals that could sometimes appear in the visible region of the screen. Receivers would apply an arbitrary scale factor to all content to hide the auxiliary signal outside the borders of the screen. Some modern displays still use overscan, with no way to defeat it, causing the edges of weston's content to be outside of the display's viewable area. This option, if supported by the driver, will tell the driver to scale down the content to compensate for the display's overscan. The amount of overscan a display uses is not queryable, and must be manually compensated for using the border values in underscan-hborder and underscan-vborder.

The type may be one of the following:

off

underscan is disabled

on

underscan is enabled

auto

the display driver may enable underscan

Defaults to off

underscan-hborder=pixels

Sets the width, in pixels, of the horizontal borders to be used on the left and right edges of the screen if underscan is enabled. Default is 0.

underscan-vborder=pixels

Sets the height, in pixels, of the vertical borders to be used on top and bottom edges of the screen if underscan is enabled. Default is 0.

color-format=format

Forces a specific color-format to be generated by the display driver.

```
auto              auto - driver-dependant color format (usually fallback to RGB)
rgb               RGB color format
yuv444            YUV color format with no subsampling
yuv422            YUV color format with 4:2:2 subsampling
yuv420            YUV color format with 4:2:0 subsampling
```

Defaults to "auto". In case the color format specified is not found it fallbacks to "auto". Note that this is dependant both on the supported color formats by display driver and on the color formats supported the sink/output. Weston will print out the supported color formats which could be used on a particular output.

## INPUT-METHOD SECTION
path=/usr/lib64/weston/clients/weston-keyboard

sets the path of the on screen keyboard input method (string). It is possible to pass arguments and environment variables to the program, for example, 'ENVFOO=bar ENVBAR=baz /path/to/program --arg anotherarg', with entries that are space-separated but with no support for quoting.

overlay-keyboard=false

sets weston-keyboard as overlay panel.

## KEYBOARD SECTION
This section contains the following keys:

keymap_rules=evdev

sets the keymap rules file (string). Used to map layout and model to input device.

keymap_model=pc105

sets the keymap model (string). See the Models section in xkeyboard-config(7).

keymap_layout=us,de,gb

sets the comma separated list of keyboard layout codes (string). See the Layouts section in xkeyboard-config(7).

keymap_variant=euro,,intl

sets the comma separated list of keyboard layout variants (string). The number of variants must be the same as the number of layouts above. See the Layouts section in xkeyboard-config(7).

keymap_options=grp:alt_shift_toggle,grp_led:scroll

sets the keymap options (string). See the Options section in xkeyboard-config(7).

repeat-rate=40

sets the rate of repeating keys in characters per second (unsigned integer)

repeat-delay=400

sets the delay in milliseconds since key down until repeating starts (unsigned integer)

numlock-on=false

sets the default state of the numlock on weston startup for the backends which support it.

vt-switching=true

Whether to allow the use of Ctrl+Alt+Fn key combinations to switch away from the compositor's virtual console.

## TERMINAL SECTION
Contains settings for the weston terminal application (weston-terminal). It allows to customize the font and shell of the command line interface.

font=DejaVu Sans Mono

sets the font of the terminal (string). For a good experience it is recommended to use monospace fonts. In case the font is not found, the default one is used.

font-size=14

sets the size of the terminal font (unsigned integer).

term=xterm-256color

The terminal shell (string). Sets the $TERM variable.

## XWAYLAND SECTION
path=/usr/bin/Xwayland

sets the path to the xserver to run (string).

## AUTOLAUNCH SECTION
path=/usr/bin/echo

Path to an executable file to run after startup. This file is executed in parallel to Weston, so it does not have to immediately exit. Defaults to empty.

watch=false

If set to true, quit Weston after the auto-launched executable exits. Set to false by default.

## COLOR-PROFILE SECTION
Each color-profile section records one set of basic display color characterisation parameters. Some parameters are collected into groups. Each group must be given either fully or not at all. A usable section must contain at least the signaling primaries (Signaling primaries group or prim_named) and the transfer function (tf_named or tf_power).

Each section must be named with name key by which it can be referenced from other sections. A color-profile section is just a collection of parameter values and does nothing on its own. It has an effect only when referenced from elsewhere.

See output section key color-profile.

name=name

An arbitrary name for this section. You can choose any name you want as long as it does not contain the colon (:) character. Names with at least one colon are reserved.

prim_named=name

A standardised set of primaries and white point for signaling. The following names are recognized:

srgb

sRGB (IEC 61966-2-1) and ITU-R BT.709

pal_m

PAL-M (ITU-R BT.470-6)

pal

PAL (ITU-R BT.470-6), ITU-R BT.601-7 625-line

ntsc

NTSC (SMPTE 170M-2004), ITU-R BT.601-7 525-line

generic_film

generic film with color filters using Illuminant C (ITU-T H.273)

bt2020

ITU-R BT.2020 and BT.2100

cie1931_xyz

CIE 1931 XYZ (ITU-T H.273)

dci_p3

DCI P3 (SMPTE RP 431-2)

display_p3

Apple Display P3, SMPTE EG 432-1

adobe_rgb

Adobe RGB (ISO 12640)

Mutually exclusive with the Signaling primaries group with which one can define custom primaries and white point.

target_named=name

A standardised set of primaries and white point for the targeted color volume. The same set of names are recognized as for prim_named.

Mutually exclusive with the Target primaries group with which one can define custom primaries and white point.

tf_named=name

A standard transfer function or characteristic. The following names are recognized:

bt1886

Rec. ITU-R BT.1886 display transfer characteristic. Defaults to min_lum=0.01. ref_lum=100, max_lum=100.

gamma22

Assumed display gamma 2.2 transfer function. An sRGB display (IEC 61966-2-1) uses this transfer function.

gamma28

Assumed display gamma 2.8 transfer function.

st240

SMPTE ST 240 (1999)

st428

SMPTE ST 428-1 (2019)

st2084

SMPTE ST 2084 Perceptual Quantizer (PQ) transfer characteristic. Defaults to min_lum=0.005, ref_lum=203.

linear

Linear transfer function defined over all real numbers. Normalised electrical values are equal the normalised optical values.

log100

Logarithmic transfer characteristic (100:1 range).

log316

Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range).

xvycc

IEC 61966-2-4

hlg

Rec. ITU-R BT.2100 HLG transfer characteristic. Defaults to min_lum=0.005, ref_lum=203, max_lum=1000.

Unless otherwise stated above, the default signaling luminance values are min_lum=0.2, ref_lum=80, max_lum=80. See Signaling luminances group.

Mutually exclusive with tf_power.

tf_power=E

Mutually exclusive with tf_named. Set the transfer function as the power-law curve with the given exponent E, a real number in the range [1.0, 10.0]. Defaults to min_lum=0.2, ref_lum=80, max_lum=80.

max_fall=L

Display's desired maximum frame-average light level L cd/m². Undefined when not set.

max_cll=L

Display's maximum content light level L cd/m². Undefined when not set.

### Signaling primaries group
prim_red=x y

prim_green=x y

prim_blue=x y

prim_white=x y

The signaling primaries group defines the primaries and the white point used for encoding tristimulus into RGB values, also known as the primary color volume. The x and y are the CIE 1931 2-degree observer chromaticity coordinates. The values must be in the range [-1.0, 2.0]. For an easier way to define standard primaries, see prim_named which is mutually exclusive with the signaling primaries group.

### Signaling luminances group
min_lum=Lmin

ref_lum=Lref

max_lum=Lmax

Lmin–Lmax is the dynamic range of the display corresponding to 0%–100% signal levels. For the tf_named=st2084 setting the Lmax value is overwritten with 10'000 + Lmin. Lref is the reference luminance level to which all application contents are matched, also referred to as graphics white luminance or standard dynamic range peak luminance. All values are positive real numbers in cd/m². Lmin can also be zero. Lmin must be less than Lref and Lmax. When not set, the default values depend on the chosen transfer function or characteristic.

### Target primaries group
target_red=x y

target_green=x y

target_blue=x y

target_white=x y

The target color volume is similar to the Mastering Display Color Volume (MDCV) in that any encoded stimulus outside of it has an undefined presentation. This is particularly useful with a display that uses a wide gamut signal encoding (e.g. BT.2020) but can only produce a subset of that color gamut. The x and y are the CIE 1931 2-degree observer chromaticity coordinates. The values must be in the range [-1.0, 2.0]. When not set, defaults to the primary color volume.

For an easier way to define standard targets, see target_named which is mutually exclusive with the target primaries group.

### Target luminances group
target_min_lum=Lmin

target_max_lum=Lmax

Luminance range of the target color volume. Lmin and Lmax are positive real numbers in cd/m². Lmin may also be zero, and it must be less than Lmax. When not set, defaults to the signaling luminance range.

## SEE ALSO
weston(1), weston-bindings(7), weston-drm(7), xkeyboard-config(7)