293 lines
10 KiB
Plaintext
293 lines
10 KiB
Plaintext
/////
|
|
vim:set ts=4 sw=4 tw=82 noet:
|
|
/////
|
|
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.
|
|
|
|
These commands can be executed in your config file, via **sway-msg**(1), or via
|
|
the bindsym command.
|
|
|
|
Commands
|
|
--------
|
|
|
|
The following commands may only be used in the configuration file.
|
|
|
|
**bar** <block of commands>::
|
|
Append _{_ to this command, the following lines will be commands that
|
|
configure **swaybar**, and _}_ on its own line to close the block.
|
|
+
|
|
See **sway-bar**(5) for details.
|
|
|
|
**input** <input device> <block of commands>::
|
|
Append _{_ to this command, the following lines will be commands to configure
|
|
the named input device, and _}_ on its own line will close the block.
|
|
+
|
|
See **sway-input**(5) for details.
|
|
|
|
**set** <name> <value>::
|
|
Creates a substitution for _value_ that can be used with $_name_ in other
|
|
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** <normal|pixel> [<n>]::
|
|
Set border style for focused window. _normal_ includes a border of thickness
|
|
_n_ and a title bar. _pixel_ is just the border without title bar. Default is
|
|
_normal_ with border thickness 2.
|
|
|
|
**border** <none|toggle>::
|
|
Set border style for focused window to _none_ or _toggle_ between the
|
|
available border styles: _normal_, _pixel_, _none_.
|
|
|
|
**new_window** <normal|none|pixel> [<n>]::
|
|
Set default border style for new windows.
|
|
|
|
**new_float** <normal|none|pixel> [<n>]::
|
|
Set default border style for new floating windows. This does only apply to
|
|
windows that are spawned in floating mode.
|
|
|
|
**exit**::
|
|
Exit sway and end your Wayland session.
|
|
|
|
**floating** <enable|disable|toggle>::
|
|
Make focused view floating, non-floating, or the opposite of what it is now.
|
|
|
|
**focus** <direction>::
|
|
Direction may be one of _up_, _down_, _left_, _right_, or _parent_. The
|
|
directional focus commands will move the focus in that direction. The parent
|
|
focus command will change the focus to the parent of the currently focused
|
|
container, which is useful, for example, to open a sibling of the parent
|
|
container, or to move the entire container around.
|
|
|
|
**focus** output <direction|name>::
|
|
Direction may be one of _up_, _down_, _left_, _right_. The directional focus
|
|
commands will move the focus to the output in that direction. When name is
|
|
given the focus is changed to the output with that name.
|
|
|
|
**focus** mode_toggle::
|
|
Toggles focus between floating view and tiled view.
|
|
|
|
**fullscreen**::
|
|
Toggles fullscreen status for the focused view.
|
|
|
|
**hide_edge_borders** <none|vertical|horizontal|both>::
|
|
Hide window borders adjacent to the screen edges. Default is _none_.
|
|
|
|
**layout** <mode>::
|
|
Sets the layout mode of the focused container. _mode_ can be one of _splith_,
|
|
_splitv_, or _toggle split_.
|
|
|
|
**move** <left|right|up|down>::
|
|
Moves the focused container _left_, _right_, _up_, or _down_.
|
|
|
|
**move** <container|window> to workspace <name>::
|
|
Moves the focused container to the workspace identified by _name_.
|
|
_name_ may be a special workspace name. See **workspace**.
|
|
|
|
**move** <container|window|workspace> to output <name|direction>::
|
|
Moves the focused container or workspace to the output identified by _name_ or
|
|
_direction_. _direction_ may be one of _up_, _down_, _left_, _right_.
|
|
|
|
**reload**::
|
|
Reloads the sway config file without restarting sway.
|
|
|
|
**resize** <shrink|grow> <width|height> <amount>::
|
|
Resizes the currently focused container or view by _amount_. _amount_ can be
|
|
specified as "n px" or "n ppt" or "n px or n ppt".
|
|
|
|
**split** <vertical|v|horizontal|h|toggle|t>::
|
|
Splits the current container, vertically or horizontally. If toggled then the
|
|
current container is split opposite to the parent container.
|
|
|
|
**splith**::
|
|
Equivalent to **split horizontal**.
|
|
|
|
**splitv**::
|
|
Equivalent to **split vertical**.
|
|
|
|
**splitt**::
|
|
Equivalent to **split toggle**.
|
|
|
|
**sticky** <enable|disable|toggle>::
|
|
If enabled and the windows is floating it will always be present on the active
|
|
workspace on that output.
|
|
|
|
The following commands may be used either in the configuration file
|
|
or triggered at runtime.
|
|
|
|
**bindsym** <key combo> <command>::
|
|
Binds _key combo_ to execute _command_ when pressed. You may use XKB key
|
|
names here (**xev**(1) is a good tool for discovering them). An example
|
|
bindsym command would be _bindsym Mod1+Shift+f exec firefox_, which would
|
|
execute Firefox if the alt, shift, and F keys are pressed together. Any
|
|
valid sway command is eligible to be bound to a key combo.
|
|
+
|
|
**bindcode** <code> <command> is also available for binding with key codes
|
|
instead of key names.
|
|
|
|
**debuglog** <on|off|toggle>::
|
|
Enables, disables or toggles logging for debug. The toggle argument cannot
|
|
be used in the configuration file.
|
|
|
|
**exec** <shell command>::
|
|
Executes _shell command_ with sh.
|
|
|
|
**exec_always** <shell command>::
|
|
Like exec, but the shell command will be executed _again_ after *reload* or
|
|
*restart* is executed.
|
|
|
|
**floating_modifier** <modifier> [normal|inverse]::
|
|
When the _modifier_ key is held down, you may use left click to drag floating
|
|
windows, and right click to resize them. Unlike i3, this modifier may also be
|
|
used to resize and move windows that are tiled. With the _inverse_ mode
|
|
enabled, left click is used for resizing and right click for dragging. The
|
|
mode paramenter is optional and defaults to _normal_ if it isn't defined.
|
|
|
|
**floating_scroll** <up|down> [command]::
|
|
Sets the command to be executed on scrolling up and down
|
|
(respectively) while holding the floating modifier. Resets the
|
|
command, when given no arguments.
|
|
|
|
**focus_follows_mouse** <yes|no>::
|
|
If set to _yes_, the currently focused view will change as you move your
|
|
mouse around the screen to the view that ends up underneath your mouse.
|
|
|
|
**for_window** <criteria> <command>::
|
|
Whenever a window that matches _criteria_ appears, run list of commands. See
|
|
**Criteria** section below.
|
|
|
|
**gaps** edge_gaps <on|off|toggle>::
|
|
Whether or not to add gaps between views and workspace edges if amount of
|
|
inner gap is not zero. When _no_, no gap is added where the view is aligned to
|
|
the workspace edge, effectively creating gaps only between views. The toggle
|
|
argument cannot be used in the configuration file.
|
|
|
|
**gaps** <amount>::
|
|
Sets default _amount_ pixels as the gap between each view, and around each
|
|
workspace.
|
|
|
|
**gaps** <inner|outer> <amount>::
|
|
Sets default _amount_ pixels as the _inner_ or _outer_ gap, where the former
|
|
affects spacing between views and the latter affects the space around each
|
|
workspace.
|
|
|
|
**gaps** <inner|outer> <all|workspace|current> <set|plus|minus> <amount>::
|
|
Changes the gaps for the _inner_ or _outer_ gap. _all_ changes the gaps for
|
|
all views or workspace, _workspace_ changes gaps for all views in current
|
|
workspace (or current workspace), and _current_ changes gaps for the current
|
|
view or workspace.
|
|
|
|
**smart_gaps** <on|off>::
|
|
If smart_gaps are _on_ then gaps will only be enabled if a workspace has more
|
|
than one child container.
|
|
|
|
**mode** <mode_name>::
|
|
Switches to the given mode_name. the default mode is simply _default_. To
|
|
create a new mode in config append _{_ to this command, the following lines
|
|
will be keybinds for that mode, and _}_ on its own line to close the block.
|
|
|
|
**mouse_warping** <output|none>::
|
|
When _output_: place mouse at center of newly focused window when changing
|
|
output. When _none_: don't move mouse.
|
|
|
|
**output** <name> <resolution|res> <WIDTHxHEIGHT>::
|
|
Configures the specified output to use the given resolution.
|
|
|
|
**output** <name> <position|pos> <X,Y>::
|
|
Configures the specified output to be arranged at the given position.
|
|
|
|
**output** <name> <background|bg> <file> <mode>::
|
|
Sets the wallpaper for the given output to the specified file, using the given
|
|
scaling mode (one of "stretch", "fill", "fit", "center", "tile").
|
|
|
|
**output** <name> disable::
|
|
Disables the specified output.
|
|
|
|
**NOTES FOR THE OUTPUT COMMAND**::
|
|
You may combine output commands into one, like so:
|
|
+
|
|
output HDMI-A-1 res 1920x1080 pos 1920,0 bg ~/wallpaper.png stretch
|
|
+
|
|
You can get a list of output names like so:
|
|
+
|
|
swaymsg -t get_outputs
|
|
+
|
|
You may also match any output by using the output name "*". Be sure to add
|
|
this output config after the others, or it will be matched instead of the
|
|
others.
|
|
|
|
**seamless_mouse** <on|off>::
|
|
Change output seamlessly when pointer touches edge of output. Outputs need to
|
|
be configured with perfectly aligned adjacent positions for this option to
|
|
have any effect.
|
|
|
|
**workspace** <name>::
|
|
Switches to the specified workspace.
|
|
|
|
**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** <name> output <output>::
|
|
Specifies that the workspace named _name_ should appear on the specified
|
|
_output_.
|
|
|
|
**workspace_layout** <default|stacking|tabbed>::
|
|
Specifies the start layout for new workspaces.
|
|
|
|
**include** <path>::
|
|
Includes a sub config file by _path_. _path_ can be either a full path or a
|
|
path relative to the parent config.
|
|
|
|
Criteria
|
|
--------
|
|
|
|
A criteria is a string in the form of e.g.:
|
|
|
|
[class="[Rr]egex.*" title="some title"]
|
|
|
|
The string contains one or more (space separated) attribute/value pairs and they
|
|
are used by some commands filter which views to execute actions on. All attributes
|
|
must match for the criteria string to match.
|
|
|
|
Currently supported attributes:
|
|
|
|
**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.
|
|
|
|
**id**::
|
|
Compare value against the app id. Can be a regular expression.
|
|
|
|
**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.
|
|
|
|
**workspace**::
|
|
Compare against the workspace name for this view. Can be a regular expression.
|
|
If value is _focused_ then all the views on the currently focused workspace
|
|
matches.
|
|
|
|
See Also
|
|
--------
|
|
|
|
**sway**(1) **sway-input**(5) **sway-bar**(5)
|