sway-output

title: sway-output(5)

text:
# sway-output(5)

## NAME
sway-output - output configuration commands for sway

## DESCRIPTION
You may combine output commands into one, like so:

output HDMI-A-1 mode 1920x1080 pos 1920 0 bg ~/wallpaper.png stretch

You can get a list of output names with swaymsg -t get_outputs. You may also match any output by using the output name "*". Additionally, "-" can be used to match the focused output by name and "--" can be used to match the focused output by its identifier.

Some outputs may have different names when disconnecting and reconnecting. To identify these, the name can be substituted for a string consisting of the make, model and serial which you can get from swaymsg -t get_outputs. Each value must be separated by one space. For example:

output "Some Company ABC123 0x00000000" pos 1920 0

## COMMANDS
output <name> mode|resolution|res [--custom] <width>x<height>[@<rate>Hz]

Configures the specified output to use the given mode. Modes are a combination of width and height (in pixels) and a refresh rate that your display can be configured to use. For a list of available modes for each output, use swaymsg -t get_outputs. To set a custom mode not listed in the list of available modes, use --custom. You should probably only use this if you know what you're doing.

Examples:

output HDMI-A-1 mode 1920x1080 output HDMI-A-1 mode 1920x1080@60Hz

output <name> modeline <clock> <hdisplay> <hsync_start> <hsync_end> <htotal> <vdisplay> <vsync_start> <vsync_end> <vtotal> <hsync> <vsync>

Configures the specified output to use the given modeline. It can be generated using cvt(1) and gtf(1) commands. See xorg.conf(5). Only supported on DRM backend. Example:

output HDMI-A-1 modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

output <name> position|pos <X> <Y>

Places the specified output at the specific position in the global coordinate space. The cursor may only be moved between immediately adjacent outputs. If scaling is active, it has to be considered when positioning. For example, if the scaling factor for the left output is 2, the relative position for the right output has to be divided by 2. The reference point is the top left corner so if you want the bottoms aligned this has to be considered as well. Example:

output HDMI1 scale 2 output HDMI1 pos 0 1020 res 3200x1800

output eDP1 pos 1600 0 res 1920x1080

Note that the left x-pos of eDP1 is 1600 = 3200/2 and the bottom y-pos is 1020 + (1800 / 2) = 1920 = 0 + 1920

output <name> scale <factor>

Scales the specified output by the specified scale factor. An integer is recommended, but fractional values are also supported. You may be better served by setting an integer scale factor and adjusting the font size of your applications to taste. HiDPI isn't supported with Xwayland clients (windows will blur). A fractional scale may be slightly adjusted to match requirements of the protocol.

output <name> scale_filter linear|nearest|smart

Indicates how to scale application buffers that are rendered at a scale lower than the output's configured scale, such as lo-dpi applications on hi-dpi screens. Linear is smoother and blurrier, nearest (also known as nearest neighbor) is sharper and blockier. Setting "smart" will apply nearest scaling when the output has an integer scale factor, otherwise linear. The default is "smart".

output <name> subpixel rgb|bgr|vrgb|vbgr|none

Manually sets the subpixel hinting for the specified output. This value is usually auto-detected, but some displays may misreport their subpixel geometry. Using the correct subpixel hinting allows for sharper text. Incorrect values will result in blurrier text. When changing this via swaymsg, some applications may need to be restarted to use the new value.

output <name> background|bg <file> <mode> [<fallback_color>]

Sets the wallpaper for the given output to the specified file, using the given scaling mode (one of "stretch", "fill", "fit", "center", "tile"). If the specified file cannot be accessed or if the image does not fill the entire output, a fallback color may be provided to cover the rest of the output. fallback_color should be specified as #RRGGBB. Alpha is not supported.

output <name> background|bg <color> solid_color

Sets the background of the given output to the specified color. color should be specified as #RRGGBB. Alpha is not supported.

output <name> transform <transform> [clockwise|anticlockwise]

Sets the background transform to the given value. Can be one of "90", "180", "270" for rotation; or "flipped", "flipped-90", "flipped-180", "flipped-270" to apply a rotation and flip, or "normal" to apply no transform. The rotation is performed clockwise. If a single output is chosen and a rotation direction is specified (clockwise or anticlockwise) then the transform is added or subtracted from the current transform (this cannot be used directly in the configuration file).

output <name> disable|enable

Enables or disables the specified output (all outputs are enabled by default). As opposed to the power command, the output will lose its current workspace and windows.

output <name> toggle

Toggle the specified output.

output <name> power on|off|toggle

Turns on or off the specified output. As opposed to the enable and disable commands, the output keeps its current workspaces and windows.

output <name> dpms on|off|toggle

Deprecated. Alias for power.

output <name> max_render_time off|<msec>

Controls when sway composites the output, as a positive number of milliseconds before the next display refresh. A smaller number leads to fresher composited frames and lower perceived input latency, but if set too low, sway may not finish compositing in time for display refresh, leading to delayed frames. When set to off, sway composites immediately after display refresh, maximizing time available for compositing.

To adjust when applications are instructed to render, see max_render_time in sway(5).

To set this up for optimal latency:

1.Launch some full-screen application that renders continuously, like glxgears.

2.Start with max_render_time 1. Increment by 1 if you see frame drops.

This setting only has an effect on Wayland and DRM backends, as support for presentation timestamps and predicted output refresh rate is required.

output <name> adaptive_sync on|off|toggle

Enables or disables adaptive synchronization (often referred to as Variable Refresh Rate, or by the vendor-specific names FreeSync/G-Sync). Adaptive sync allows clients to submit frames a little too late without having to wait a whole refresh period to display it on screen. Enabling adaptive sync can improve latency, but can cause flickering on some hardware.

output <name> render_bit_depth 6|8|10

Controls the maximum color channel bit depth at which frames are rendered; the default is currently 8 bits per channel. Setting higher values will not have an effect if hardware and software lack support for such bit depths. Successfully increasing the render bit depth will not necessarily increase the bit depth of the frames sent to a display. An increased render bit depth may provide smoother rendering of gradients, and screenshots which can more precisely store the colors of programs which display high bit depth colors.

Warnings: this can break screenshot/screencast programs which have not been updated to work with different bit depths. This command is experimental, and may be removed or changed in the future.

output <name> color_profile srgb|[icc <file>]

Sets the color profile for an output. The default is srgb. <file> should be a path to a display ICC profile. Not all renderers support this feature; currently it only works with the the Vulkan renderer. Even where supported, the application of the color profile may be inaccurate.

This command is experimental, and may be removed or changed in the future. It may have no effect or produce unexpected output when used together with future HDR support features.

output <name> allow_tearing yes|no

Allows or disallows screen tearing as a result of immediate page flips, and an immediate presentation mode from a client. The default is that no screen tearing is allowed. With immediate page flips, frames from the client are presented as soon as possible instead of synchronizing with the monitor's vblank interval (VSync).

It is recommended to set max_render_time to off. In that case a page flip happens as soon as a client updates. Otherwise, tearing will only happen if rendering takes longer than the configured milliseconds before the next display refresh.

To adjust whether tearing is allowed for specific applications, see allow_tearing in sway(5). Note that tearing will only be enabled when it's allowed for both the output and the application.

This setting only has effect when a window is fullscreen on the output.

## SEE ALSO
sway(5) sway-input(5)


swaynag

package: sway

title: swaynag(5)

text:
# swaynag(5)

## NAME
swaynag - swaynag configuration file

## SYNOPSIS
$HOME/.swaynag/config, $XDG_CONFIG_HOME/swaynag/config, SYSCONFDIR/swaynag/config

## CONFIG FILE
At the top of the config file, swaynag options can be set using the format long-option=value. These will be used as default values if swaynag is not given the option. This can be useful for setting a preferred font, output, and edge.

Below the options, custom types may be defined. To define a type, use the following format:

```
[name-of-type]
option=value
```

All colors may be given in the form RRGGBB or RRGGBBAA. The following colors can be set:

background=<color>

The background color for swaynag.

border=<color>

The color to use for borders of buttons.

border-bottom=<color>

The color of the border line at the bottom of swaynag.

button-background=<color>

The background color for the buttons.

text=<color>

The color of the text.

button-text=<color>

The color of the button text.

The following sizing options can also be set:

border-bottom-size=<size>

Set the thickness of the bottom border.

message-padding=<padding>

Set the padding for the message.

details-background=<color>

The background color for the details.

details-border-size=<size>

Set the thickness for the details border.

button-border-size=<size>

Set the thickness for the button border.

button-gap=<gap>

Set the size of the gap between buttons.

button-dismiss-gap=<gap>

Set the size of the gap between the dismiss button and another button.

button-margin-right=<margin>

Set the margin from the right of the dismiss button to edge.

button-padding=<padding>

Set the padding for the button text.

Additionally, the following options can be assigned a default per-type:

edge=top|bottom

Set the edge to use.

layer=overlay|top|bottom|background

Set the layer to use.

font=<font>

Set the font to use.

output=<output>

Set the output to use. This should be the name of a xdg_output.

## EXAMPLE

```
font=Monospace 12
edge=bottom
[green]
edge=top
background=00AA00
border=006600
border-bottom=004400
text=FFFFFF
button-background=00CC00
message-padding=10
```

## SEE
swaynag(1)


sway

package: swayfx

title: sway(5)

text:
# sway(5)

## NAME
sway - configuration file and commands

## DESCRIPTION
A sway configuration file is a list of sway commands that are executed by sway on startup. These commands usually consist of setting your preferences and setting key bindings. An example config is likely present in /etc/sway/config for you to check out.

Lines in the configuration file might be extended through multiple lines by adding a '\' character at the end of line. e.g.:

```
bindsym Shift+XF86AudioRaiseVolume exec \
	pactl set-sink-volume @DEFAULT_SINK@ -1%
```

Commands can also be given as a block in the form command { <subcommands...> }. Anything before the opening { will be prepended to the lines inside the block. For example:

```
output eDP-1 {
	background ~/wallpaper.png fill
	resolution 1920x1080
}
```

is identical to

```
output eDP-1 background ~/wallpaper.png fill
output eDP-1 resolution 1920x1080
```

These commands can be executed in your config file, via swaymsg(1), or via the bindsym command.

## COMMAND CONVENTIONS
Commands are split into several arguments using spaces. You can enclose arguments with quotation marks ("..." or '...') to add spaces to a single argument. You may also run several commands in order by separating each with , or ;. Criteria is retained across commands separated by ,, but will be reset (and allow for new criteria, if desired) for commands separated by a ;.

Throughout the documentation, | is used to distinguish between arguments for which you may only select one. [...] is used for optional arguments, and <...> for arguments where you are expected to supply some value.

## COMMANDS
This section only lists general commands. For input and output commands, refer to sway-input(5) and sway-output(5).

### Config only commands
The following commands may only be used in the configuration file.

bar [<bar-id>] <bar-subcommands...>

For details on bar subcommands, see sway-bar(5).

default_orientation horizontal|vertical|auto

Sets the default container layout for tiled containers.

include <paths...>

Include files from paths. paths can include either a full path or a path relative to the parent config, and expands shell syntax (see wordexp(3) for details). The same include file can only be included once; subsequent attempts will be ignored.

scratchpad_minimize enable|disable

Adjusts if minimized windows should be moved into the scratchpad. Must be set at config-time (when starting sway).

swaybg_command <command>

Executes custom background command. Default is swaybg. Refer to sway-output(5) for more information. It can be disabled by setting the command to a single dash: swaybg_command -

swaynag_command <command>

Executes custom command for swaynag. Default is swaynag. Additional arguments may be appended to the end. This should only be used to either direct sway to call swaynag from a custom path or to provide additional arguments. This should be placed at the top of the config for the best results. It can be disabled by setting the command to a single dash: swaynag_command -

workspace_layout default|stacking|tabbed

Specifies the initial layout for new containers in an empty workspace.

xwayland enable|disable|force

Enables or disables Xwayland support, which allows X11 applications to be used. enable will lazily load Xwayland so Xwayland will not be launched until the first client attempts to connect. In some cases, such as slower machines, it may be desirable to have Xwayland started immediately by using force instead of enable.

### Runtime only commands
The following commands cannot be used directly in the configuration file. They are expected to be used with bindsym or at runtime through swaymsg(1).

border none|normal|csd|pixel [<n>]

Set border style for focused window. normal includes a border of thickness n and a title bar. pixel is a border without title bar n pixels thick. The title bar always shows in stacking or tabbed layouts. csd is short for client-side-decorations, which allows the client to draw its own decorations. Default is normal with border thickness 2.

border toggle

Cycles through the available border styles.

exit

Exit sway and end your Wayland session.

floating enable|disable|toggle

Make focused window floating, non-floating, or the opposite of what it is now.

<criteria> focus

Moves focus to the container that matches the specified criteria.

focus up|right|down|left

Moves focus to the next container in the specified direction.

focus prev|next [sibling]

Moves focus to the previous or next container in the current layout. By default, the last active child of the newly focused container will be focused. The sibling option indicates not to immediately focus a child of the container.

focus child

Moves focus to the last-focused child of the focused container.

focus parent

Moves focus to the parent of the focused container.

focus output up|right|down|left

Moves focus to the next output in the specified direction.

focus output <name>

Moves focus to the named output.

focus tiling

Sets focus to the last focused tiling container.

focus floating

Sets focus to the last focused floating container.

focus mode_toggle

Moves focus between the floating and tiled layers.

fullscreen [enable|disable|toggle] [global]

Makes focused window fullscreen, non-fullscreen, or the opposite of what it is now. If no argument is given, it does the same as toggle. If global is specified, the window will be fullscreen across all outputs.

gaps inner|outer|horizontal|vertical|top|right|bottom|left all|current set|plus|minus|toggle <amount>

Changes the inner or outer gaps for either all workspaces or the current workspace. outer gaps can be altered per side with top, right, bottom, and left or per direction with horizontal and vertical.

inhibit_idle focus|fullscreen|open|none|visible

Set/unset an idle inhibitor for the window. focus will inhibit idle when the window is focused by any seat. fullscreen will inhibit idle when the view is fullscreen (or a descendant of a fullscreen container) and is visible. open will inhibit idle until the window is closed (or the inhibitor is unset/changed). visible will inhibit idle when the window is visible on any output. none will remove any existing idle inhibitor for the window. This can also be used with criteria to set an idle inhibitor for any existing window or with for_window to set idle inhibitors for future windows.

layout default|splith|splitv|stacking|tabbed

Sets the layout mode of the focused container. When using the stacking layout, only the focused window in the container is displayed, with the opened windows' list on the top of the container.

The tabbed layout is similar to stacking, but the windows’ list is vertically split.

layout toggle [split|all]

Cycles the layout mode of the focused container though a preset list of layouts. If no argument is given, then it cycles through stacking, tabbed and the last split layout. If split is given, then it cycles through splith and splitv. If all is given, then it cycles through every layout.

layout toggle [split|tabbed|stacking|splitv|splith] [split|tabbed|stacking|splitv|splith]...

Cycles the layout mode of the focused container through a list of layouts.

max_render_time off|<msec>

Controls when the relevant application is told to render this window, as a positive number of milliseconds before the next time sway composites the output. A smaller number leads to fresher rendered frames being composited by sway and lower perceived input latency, but if set too low, the application may not finish rendering before sway composites the output, leading to delayed frames. When set to off, the relevant application is told to render this window immediately after display refresh. How much time is left for rendering before sway composites the output at that point depends on the output max_render_time setting.

To set this up for optimal latency:

1.Set up output max_render_time (see sway-output(5)).

2.Put the target application in full-screen and have it continuously render something.

3.Start by setting max_render_time 1. If the application drops frames, increment by 1.

This setting only has an effect if a per-output max_render_time is in effect on the output the window is currently on. See sway-output(5) for further details.

allow_tearing yes|no

Allows or disallows screen tearing as a result of immediate page flips for a fullscreen application. When this option is not set, the tearing hints provided by the application determine whether tearing is allowed. When yes is specified, the application allows tearing regardless of the tearing hints. When no is specified, tearing will never be allowed on the application, regardless of the tearing hints.

This setting only has an effect if tearing is allowed on the output through the per-output allow_tearing setting. See sway-output(5) for further details.

move left|right|up|down [<px> px]

Moves the focused container in the direction specified. The optional px argument specifies how many pixels to move the container. If unspecified, the default is 10 pixels. Pixels are ignored when moving tiled containers.

move [absolute] position <pos_x> [px|ppt] <pos_y> [px|ppt]

Moves the focused container to the specified position in the workspace. The position can be specified in pixels or percentage points, omitting the unit defaults to pixels. If absolute is used, the position is relative to all outputs. absolute can not be used with percentage points.

move [absolute] position center

Moves the focused container to be centered on the workspace. If absolute is used, it is moved to the center of all outputs.

move position cursor|mouse|pointer

Moves the focused container to be centered on the cursor.

move [container|window] [to] mark <mark>

Moves the focused container to the specified mark.

move [--no-auto-back-and-forth] [container|window] [to] workspace [number] <name>

Moves the focused container to the specified workspace. The string number is optional and is used to match a workspace with the same number, even if it has a different name.

move [container|window] [to] workspace prev|next|current

Moves the focused container to the previous, next or current workspace on this output, or if no workspaces remain, the previous or next output.

move [container|window] [to] workspace prev_on_output|next_on_output

Moves the focused container to the previous or next workspace on this output, wrapping around if already at the first or last workspace.

move [container|window] [to] workspace back_and_forth

Moves the focused container to previously focused workspace.

move [container|window] [to] output <name-or-id>|current

Moves the focused container to the specified output.

move [container|window] [to] output up|right|down|left

Moves the focused container to next output in the specified direction.

move [container|window] [to] scratchpad

Moves the focused container to the scratchpad.

move workspace [to] output <name-or-id>|current

Moves the focused workspace to the specified output.

move workspace to [output] <name-or-id>|current

Moves the focused workspace to the specified output.

move workspace [to] output up|right|down|left

Moves the focused workspace to next output in the specified direction.

move workspace to [output] up|right|down|left

Moves the focused workspace to next output in the specified direction.

nop <comment>

A no operation command that can be used to override default behaviour. The optional comment argument is ignored, but logged for debugging purposes.

reload

Reloads the sway config file and applies any changes. The config file is located at path specified by the command line arguments when started, otherwise according to the priority stated in sway(1).

rename workspace [<old_name>] to <new_name>

Rename either <old_name> or the focused workspace to the <new_name>

resize shrink|grow width|height [<amount> [px|ppt]]

Resizes the currently focused container by amount, specified in pixels or percentage points. If the units are omitted, floating containers are resized in px and tiled containers by ppt. amount will default to 10 if omitted.

resize set height <height> [px|ppt]

Sets the height of the container to height, specified in pixels or percentage points. If the units are omitted, floating containers are resized in px and tiled containers by ppt. If height is 0, the container will not be resized.

resize set [width] <width> [px|ppt]

Sets the width of the container to width, specified in pixels or percentage points. If the units are omitted, floating containers are resized in px and tiled containers by ppt. If width is 0, the container will not be resized.

resize set [width] <width> [px|ppt] [height] <height> [px|ppt]

Sets the width and height of the container to width and height, specified in pixels or percentage points. If the units are omitted, floating containers are resized in px and tiled containers by ppt. If width or height is 0, the container will not be resized on that axis.

scratchpad show

Shows a window from the scratchpad. Repeatedly using this command will cycle through the windows in the scratchpad.

shortcuts_inhibitor enable|disable

Enables or disables the ability of clients to inhibit keyboard shortcuts for a window. This is primarily useful for virtualization and remote desktop software. It affects either the currently focused window or a set of windows selected by criteria. Subcommand disable additionally deactivates any active inhibitors for the given window(s). Criteria are particularly useful with the for_window command to configure a class of windows differently from the per-seat defaults established by the seat subcommand of the same name. See sway-input(5) for more ways to affect inhibitors.

split vertical|v|horizontal|h|none|n|toggle|t

Splits the current container, vertically or horizontally. When none is specified, the effect of a previous split is undone if the current container is the only child of a split parent. When toggle is specified, the current container is split opposite to the parent container's layout.

splith

Equivalent to split horizontal

splitv

Equivalent to split vertical

splitt

Equivalent to split toggle

sticky enable|disable|toggle

"Sticks" a floating window to the current output so that it shows up on all workspaces.

swap container with id|con_id|mark <arg>

Swaps the position, geometry, and fullscreen status of two containers. The first container can be selected either by criteria or focus. The second container can be selected by id, con_id, or mark. id can only be used with xwayland windows. If the first container has focus, it will retain focus unless it is moved to a different workspace or the second container becomes fullscreen on the same workspace as the first container. In either of those cases, the second container will gain focus.

title_format <format>

Sets the format of window titles. The following placeholders may be used: %title

The title supplied by the window

%app_id

The wayland app ID (applicable to wayland windows only)

%class

The X11 classname (applicable to xwayland windows only)

%instance

The X11 instance (applicable to xwayland windows only)

%shell

The protocol the window is using (typically xwayland or xdg_shell)

%sandbox_engine

The associated sandbox engine

%sandbox_app_id

The app ID provided by the associated sandbox engine

%sandbox_instance_id

The instance ID provided by the associated sandbox engine

This command is typically used with for_window criteria. For example:

for_window [title="."] title_format "<b>%title</b> (%app_id)"

Note that markup requires pango to be enabled via the font command.

The default format is "%title".

### Config or runtime commands
The following commands may be used either in the configuration file or at runtime.

assign <criteria> [→] [workspace] [number] <workspace>

Assigns windows matching criteria (see CRITERIA for details) to workspace. The → (U+2192) is optional and cosmetic. This command is equivalent to:

for_window <criteria> move container to workspace <workspace>

assign <criteria> [→] output left|right|up|down|<name>

Assigns windows matching criteria (see CRITERIA for details) to the specified output. The → (U+2192) is optional and cosmetic. This command is equivalent to:

for_window <criteria> move container to output <output>

bindsym [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--to-code] [--input-device=<device>] [--no-warn] [--no-repeat] [--inhibited] [Group<1-4>+]<key combo> <command>

Binds key combo to execute the sway command command when pressed. You may use XKB key names here (wev(1) is a good tool for discovering these). With the flag --release, the command is executed when the key combo is released. If input-device is given, the binding will only be executed for that input device and will be executed instead of any binding that is generic to all devices. If a group number is given, then the binding will only be available for that group. By default, if you overwrite a binding, swaynag will give you a warning. To silence this, use the --no-warn flag. For specifying modifier keys, you can use the XKB modifier names Shift, Lock (for Caps Lock), Control, Mod1 (for Alt), Mod2 (for Num Lock), Mod3 (for XKB modifier Mod3), Mod4 (for the Logo key), and Mod5 (for AltGr). In addition, you can use the aliases Ctrl (for Control), Alt (for Alt), and Super (for the Logo key).

Unless the flag --locked is set, the command will not be run when a screen locking program is active. If there is a matching binding with and without --locked, the one with will be preferred when locked and the one without will be preferred when unlocked. If there are matching bindings and one has both --input-device and --locked and the other has neither, the former will be preferred even when unlocked.

Unless the flag --inhibited is set, the command will not be run when a keyboard shortcuts inhibitor is active for the currently focused window. Such inhibitors are usually requested by remote desktop and virtualization software to enable the user to send keyboard shortcuts to the remote or virtual session. The --inhibited flag allows one to define bindings which will be exempt from pass-through to such software. The same preference logic as for --locked applies.

Unless the flag --no-repeat is set, the command will be run repeatedly when the key is held, according to the repeat settings specified in the input configuration.

Bindings to keysyms are layout-dependent. This can be changed with the --to-code flag. In this case, the keysyms will be translated into the corresponding keycodes in the first configured layout.

Mouse bindings operate on the container under the cursor instead of the container that has focus. Mouse buttons can either be specified in the form button[1-9] or by using the name of the event code (ex BTN_LEFT or BTN_RIGHT). For the former option, the buttons will be mapped to their values in X11 (1=left, 2=middle, 3=right, 4=scroll up, 5=scroll down, 6=scroll left, 7=scroll right, 8=back, 9=forward). For the latter option, you can find the event names using libinput debug-events.

The priority for matching bindings is as follows: input device, group, and locked state.

--whole-window, --border, and --exclude-titlebar are mouse-only options which affect the region in which the mouse bindings can be triggered. By default, mouse bindings are only triggered when over the title bar. With the --border option, the border of the window will be included in this region. With the --whole-window option, the cursor can be anywhere over a window including the title, border, and content. --exclude-titlebar can be used in conjunction with any other option to specify that the titlebar should be excluded from the region of consideration.

If --whole-window is given, the command can be triggered when the cursor is over an empty workspace. Using a mouse binding over a layer surface's exclusive region is not currently possible.

Example:

```
		# Execute firefox when alt, shift, and f are pressed together
		bindsym Mod1+Shift+f exec firefox
```

bindcode [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--input-device=<device>] [--no-warn] [--no-repeat] [--inhibited] [Group<1-4>+]<code> <command> is also available for binding with key/button codes instead of key/button names.

bindswitch [--locked] [--no-warn] [--reload] <switch>:<state> <command>

Binds <switch> to execute the sway command command on state changes. Supported switches are lid (laptop lid) and tablet (tablet mode) switches. Valid values for state are on, off and toggle. These switches are on when the device lid is shut and when tablet mode is active respectively. toggle is also supported to run a command both when the switch is toggled on or off. Unless the flag --locked is set, the command will not be run when a screen locking program is active. If there is a matching binding with and without --locked, the one with will be preferred when locked and the one without will be preferred when unlocked.

If the --reload flag is given, the binding will also be executed when the config is reloaded. toggle bindings will not be executed on reload. The --locked flag will operate as normal so if the config is reloaded while locked and --locked is not given, the binding will not be executed.

By default, if you overwrite a binding, swaynag will give you a warning. To silence this, use the --no-warn flag.

Example:

```
		# Show the virtual keyboard when tablet mode is entered.
		bindswitch tablet:on busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true
		# Log a message when the laptop lid is opened or closed.
		bindswitch lid:toggle exec echo "Lid moved"
```

bindgesture [--exact] [--input-device=<device>] [--no-warn] <gesture>[:<fingers>][:directions] <command>

Binds gesture to execute the sway command command when detected. Currently supports the hold, pinch or swipe gesture. Optionally can be limited to bind to a certain number of fingers or, for a pinch or swipe gesture, to certain directions.

type

fingers

direction

hold

1 - 5

none

swipe

3 - 5

up, down, left, right

pinch

2 - 5

all above + inward, outward, clockwise, counterclockwise

The fingers can be limited to any sensible number or left empty to accept any finger counts. Valid directions are up, down, left and right, as well as inward, outward, clockwise, counterclockwise for the pinch gesture. Multiple directions can be combined by a plus. If a input-device is given, the binding will only be executed for that input device and will be executed instead of any binding that is generic to all devices. By default, if you overwrite a binding, swaynag will give you a warning. To silence this, use the --no-warn flag.

The --exact flag can be used to ensure a binding only matches when exactly all specified directions are matched and nothing more. If there is matching binding with --exact, it will be preferred.

The priority for matching bindings is as follows: input device, then exact matches followed by matches with the highest number of matching directions.

Gestures executed while the pointer is above a bar are not handled by sway. See the respective documentation, e.g. bindgesture in sway-bar(5).

Example:

```
		# Allow switching between workspaces with left and right swipes
		bindgesture swipe:right workspace prev
		bindgesture swipe:left workspace next
		# Allow container movements by pinching them
		bindgesture pinch:inward+up move up
		bindgesture pinch:inward+down move down
		bindgesture pinch:inward+left move left
		bindgesture pinch:inward+right move right
```

client.background <color>

This command is ignored and is only present for i3 compatibility.

client.<class> <border> <background> <text> [<indicator> [<child_border>]]

Configures the color of window borders and title bars. The first three colors are required. When omitted indicator will use a sane default and child_border will use the color set for background. Colors may be specified in hex, either as #RRGGBB or #RRGGBBAA. The available classes are:

client.focused

The window that has focus.

client.focused_inactive

The most recently focused window within a container which is not focused.

client.focused_tab_title

A window that has focused descendant container. Tab or stack container title that is the parent of the focused container but is not directly focused. Defaults to focused_inactive if not specified and does not use the indicator and child_border colors.

client.placeholder

Ignored (present for i3 compatibility).

client.unfocused

A window that does not have focus.

client.urgent

A window with an urgency hint. Note: Native Wayland windows do not support urgency. Urgency only works for Xwayland windows.

The meaning of each color is:

border

The border around the title bar.

background

The background of the title bar.

text

The text color of the title bar.

indicator

The color used to indicate where a new window will open. In a tiled container, this would paint the right border of the current window if a new window would be opened to the right.

child_border

The border around the window itself.

The default colors are:

class

border

background

text

indicator

child_border

background

n/a

\#ffffff

n/a

n/a

n/a

focused

\#4c7899

\#285577

\#ffffff

\#2e9ef4

\#285577

focused_inactive

\#333333

\#5f676a

\#ffffff

\#484e50

\#5f676a

focused_tab_title

\#333333

\#5f676a

\#ffffff

n/a

n/a

unfocused

\#333333

\#222222

\#888888

\#292d2e

\#222222

urgent

\#2f343a

\#900000

\#ffffff

\#900000

\#900000

placeholder

\#000000

\#0c0c0c

\#ffffff

\#000000

\#0c0c0c

corner_radius <radius>

Set corner radius for new windows.

smart_corner_radius enable|disable

Set corner radius only if there are gaps around the window.

default_dim_inactive <value>

Adjusts the dimming of inactive windows between 0.0 (no dimming) and 1.0 (fully dimmed) while 0.0 is the default value.

dim_inactive <value>

This can only be used with a for_window rule. Adjusts the dimming of a window, matching the rule, between 0.0 (no dimming) and 1.0 (fully dimmed). Default value: default_dim_inactive

dim_inactive_colors.unfocused <hex color>

The color to dim inactive windows with. Example color: #000000FF

dim_inactive_colors.urgent <hex color>

The color to dim inactive urgent windows with. Example color: #900000FF

shadows enable|disable

Sets whether or not shadows should be drawn. Can also be set per window with for_window.

shadows_on_csd enable|disable

Adjusts if shadows should be drawn on windows that draw their own decorations. Note: The shadow might not fit some windows.

shadow_blur_radius <value>

Adjusts the shadow blur radius of windows between 0 (disabled) and 100 while 20 is the default value.

shadow_color <hex color with alpha>

The shadow color. Default color: #0000007F

shadow_inactive_color <hex color with alpha>

The shadow color for inactive windows. Default value: shadow_color

shadow_offset <x offset> <y offset>

Offset all box shadows by the given value.

blur enable|disable

Sets whether blur should be drawn. Can also be set per window with for_window.

blur_xray enable|disable

Sets whether blur should only display the background.

blur_passes <value>

Adjusts the blur passes of windows between 0 (disabled) and 10 while 2 is the default value.

blur_radius <value>

Adjusts the blur radius of windows between 0 (disabled) and 10 while 5 is the default value.

blur_noise <value>

Adjusts the percentage of noise applied to the blur between 0 and 1 while 0.02 (2%) is the default value.

blur_brightness <value>

Adjusts the percentage of brightness for the blur between 0 and 2 while 0.9 (90%) is the default value.

blur_contrast <value>

Adjusts the percentage of contrast for the blur between 0 and 2 while 0.9 (90%) is the default value.

blur_saturation <value>

Adjusts the percentage of saturation for the blur between 0 and 2 while 1.1 (110%) is the default value.

default_border normal|none|pixel [<n>]

Set default border style for new tiled windows. Config reload won't affect existing windows, only newly created ones after the reload.

default_floating_border normal|none|pixel [<n>]

Set default border style for new floating windows. This only applies to windows that are spawned in floating mode, not windows that become floating afterwards.

exec <shell command>

Executes shell command with sh.

exec_always <shell command>

Like exec, but the shell command will be executed again after reload.

floating_maximum_size <width> x <height>

Specifies the maximum size of floating windows. -1 x -1 removes the upper limit. The default is 0 x 0, which will use the width and height of the entire output layout as the maximums

floating_minimum_size <width> x <height>

Specifies the minimum size of floating windows. The default is 75 x 50.

floating_modifier <modifier> [normal|inverse]

When the modifier key is held down, you may hold left click to move windows, and right click to resize them. Setting modifier to none disables this feature. If inverse is specified, left click is used for resizing and right click for moving.

focus_follows_mouse yes|no|always

If set to yes, moving your mouse over a window will focus that window. If set to always, the window under the cursor will always be focused, even after switching between workspaces.

focus_on_window_activation smart|urgent|focus|none

This option determines what to do when a client requests window activation. If set to urgent, the urgent state will be set for that window. If set to focus, the window will become focused. If set to smart, the window will become focused only if it is already visible, otherwise the urgent state will be set. Default is urgent.

focus_wrapping yes|no|force|workspace

This option determines what to do when attempting to focus over the edge of a container. If set to no, the focused container will retain focus, if there are no other containers in the direction. If set to yes, focus will be wrapped to the opposite edge of the container, if there are no other containers in the direction. If set to force, focus will be wrapped to the opposite edge of the container, even if there are other containers in the direction. If set to workspace, focus will wrap like in the yes case and additionally wrap when moving outside of workspaces boundaries. Default is yes.

font [pango:]<font>

Sets font to use for the title bars. To enable support for pango markup, preface the font name with pango:. For example, monospace 10 is the default font. To enable support for pango markup, pango:monospace 10 should be used instead. Regardless of whether pango markup is enabled, font should be specified as a pango font description. For more information on pango font descriptions, see https://docs.gtk.org/Pango/type_func.FontDescription.from_string.html#description

force_display_urgency_hint <timeout> [ms]

If an application on another workspace sets an urgency hint, switching to this workspace may lead to immediate focus of the application, which also means the window decoration color would be immediately reset to client.focused. This may make it unnecessarily hard to tell which window originally raised the event. This option allows one to set a timeout in ms to delay the urgency hint reset.

titlebar_border_thickness <thickness>

Thickness of the titlebar border in pixels

titlebar_padding <horizontal> [<vertical>]

Padding of the text in the titlebar. horizontal value affects horizontal padding of the text while vertical value affects vertical padding (space above and below text). Padding includes titlebar borders so their value should be greater than titlebar_border_thickness. If vertical value is not specified it is set to the horizontal value. If corner_radius is set to be greater than the horizontal or vertical value, the value will be treated as that of corner_radius.

titlebar_separator enable|disable

Allows to remove the border between titlebar and window content.

for_window <criteria> <command>

Whenever a window that matches criteria appears, run list of commands. See CRITERIA for more details.

layer_effects <layer-namespace> <effects>

Apply effects on specific layer shell surfaces, eg "waybar" or "rofi". At least one effect needs to be provided. The <layer-namespace> can be gotten through sway-ipc. Note: Surfaces in the bottom layer cannot use these effects. Effects:

•blur <enable|disable>

•blur_xray <enable|disable>

•blur_ignore_transparent <enable|disable>

•shadows <enable|disable>

•corner_radius <integer>

•reset Resets all previously applied effects

•reset To reset/disable all previously applied effects to the layer application

Example:

layer_effects "waybar" { blur enable; blur_xray enable; blur_ignore_transparent enable; shadows enable; corner_radius 6;

}

SwayIPC Example (you can only set one effect at a time through `swaymsg`):

swaymsg layer_effects "waybar" "blur enable"

gaps inner|outer|horizontal|vertical|top|right|bottom|left <amount>

Sets default amount pixels of inner or outer gap, where the inner affects spacing around each window and outer affects the spacing around each workspace. Outer gaps are in addition to inner gaps. To reduce or remove outer gaps, outer gaps can be set to a negative value. outer gaps can also be specified per side with top, right, bottom, and left or per direction with horizontal and vertical. This affects new workspaces only, and is used when the workspace doesn't have its own gaps settings (see: workspace <ws> gaps ...).

hide_edge_borders [--i3] none|vertical|horizontal|both|smart|smart_no_gaps

Hides window borders adjacent to the screen edges. Default is none. The --i3 option enables i3-compatible behavior to hide the title bar on tabbed and stacked containers with one child. The smart|smart_no_gaps options are equivalent to setting smart_borders smart|no_gaps and hide_edge_borders none.

input <input_device> <input-subcommands...>

For details on input subcommands, see sway-input(5). * may be used in lieu of a specific device name to configure all input devices. A list of input device names may be obtained via swaymsg -t get_inputs.

seat <seat> <seat-subcommands...>

For details on seat subcommands, see sway-input(5).

kill

Kills (closes) the currently focused container and all of its children.

smart_borders on|no_gaps|off

If smart_borders are on, borders will only be enabled if the workspace has more than one visible child. If smart_borders is set to no_gaps, borders will only be enabled if the workspace has more than one visible child and gaps equal to zero.

smart_gaps on|off|toggle|inverse_outer

If smart_gaps are on gaps will only be enabled if a workspace has more than one child. If smart_gaps are inverse_outer outer gaps will only be enabled if a workspace has exactly one child.

mark --add|--replace [--toggle] <identifier>

Marks are arbitrary labels that can be used to identify certain windows and then jump to them at a later time. Each identifier can only be set on a single window at a time since they act as a unique identifier. By default, mark sets identifier as the only mark on a window. --add will instead add identifier to the list of current marks for that window. If --toggle is specified mark will remove identifier if it is already marked.

mode <mode>

Switches to the specified mode. The default mode is default.

mode [--pango_markup] <mode> <mode-subcommands...>

The only valid mode-subcommands... are bindsym, bindcode, bindswitch, and set. If --pango_markup is given, then mode will be interpreted as pango markup.

mouse_warping output|container|none

If output is specified, the mouse will be moved to new outputs as you move focus between them. If container is specified, the mouse will be moved to the middle of the container on switch. Default is output.

no_focus <criteria>

Prevents windows matching <criteria> from being focused automatically when they're created. This has no effect on the first window in a workspace.

output <output_name> <output-subcommands...>

For details on output subcommands, see sway-output(5). * may be used in lieu of a specific output name to configure all outputs. A list of output names may be obtained via swaymsg -t get_outputs.

popup_during_fullscreen smart|ignore|leave_fullscreen

Determines what to do when a fullscreen window opens a dialog. If smart (the default), the dialog will be displayed. If ignore, the dialog will not be rendered. If leave_fullscreen, the window will exit fullscreen mode and the dialog will be rendered.

primary_selection enabled|disabled

Enable or disable the primary selection clipboard. May only be configured at launch. Default is enabled.

set $<name> <value>

Sets variable $name to value. You can use the new variable in the arguments of future commands. When the variable is used, it can be escaped with an additional $ (ie $$name) to have the replacement happen at run time instead of when reading the config. However, it does not always make sense for the variable to be replaced at run time since some arguments do need to be known at config time.

show_marks yes|no

If show_marks is yes, marks will be displayed in the window borders. Any mark that starts with an underscore will not be drawn even if show_marks is yes. The default is yes.

opacity [set|plus|minus] <value>

Adjusts the opacity of the window between 0 (completely transparent) and 1 (completely opaque). If the operation is omitted, set will be used.

tiling_drag enable|disable|toggle

Sets whether or not tiling containers can be dragged with the mouse. If enabled (default), the floating_mod can be used to drag tiling, as well as floating, containers. Using the left mouse button on title bars without the floating_mod will also allow the container to be dragged. toggle should not be used in the config file.

tiling_drag_threshold <threshold>

Sets the threshold that must be exceeded for a container to be dragged by its titlebar. This has no effect if floating_mod is used or if tiling_drag is set to disable. Once the threshold has been exceeded once, the drag starts and the cursor can come back inside the threshold without stopping the drag. threshold is multiplied by the scale of the output that the cursor on. The default is 9.

title_align left|center|right

Sets the title alignment. If right is selected and show_marks is set to yes, the marks will be shown on the left side instead of the right side.

unbindswitch <switch>:<state>

Removes a binding for when <switch> changes to <state>.

unbindgesture [--exact] [--input-device=<device>] <gesture>[:<fingers>][:directions]

Removes a binding for the specified gesture, fingers and directions combination.

unbindsym [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--to-code] [--input-device=<device>] <key combo>

Removes the binding for key combo that was previously bound with the given flags. If input-device is given, only the binding for that input device will be unbound. unbindcode [--whole-window] [--border] [--exclude-titlebar] [--release] [--locked] [--input-device=<device>] <code> is also available for unbinding with key/button codes instead of key/button names.

unmark [<identifier>]

unmark will remove identifier from the list of current marks on a window. If identifier is omitted, all marks are removed.

urgent enable|disable|allow|deny

Using enable or disable manually sets or unsets the window's urgent state. Using allow or deny controls the window's ability to set itself as urgent. By default, windows are allowed to set their own urgency.

workspace [--no-auto-back-and-forth] [number] <[num:]name>

Switches to the specified workspace. The num: portion of the name is optional and will be used for ordering. If num: is not given and name is a number, then it will be also be used for ordering. If the no-auto-back-and-forth option is given, then this command will not perform a back-and-forth operation when the workspace is already focused and workspace_auto_back_and_forth is enabled.

If the number keyword is specified and a workspace with the number already exists, then the workspace with the number will be used. If a workspace with the number does not exist, a new workspace will be created with the name name.

workspace prev|next

Switches to the next workspace on the current output or on the next output if currently on the last workspace.

workspace prev_on_output|next_on_output

Switches to the next workspace on the current output.

workspace back_and_forth

Switches to the previously focused workspace.

workspace <name> gaps inner|outer|horizontal|vertical|top|right|bottom|left <amount>

Specifies that workspace name should have the given gaps settings when it is created. This command does not affect existing workspaces. To alter the gaps of an existing workspace, use the gaps command.

workspace <name> output <outputs...>

Specifies that workspace name should be shown on the specified outputs. Multiple outputs can be listed and the first available will be used. If the workspace gets placed on an output further down the list and an output that is higher on the list becomes available, the workspace will be moved to the higher priority output. This command does not affect existing workspaces. To move an existing workspace, use the move command in combination with the workspace criteria (non-empty workspaces only) or workspace command (to switch to the workspace before moving).

workspace_auto_back_and_forth yes|no

When yes, repeating a workspace switch command will switch back to the prior workspace. For example, if you are currently on workspace 1, switch to workspace 2, then invoke the workspace 2 command again, you will be returned to workspace 1. Default is no.

## CRITERIA
A criteria is a string in the form of, for example:

```
[app_id="some-application" title="[Rr]egex.*"]
```

The string contains one or more (space separated) attribute/value pairs. They are used by some commands to choose which windows to execute actions on. All attributes must match for the criteria to match. Criteria is retained across commands separated by a ,, but will be reset (and allow for new criteria, if desired) for commands separated by a ;.

Criteria may be used with either the for_window or assign commands to specify operations to perform on new windows. A criteria may also be used to perform specific commands (ones that normally act upon one window) on all windows that match that criteria. For example:

Focus on a window with the mark "IRC":

```
[con_mark="IRC"] focus
```

Kill all windows where the title contains "Emacs":

```
[title="Emacs"] kill
```

Several attributes allow regular expressions. These use Perl-compatible regular expressions (PCRE2), which are documented in pcre2pattern(3) and summarized in pcre2syntax(3). For example, this moves all windows with titles ending in "sway" or "Sway" to workspace 1:

```
[title="[Ss]way$"] move workspace 1
```

You may like to use swaymsg -t get_tree for finding the values of these properties in practice for your applications.

The following attributes may be matched with:

all

Matches all windows.

app_id

Compare value against the app id. Can be a regular expression. If value is __focused__, then the app id must be the same as that of the currently focused window. app_id are specific to Wayland applications.

class

Compare value against the window class. Can be a regular expression. If value is __focused__, then the window class must be the same as that of the currently focused window. class are specific to X11 applications and require XWayland.

con_id

Compare against the internal container ID, which you can find via IPC. If value is __focused__, then the id must be the same as that of the currently focused window.

con_mark

Compare against the window marks. Can be a regular expression.

floating

Matches floating windows.

id

Compare value against the X11 window ID. Must be numeric. id is specific to X11 applications and requires XWayland.

instance

Compare value against the window instance. Can be a regular expression. If value is __focused__, then the window instance must be the same as that of the currently focused window. instance is specific to X11 applications and requires XWayland.

pid

Compare value against the window's process ID. Must be numeric.

shell

Compare value against the window shell, such as "xdg_shell" or "xwayland". Can be a regular expression. If value is __focused__, then the shell must be the same as that of the currently focused window.

tiling

Matches tiling windows.

title

Compare against the window title. Can be a regular expression. If value is __focused__, then the window title must be the same as that of the currently focused window.

urgent

Compares the urgent state of the window. Can be first, last, latest, newest, oldest or recent.

window_role

Compare against the window role (WM_WINDOW_ROLE). Can be a regular expression. If value is __focused__, then the window role must be the same as that of the currently focused window. window_role is specific to X11 applications and requires XWayland.

window_type

Compare against the window type (_NET_WM_WINDOW_TYPE). Possible values are normal, dialog, utility, toolbar, splash, menu, dropdown_menu, popup_menu, tooltip and notification. window_type is specific to X11 applications and requires XWayland.

workspace

Compare against the workspace name for this window. Can be a regular expression. If the value is __focused__, then all the windows on the currently focused workspace matches.

sandbox_engine

Compare against the associated sandbox engine. Can be a regular expression. If the value is __focused__, then the sandbox engine must be the same as that of the currently focused window.

sandbox_app_id

Compare against the app ID provided by the associated sandbox engine. Can be a regular expression. If the value is __focused__, then the sandbox app ID must be the same as that of the currently focused window.

sandbox_instance_id

Compare against the instance ID provided by the associated sandbox engine. Can be a regular expression. If the value is __focused__, then the sandbox instance ID must be the same as that of the currently focused window.

## SEE ALSO
sway(1) sway-input(5) sway-output(5) sway-bar(5) sway-ipc(7) pcre2pattern(3) pcre2syntax(3)


sway-bar

title: sway-bar(5)

text:
# sway-bar(5)

## NAME
sway-bar - bar configuration file and commands

## DESCRIPTION
Sway allows configuring swaybar in the sway configuration file.

## COMMANDS
The following commands may only be used in the configuration file.

id <bar_id>

Sets the ID of the bar.

swaybar_command <command>

Executes custom bar command. Default is swaybar.

The following commands may be used either in the configuration file or at runtime.

bindcode [--release] <event-code> <command>

Executes command when the mouse button has been pressed (or if released is given, when the button has been released). The buttons can be given as an event code, which can be obtaining from libinput debug-events. To disable the default behavior for a button, use the command nop.

bindsym [--release] button[1-9]|<event-name> <command>

Executes command when the mouse button has been pressed (or if released is given, when the button has been released). The buttons can be given as a x11 button number or an event name, which can be obtained from libinput debug-events. To disable the default behavior for a button, use the command nop.

binding_mode_indicator yes|no

Enable or disable binding mode indicator. Default is yes.

font <font>

Specifies the font to be used in the bar. font should be specified as a pango font description. For more information on pango font descriptions, see https://docs.gtk.org/Pango/type_func.FontDescription.from_string.html#description

gaps <all> | <horizontal> <vertical> | <top> <right> <bottom> <left>

Sets the gaps from the edge of the screen for the bar. Gaps can either be set all at once, per direction, or per side. Note that only sides that touch an edge of the screen can have gaps. For the side that does not touch an edge of the screen, per-side outer gaps for workspaces may be of use.

height <height>

Sets the height of the bar. Default height (0) will match the font size.

hidden_state hide|show [<bar-id>]

Specifies the behaviour of the bar when it is in hide mode. When the hidden state is hide, then it is normally hidden, and only unhidden by pressing the modifier key or in case of urgency hints. When the hidden state is show, then it is permanently visible, drawn on top of the currently visible workspace. Default is hide. For compatibility with i3, bar hidden_state hide|show [<bar-id>] is supported along with the sway only bar <bar-id> hidden_state hide|show syntax. When using the i3 syntax, if bar-id is omitted, the hidden_state will be changed for all bars. Attempting to use bar <bar-id1> hidden_state hide|show <bar-id2> will result in an error due to conflicting bar ids.

mode dock|hide|invisible|overlay [<bar-id>]

Specifies the visibility of the bar. In dock mode, it is permanently visible at one edge of the screen. In hide mode, it is hidden unless the modifier key is pressed, though this behaviour depends on the hidden state. In invisible mode, it is permanently hidden. In overlay mode, it is permanently visible on top of other windows. (In overlay mode the bar is transparent to input events.) Default is dock. For compatibility with i3, bar mode <mode> [<bar-id>] syntax is supported along with the sway only bar <bar-id> mode <mode> syntax. When using the i3 syntax, if bar-id is omitted, the mode will be changed for all bars. Attempting to use bar <bar-id1> mode <mode> <bar-id2> will result in an error due to conflicting bar ids.

modifier <Modifier>|none

Specifies the modifier key that shows a hidden bar. Default is Mod4.

output <output>|*

Restrict the bar to a certain output, can be specified multiple times. If the output command is omitted, the bar will be displayed on all outputs. * can be given at any point to reset it back to all outputs.

pango_markup enabled|disabled

Enables or disables pango markup for status lines. This has no effect on status lines using the i3bar JSON protocol.

position top|bottom

Sets position of the bar. Default is bottom.

separator_symbol <symbol>

Specifies the separator symbol to separate blocks on the bar.

status_command <status command>

Executes the bar status command with sh -c. Each line of text printed to stdout from this command will be displayed in the status area of the bar. You may also use swaybar's JSON status line protocol. See swaybar-protocol(7) for more information on the protocol If running this command via IPC, you can disable a running status command by setting the command to a single dash: swaybar bar bar-0 status_command -

status_edge_padding <padding>

Sets the padding that is used when the status line is at the right edge of the bar. This value will be multiplied by the output scale. The default is 3.

status_padding <padding>

Sets the vertical padding that is used for the status line. The default is 1. If padding is 0, blocks will be able to take up the full height of the bar. This value will be multiplied by the output scale.

strip_workspace_name yes|no

If set to yes, then workspace names will be omitted from the workspace button and only the custom number will be shown. Default is no.

strip_workspace_numbers yes|no

If set to yes, then workspace numbers will be omitted from the workspace button and only the custom name will be shown. Default is no.

unbindcode [--release] <event-code>

Removes the binding with the given <event-code>.

unbindsym [--release] button[1-9]|<event-name>

Removes the binding with the given <button> or <event-name>.

wrap_scroll yes|no

Enables or disables wrapping when scrolling through workspaces with the scroll wheel. Default is no.

workspace_buttons yes|no

Enables or disables workspace buttons on the bar. Default is yes.

workspace_min_width <px> [px]

Specifies the minimum width for the workspace buttons on the bar. Default is 0. This setting also applies to the current binding mode indicator.

The following commands may only be used at runtime.

mode toggle [<bar_id>]

Toggles the current mode between hide and dock. Any other mode is treated as hide.

### TRAY
Swaybar provides a system tray where third-party applications may place icons. The following commands configure the tray.

tray_bindcode <event-code> ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop

Executes the action when the mouse button has been pressed. The buttons can be given as an event code, which can be obtained from libinput debug-events. To disable the default behavior for a button, use the command nop.

tray_bindsym button[1-9]|<event-name> ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop

Executes the action when the mouse button has been pressed. The buttons can be given as a x11 button number or an event name, which can be obtained from libinput debug-events. Use the command nop to disable the default action (Activate for button1, ContextMenu for button2 and SecondaryActivate for button3).

tray_padding <px> [px]

Sets the pixel padding of the system tray. This padding will surround the tray on all sides and between each item. The default value for px is 2.

tray_output none|<output>|*

Restrict the tray to a certain output, can be specified multiple times. If omitted, the tray will be displayed on all outputs. Unlike i3bar, swaybar can show icons on any number of bars and outputs without races. * can be given at any point to reset it to display on all outputs.

icon_theme <name>

Sets the icon theme that sway will look for item icons in. This option has no default value, because sway will always default to the fallback theme, hicolor.

### COLORS
Colors are defined within a colors { } block inside a bar { } block. Colors must be defined in hex: #RRGGBB or #RRGGBBAA.

background <color>

Background color of the bar.

statusline <color>

Text color to be used for the statusline.

separator <color>

Text color to be used for the separator.

focused_background <color>

Background color of the bar on the currently focused monitor output. If not used, the color will be taken from background.

focused_statusline <color>

Text color to be used for the statusline on the currently focused monitor output. If not used, the color will be taken from statusline.

focused_separator <color>

Text color to be used for the separator on the currently focused monitor output. If not used, the color will be taken from separator.

focused_workspace <border> <background> <text>

Border, background and text color for a workspace button when the workspace has focus.

active_workspace <border> <background> <text>

Border, background and text color for a workspace button when the workspace is active (visible) on some output, but the focus is on another one. You can only tell this apart from the focused workspace when you are using multiple monitors.

inactive_workspace <border> <background> <text>

Border, background and text color for a workspace button when the workspace does not have focus and is not active (visible) on any output. This will be the case for most workspaces.

urgent_workspace <border> <background> <text>

Border, background and text color for a workspace button when the workspace contains a window with the urgency hint set.

binding_mode <border> <background> <text>

Border, background and text color for the binding mode indicator. If not used, the colors will be taken from urgent_workspace.

## SEE ALSO
sway(5) swaybar-protocol(7)


sway-input

title: sway-input(5)

text:
# sway-input(5)

## NAME
sway-input - input configuration file and commands

## DESCRIPTION
Sway allows for configuration of devices within the sway configuration file. To obtain a list of available device identifiers, run swaymsg -t get_inputs. Settings can also be applied to all input devices by using the wildcard, *, in place of <identifier> in the commands below. In addition, the settings can be applied to a type of device, by using type:<input_type> in place of <identifier>.

In the configuration file, settings with a more specific selector take precedence over more general ones: <identifier> > type:<input_type> > *. When executing input commands, however, the settings are applied to all matching input devices! This means that type:<input_type> can override previously set <identifier> settings, even though in a configuration file they would take precedence. Similarly * can override both <identifier> and type:<input_type> settings, if applied later.

Tip: If the configuration settings do not appear to be taking effect, you could try using * instead of <identifier>. If it works with the wildcard, try using a different identifier from swaymsg -t get_inputs until you find the correct input device.

Current available input types are:

•touchpad

•pointer

•keyboard

•touch

•tablet_tool

•tablet_pad

•switch

Note: The type configurations are applied as the devices appear and get applied on top of the existing device configurations.

## INPUT COMMANDS

### KEYBOARD CONFIGURATION
input <identifier> repeat_delay <milliseconds>

Sets the amount of time a key must be held before it starts repeating.

input <identifier> repeat_rate <characters per second>

Sets the frequency of key repeats once the repeat_delay has passed.

For more information on these xkb configuration options, see xkeyboard-config(7).

input <identifier> xkb_file <file_name>

Sets all xkb configurations from a complete .xkb file. This file can be dumped from xkbcomp $DISPLAY keymap.xkb. This setting overrides xkb_layout, xkb_model, xkb_options, xkb_rules, and xkb_variant settings.

input <identifier> xkb_layout <layout_name>

Sets the layout of the keyboard like us or de. Multiple layouts can be specified by separating them with commas.

input <identifier> xkb_model <model_name>

Sets the model of the keyboard. This has an influence for some extra keys your keyboard might have.

input <identifier> xkb_options <options>

Sets extra xkb configuration options for the keyboard. Multiple options can be specified by separating them with commas.

input <identifier> xkb_rules <rules>

Sets files of rules to be used for keyboard mapping composition.

input <identifier> xkb_switch_layout <index>|next|prev

Changes the active keyboard layout to <index> counting from zero or to next or previous layout on the list. If there is no next or previous layout, this command hops to the other end of the list. This can be used when multiple layouts are configured with xkb_layout. A list of layouts you can switch between can be obtained with swaymsg -t get_inputs.

input <identifier> xkb_variant <variant>

Sets the variant of the keyboard like dvorak or colemak.

The following commands may only be used in the configuration file.

input <identifier> xkb_capslock enabled|disabled

Initially enables or disables CapsLock on startup, the default is disabled.

input <identifier> xkb_numlock enabled|disabled

Initially enables or disables NumLock on startup, the default is disabled.

### TABLET CONFIGURATION
input <identifier> tool_mode <tool> <absolute|relative>

Sets whether movement of a tablet tool should be treated as absolute or relative; the default is absolute. Valid values for <tool> are currently "pen", "eraser", "brush", "pencil", "airbrush", and the wildcard *, which matches all tools.

Mouse and lens tools ignore this setting and are always treated as relative.

### MAPPING CONFIGURATION
input <identifier> map_to_output <identifier>

Maps inputs from this device to the specified output. Only meaningful if the device is a pointer, touch, or drawing tablet device. The wildcard * can be used to map the input device to the whole desktop layout.

input <identifier> map_to_region <X> <Y> <width> <height>

Maps inputs from this device to the specified region of the global output layout. Only meaningful if the device is a pointer, touch, or drawing tablet device.

input <identifier> map_from_region <X1xY1> <X2xY2>

Ignores inputs from this device that do not occur within the specified region. Can be in millimeters (e.g. 10x20mm 20x40mm) or the fraction of the full available space in terms of 0..1 (e.g. 0.5x0.5 0.7x0.7). Not all devices support millimeters. Only meaningful if the device is not a keyboard and provides events in absolute terms (such as a drawing tablet or touch screen - most pointers provide events relative to the previous frame). Commonly used to maintain the aspect ratio of the input device and screen. Cropping a 16:10 input region to match a 16:9 display can use 0x0 1x0.9 as the argument.

### LIBINPUT CONFIGURATION
input <identifier> accel_profile adaptive|flat

Sets the pointer acceleration profile for the specified input device.

input <identifier> calibration_matrix <6 space-separated floating point values>

Sets the calibration matrix.

input <identifier> click_method none|button_areas|clickfinger

Changes the click method for the specified device.

input <identifier> clickfinger_button_map lrm|lmr

Specifies which button mapping to use for clickfinger. lrm treats 1 finger as left click, 2 fingers as right click, and 3 fingers as middle click. lmr treats 1 finger as left click, 2 fingers as middle click, and 3 fingers as right click.

input <identifier> drag enabled|disabled

Enables or disables tap-and-drag for specified input device.

input <identifier> drag_lock enabled|disabled|enabled_sticky

Enables or disables drag lock for specified input device. The default is enabled_sticky.

input <identifier> dwt enabled|disabled

Enables or disables disable-while-typing for the specified input device.

input <identifier> dwtp enabled|disabled

Enables or disables disable-while-trackpointing for the specified input device.

input <identifier> events enabled|disabled|disabled_on_external_mouse|toggle [<toggle-modes>]

Enables or disables send_events for specified input device. Disabling send_events disables the input device. The toggle option cannot be used in the config. If no toggle modes are listed, all supported modes for the device will be toggled through in the order: enabled, disabled_on_external_mouse, disabled, (loop back). If toggle modes are listed, they will be cycled through, defaulting to the first mode listed if the current mode is not in the list. They will also not be checked to see if they are supported for the device and may fail.

input <identifier> left_handed enabled|disabled

Enables or disables left handed mode for specified input device.

input <identifier> middle_emulation enabled|disabled

Enables or disables middle click emulation.

input <identifier> natural_scroll enabled|disabled

Enables or disables natural (inverted) scrolling for the specified input device.

input <identifier> pointer_accel [<-1|1>]

Changes the pointer acceleration for the specified input device.

input <identifier> rotation_angle <angle>

Sets the rotation angle of the device to the given clockwise angle in degrees. The angle must be between 0.0 (inclusive) and 360.0 (exclusive).

input <identifier> scroll_button disable|button[1-3,8,9]|<event-code-or-name>

Sets the button used for scroll_method on_button_down. The button can be given as an event name or code, which can be obtained from libinput debug-events, or as a x11 mouse button (button[1-3,8,9]). If set to disable, it disables the scroll_method on_button_down.

input <identifier> scroll_button_lock enabled|disabled

Enables or disables scroll button lock for specified input device.

input <identifier> scroll_factor <floating point value>

Changes the scroll factor for the specified input device. Scroll speed will be scaled by the given value, which must be non-negative.

input <identifier> scroll_method none|two_finger|edge|on_button_down

Changes the scroll method for the specified input device.

input <identifier> tap enabled|disabled

Enables or disables tap for specified input device.

input <identifier> tap_button_map lrm|lmr

Specifies which button mapping to use for tapping. lrm treats 1 finger as left click, 2 fingers as right click, and 3 fingers as middle click. lmr treats 1 finger as left click, 2 fingers as middle click, and 3 fingers as right click.

### SEAT CONFIGURATION
Configure options for multiseat mode.

A seat is a collection of input devices that act independently of each other. Seats are identified by name and the default seat is seat0 if no seats are configured. While sway is running, - (hyphen) can be used as an alias for the current seat. Each seat has an independent keyboard focus and a separate cursor that is controlled by the pointer devices of the seat. This is useful for multiple people using the desktop at the same time with their own devices (each sitting in their own "seat"). The wildcard character, *, can also be used in place of <identifier> to change settings for all seats.

Tip: If the configuration settings do not appear to be taking effect, you could try using * instead of <identifier>. If it works with the wildcard, try using a different identifier from swaymsg -t get_seats until you find the correct seat.

seat <name> attach <input_identifier>

Attach an input device to this seat by its input identifier. A special value of "*" will attach all devices to the seat.

seat <seat> cursor move|set <x> <y>

Move specified seat's cursor relative to current position or wrap to absolute coordinates (with respect to the global coordinate space). Specifying either value as 0 will not update that coordinate. Deprecated: use the virtual-pointer Wayland protocol instead.

seat <seat> cursor press|release button[1-9]|<event-name-or-code>

Simulate pressing (or releasing) the specified mouse button on the specified seat. The button can either be provided as a button event name or event code, which can be obtained from libinput debug-events, or as an x11 mouse button (button[1-9]). If using button[4-7], which map to axes, an axis event will be simulated, however press and release will be ignored and both will occur. Deprecated: use the virtual-pointer Wayland protocol instead.

seat <name> fallback true|false

Set this seat as the fallback seat. A fallback seat will attach any device not explicitly attached to another seat (similar to a "default" seat).

seat <name> hide_cursor <timeout>|when-typing [enable|disable]

Hides the cursor image after the specified event occurred. If timeout is specified, then the cursor will be hidden after timeout (in milliseconds) has elapsed with no activity on the cursor. A timeout of 0 (default) disables hiding the cursor. The minimal timeout is 100 and any value less than that (aside from 0), will be increased to 100.

If when-typing is enabled, then the cursor will be hidden whenever a key is pressed.

Be aware that this setting can interfere with input handling in games and certain types of software (Gimp, Blender etc) that rely on simultaneous input from mouse and keyboard.

seat <name> idle_inhibit <sources...>

Sets the set of input event sources which can prevent the seat from becoming idle, as a space separated list of source names. Valid names are "keyboard", "pointer", "touchpad", "touch", "tablet_pad", "tablet_tool", and "switch". The default behavior is to prevent idle on any event.

seat <name> keyboard_grouping none|smart

Set how the keyboards in the seat are grouped together. Currently, there are two options. none will disable all keyboard grouping. This will make it so each keyboard device has its own isolated state. smart will group the keyboards in the seat by their keymap and repeat info. This is useful for when the keyboard appears as multiple separate input devices. In this mode, the effective layout is synced between the keyboards in the group. The default is smart. To restore the behavior of older versions of sway, use none.

seat <name> pointer_constraint enable|disable|escape

Enables or disables the ability for clients to capture the cursor (enabled by default) for the seat. This is primarily useful for video games. The "escape" command can be used at runtime to escape from a captured client.

seat <name> shortcuts_inhibitor enable|disable|activate|deactivate|toggle

Enables or disables the ability of clients to inhibit keyboard shortcuts for the seat. This is primarily useful for virtualization and remote desktop software. Subcommands enable and disable affect whether future inhibitors are honoured by default, i.e. activated automatically, the default being enable. When used at runtime, disable also disables any currently active inhibitors. activate, deactivate and toggle are only usable at runtime and change the state of a potentially existing inhibitor on the currently focused window. This can be used with the current seat alias (-) to affect only the currently focused window of the current seat. Subcommand deactivate is particularly useful in an --inhibited bindsym to escape a state where shortcuts are inhibited and the client becomes uncooperative. It is worth noting that whether disabled or deactivated inhibitors are removed is entirely up to the client. Depending on the client it may therefore be possible to (re-)activate them later. Any visual indication that an inhibitor is present is currently left to the client as well.

seat <name> xcursor_theme <theme> [<size>]

Override the system default XCursor theme. The default seat's (seat0) theme is also used as the default cursor theme in XWayland, and exported through the XCURSOR_THEME and XCURSOR_SIZE environment variables.

## SEE ALSO
sway(5) sway-output(5) xkeyboard-config(7)


sway-output

title: sway-output(5)


swaynag

title: swaynag(5)


swtpm-localca.conf

package: swtpm-tools

title: swtpm-localca.conf(5)

summary: Configuration file for swtpm_localca

text:
# swtpm-localca.conf(5)

## NAME
swtpm-localca.conf - Configuration file for swtpm_localca

## DESCRIPTION
The file /etc/swtpm-localca.conf contains configuration variables for the swtpm_localca program.

Entries may contain environment variables that will be resolved. All environment variables must be formatted like this: '${varname}'.

Users may write their own configuration into ${XDG_CONFIG_HOME}/swtpm-localca.conf or if XDG_CONFIG_HOME is not set it may be in ${HOME}/.config/swtpm-localca.conf.

The following configuration variables are supported:

statedir

The name of a directory where to store data into. A lock will be created in this directory.

signinkey

The file containing the key used for signing the certificates. Provide a key in PEM format or a pkcs11 URI.

signingkey_password

The password to use for the signing key.

issuercert

The file containing the certificate for this CA. Provide a certificate in PEM format.

certserial

The name of file containing the serial number for the next certificate.

TSS_TCSD_HOSTNAME

This variable can be set to the host where tcsd is running on in case the signing key is a GnuTLS TPM 1.2 key. By default localhost will be used.

TSS_TCSD_PORT

This variable can be set to the port on which tcsd is listening for connections. By default port 30003 will be used.

env:<environment variable name=<value>>

Environment variables, that are needed by pkcs11 modules, can be set using this format. An example for such an environment variable may look like this:

```
    env:MY_MODULE_PKCS11_CONFIG = /tmp/mymodule-pkcs11.conf

```

The line must not contain any trailing spaces.

## EXAMPLE
An example swtpm-localca.conf file may look as follows:

```
 statedir = /var/lib/swtpm_localca
 signingkey = /var/lib/swtpm_localca/signkey.pem
 issuercert = /var/lib/swtpm_localca/issuercert.pem
 certserial = /var/lib/swtpm_localca/certserial
```

With a PKCS11 URI it may look like this:

```
 statedir = /var/lib/swtpm-localca
 signingkey = pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;serial=891b99c169e41301;token=mylabel;id=%00;object=mykey;type=public
 issuercert = /var/lib/swtpm-localca/swtpm-localca-tpmca-cert.pem
 certserial = /var/lib/swtpm-localca/certserial
 SWTPM_PKCS11_PIN = 1234
```

## SEE ALSO
swtpm_localca

## REPORTING BUGS
Report bugs to Stefan Berger <stefanb@linux.vnet.ibm.com>


swtpm-localca.options

title: swtpm-localca.options(5)

summary: Options file for swtpm_localca

text:
# swtpm-localca.options(5)

## NAME
swtpm-localca.options - Options file for swtpm_localca

## DESCRIPTION
The file /etc/swtpm-localca.options contains command line options to pass to the swtpm_cert program and should hold options that apply to the creation of all TPM Endorsement Key (EK) and platform certificates.

Users may write their own options into ${XDG_CONFIG_HOME}/swtpm-localca.options or if XDG_CONFIG_HOME is not set it may be in ${HOME}/.config/swtpm-localca.options.

## EXAMPLE
An example swtpm-localca.options file may look as follows:

```
  --platform-manufacturer Fedora
  --platform-version 2.1
  --platform-model QEMU
```

## SEE ALSO
swtpm_localca

## REPORTING BUGS
Report bugs to Stefan Berger <stefanb@linux.vnet.ibm.com>


title: swtpm_setup.conf(5)

summary: Configuration file for swtpm_setup

text:
# swtpm_setup.conf(5)

## NAME
swtpm_setup.conf - Configuration file for swtpm_setup

## DESCRIPTION
The file /etc/swtpm_setup.conf contains configuration information for swtpm_setup. It must only contain one configuration keyword per line, followed by an equals sign (=) and then followed by appropriate configuration information. A comment at the end of the line may be introduced by a hash (#) sign.

Users may write their own configuration into ${XDG_CONFIG_HOME}/swtpm_setup.conf or if XDG_CONFIG_HOME is not set it may be in ${HOME}/.config/swtpm_setup.conf.

The following keywords are recognized:

create_certs_tool

This keyword is to be followed by the name of an executable or executable script used for creating various TPM certificates. The tool will be called with the following options

--type type

This parameter indicates the type of certificate to create. The type parameter may be one of the following: ek, or platform

--dir dir

This parameter indicates the directory into which the certificate is to be stored. It is expected that the EK certificate is stored in this directory under the name ek.cert and the platform certificate under the name platform.cert.

--ek ek

This parameter indicates the modulus of the public key of the endorsement key (EK). The public key is provided as a sequence of ASCII hex digits.

--vmid ID

This parameter indicates the ID of the VM for which to create the certificate.

--logfile <logfile>

The log file to log output to; by default logging goes to stdout and stderr on the console.

--configfile <configuration file>

The configuration file to use. This file typically contains configuration information for the invoked program. If omitted, the program must use its default configuration file.

--optsfile <options file>

The options file to use. This file typically contains options that the invoked program uses. If omitted, the program must use its default options file.

--tpm-spec-family <family>, --tpm-spec-level <level>, --tpm-spec-revision <revision>

These 3 options describe the TPM specification that was followed for the implementation of the TPM and will be part of the EK certificate.

--tpm2

This option is passed in case a TPM 2 compliant certificate needs to be created.

create_certs_tool_config

This keyword is to be followed by the name of a configuration file that will be passed to the invoked program using the --configfile option described above. If omitted, the invoked program will use the default configuration file.

create_certs_tool_options

This keyword is to be followed by the name of an options file that will be passed to the invoked program using the --optsfile option described above. If omitted, the invoked program will use the default options file.

active_pcr_banks (since v0.7)

This keyword is to be followed by a comma-separated list of names of PCR banks. The list must not contain any spaces. Valid PCR bank names are sha1, sha256, sha384, and sha512.

## SEE ALSO
swtpm_setup

## REPORTING BUGS
Report bugs to Stefan Berger <stefanb@linux.vnet.ibm.com>