aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands/output/background.c8
-rw-r--r--sway/desktop/transaction.c7
-rw-r--r--sway/input/cursor.c23
-rw-r--r--sway/input/seat.c6
-rw-r--r--sway/sway-bar.5.scd56
-rw-r--r--sway/sway-input.5.scd70
-rw-r--r--sway/sway-output.5.scd12
-rw-r--r--sway/sway.1.scd6
-rw-r--r--sway/sway.5.scd162
9 files changed, 184 insertions, 166 deletions
diff --git a/sway/commands/output/background.c b/sway/commands/output/background.c
index affa04ea..f65904bb 100644
--- a/sway/commands/output/background.c
+++ b/sway/commands/output/background.c
@@ -1,5 +1,7 @@
-#define _POSIX_C_SOURCE 200809
+#define _POSIX_C_SOURCE 200809L
#include <libgen.h>
+#include <stdio.h>
+#include <string.h>
#include <strings.h>
#include <unistd.h>
#include <wordexp.h>
@@ -112,8 +114,8 @@ struct cmd_results *output_cmd_background(int argc, char **argv) {
bool can_access = access(src, F_OK) != -1;
if (!can_access) {
- sway_log(SWAY_ERROR, "Unable to access background file '%s': %s",
- src, strerror(errno));
+ sway_log_errno(SWAY_ERROR, "Unable to access background file '%s'",
+ src);
config_add_swaynag_warning("Unable to access background file '%s'",
src);
free(src);
diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c
index b06ac9cc..9155f0a1 100644
--- a/sway/desktop/transaction.c
+++ b/sway/desktop/transaction.c
@@ -1,6 +1,4 @@
#define _POSIX_C_SOURCE 200809L
-#include <errno.h>
-#include <limits.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
@@ -449,9 +447,8 @@ static void transaction_commit(struct sway_transaction *transaction) {
wl_event_source_timer_update(transaction->timer,
server.txn_timeout_ms);
} else {
- sway_log(SWAY_ERROR, "Unable to create transaction timer (%s). "
- "Some imperfect frames might be rendered.",
- strerror(errno));
+ sway_log_errno(SWAY_ERROR, "Unable to create transaction timer "
+ "(some imperfect frames might be rendered)");
transaction->num_waiting = 0;
}
}
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 4b2d99e6..c84d6c40 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -831,6 +831,12 @@ static void handle_cursor_axis(struct wl_listener *listener, void *data) {
transaction_commit_dirty();
}
+static void handle_cursor_frame(struct wl_listener *listener, void *data) {
+ struct sway_cursor *cursor = wl_container_of(listener, cursor, frame);
+ cursor_handle_activity(cursor);
+ wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);
+}
+
static void handle_touch_down(struct wl_listener *listener, void *data) {
struct sway_cursor *cursor = wl_container_of(listener, cursor, touch_down);
wlr_idle_notify_activity(server.idle, cursor->seat->wlr_seat);
@@ -1073,6 +1079,19 @@ void sway_cursor_destroy(struct sway_cursor *cursor) {
wl_event_source_remove(cursor->hide_source);
+ wl_list_remove(&cursor->motion.link);
+ wl_list_remove(&cursor->motion_absolute.link);
+ wl_list_remove(&cursor->button.link);
+ wl_list_remove(&cursor->axis.link);
+ wl_list_remove(&cursor->frame.link);
+ wl_list_remove(&cursor->touch_down.link);
+ wl_list_remove(&cursor->touch_up.link);
+ wl_list_remove(&cursor->touch_motion.link);
+ wl_list_remove(&cursor->tool_axis.link);
+ wl_list_remove(&cursor->tool_tip.link);
+ wl_list_remove(&cursor->tool_button.link);
+ wl_list_remove(&cursor->request_set_cursor.link);
+
wlr_xcursor_manager_destroy(cursor->xcursor_manager);
wlr_cursor_destroy(cursor->cursor);
free(cursor);
@@ -1113,6 +1132,9 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) {
wl_signal_add(&wlr_cursor->events.axis, &cursor->axis);
cursor->axis.notify = handle_cursor_axis;
+ wl_signal_add(&wlr_cursor->events.frame, &cursor->frame);
+ cursor->frame.notify = handle_cursor_frame;
+
wl_signal_add(&wlr_cursor->events.touch_down, &cursor->touch_down);
cursor->touch_down.notify = handle_touch_down;
@@ -1143,7 +1165,6 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) {
cursor->cursor = wlr_cursor;
return cursor;
-
}
/**
diff --git a/sway/input/seat.c b/sway/input/seat.c
index f216810b..8cb1d8e9 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -1,7 +1,6 @@
#define _POSIX_C_SOURCE 200809L
-#include <assert.h>
-#include <errno.h>
#include <linux/input-event-codes.h>
+#include <string.h>
#include <strings.h>
#include <time.h>
#include <wlr/types/wlr_cursor.h>
@@ -839,8 +838,7 @@ void seat_set_focus(struct sway_seat *seat, struct sway_node *node) {
wl_event_source_timer_update(view->urgent_timer,
config->urgent_timeout);
} else {
- sway_log(SWAY_ERROR, "Unable to create urgency timer (%s)",
- strerror(errno));
+ sway_log_errno(SWAY_ERROR, "Unable to create urgency timer");
handle_urgent_timeout(view);
}
} else {
diff --git a/sway/sway-bar.5.scd b/sway/sway-bar.5.scd
index 9a6397e3..5c8b9417 100644
--- a/sway/sway-bar.5.scd
+++ b/sway/sway-bar.5.scd
@@ -10,7 +10,7 @@ Sway allows configuring swaybar in the sway configuration file.
# COMMANDS
-*status\_command* <status command>
+*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 the i3bar JSON protocol:
@@ -18,13 +18,13 @@ Sway allows configuring swaybar in the sway configuration file.
https://i3wm.org/docs/i3bar-protocol.html
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 -_
+ setting the command to a single dash: _swaybar bar bar-0 status_command -_
-*pango\_markup* enabled|disabled
+*pango_markup* enabled|disabled
Enables or disables pango markup for status lines. This has no effect on
status lines using the i3bar JSON protocol.
-*id* <bar\_id>
+*id* <bar_id>
Sets the ID of the bar.
*position* top|bottom
@@ -34,31 +34,31 @@ Sway allows configuring swaybar in the sway configuration file.
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.
-*swaybar\_command* <command>
+*swaybar_command* <command>
Executes custom bar command. Default is _swaybar_.
*font* <font>
Specifies the font to be used in the bar.
-*separator\_symbol* <symbol>
+*separator_symbol* <symbol>
Specifies the separator symbol to separate blocks on the bar.
-*wrap\_scroll* yes|no
+*wrap_scroll* yes|no
Enables or disables wrapping when scrolling through workspaces with the
scroll wheel. Default is _no_.
-*workspace\_buttons* yes|no
+*workspace_buttons* yes|no
Enables or disables workspace buttons on the bar. Default is _yes_.
-*strip\_workspace\_name* yes|no
+*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
+*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_.
-*binding\_mode\_indicator* yes|no
+*binding_mode_indicator* yes|no
Enable or disable binding mode indicator. Default is _yes_.
*gaps* <all> | <horizontal> <vertical> | <top> <right> <bottom> <left>
@@ -90,7 +90,7 @@ Sway allows configuring swaybar in the sway configuration file.
modifier key is pressed, though this behaviour depends on the hidden state.
In _invisible_ mode, it is permanently hidden. Default is _dock_.
-*hidden\_state* hide|show
+*hidden_state* hide|show
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
@@ -100,12 +100,12 @@ Sway allows configuring swaybar in the sway configuration file.
*modifier* <Modifier>|none
Specifies the modifier key that shows a hidden bar. Default is _Mod4_.
-*status\_padding* <padding>
+*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.
-*status\_edge\_padding* <padding>
+*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_.
@@ -115,13 +115,13 @@ Sway allows configuring swaybar in the sway configuration file.
Swaybar provides a system tray where third-party applications may place icons.
The following commands configure the tray.
-*tray\_bindcode* <event-code>
+*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>
+*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
@@ -129,16 +129,16 @@ ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollU
action (Activate for button1, ContextMenu for button2 and SecondaryActivate
for button3).
-*tray\_padding* <px> [px]
+*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>
+*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.
-*icon\_theme* <name>
+*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.
@@ -157,40 +157,40 @@ must be defined in hex: _#RRGGBB_ or _#RRGGBBAA_.
*separator* <color>
Text color to be used for the separator.
-*focused\_background* <color>
+*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>
+*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>
+*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>
+*focused_workspace* <border> <background> <text>
Border, background and text color for a workspace button when the workspace
has focus.
-*active\_workspace* <border> <background> <text>
+*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>
+*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>
+*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>
+*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_.
+ the colors will be taken from _urgent_workspace_.
# SEE ALSO
diff --git a/sway/sway-input.5.scd b/sway/sway-input.5.scd
index 872fe8e2..4b14ef14 100644
--- a/sway/sway-input.5.scd
+++ b/sway/sway-input.5.scd
@@ -7,57 +7,57 @@ 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*.
+To obtain a list of available device identifiers, run *swaymsg -t get_inputs*.
# INPUT COMMANDS
## KEYBOARD CONFIGURATION
-*input* <identifier> repeat\_delay <n>
+*input* <identifier> repeat_delay <n>
Sets the delay before repeating a held-down key, in milliseconds.
-*input* <identifier> repeat\_rate <n>
+*input* <identifier> repeat_rate <n>
Sets the key repeat rate in number of keypresses per second.
For more information on these xkb configuration options, see
*xkeyboard-config*(7).
-*input* <identifier> xkb\_layout <layout\_name>
+*input* <identifier> xkb_layout <layout_name>
Sets the layout of the keyboard like _us_ or _de_.
-*input* <identifier> xkb\_model <model\_name>
+*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>
+*input* <identifier> xkb_options <options>
Sets extra xkb configuration options for the keyboard.
-*input* <identifier> xkb\_rules <rules>
+*input* <identifier> xkb_rules <rules>
Sets files of rules to be used for keyboard mapping composition.
-*input* <identifier> xkb\_variant <variant>
+*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
+*input* <identifier> xkb_capslock enabled|disabled
Initially enables or disables CapsLock on startup, the default is disabled.
-*input* <identifier> xkb\_numlock enabled|disabled
+*input* <identifier> xkb_numlock enabled|disabled
Initially enables or disables NumLock on startup, the default is disabled.
## MAPPING CONFIGURATION
-*input* <identifier> map\_to\_output <identifier>
+*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.
-*input* <identifier> map\_to\_region <WxH@X,Y>
+*input* <identifier> map_to_region <WxH@X,Y>
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>
+*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 in terms of 0..1
(e.g. 0.5x0.5 0.7x0.7). Not all devices support millimeters. Only meaningful
@@ -67,68 +67,68 @@ The following commands may only be used in the configuration file.
## LIBINPUT CONFIGURATION
-*input* <identifier> accel\_profile adaptive|flat
+*input* <identifier> accel_profile adaptive|flat
Sets the pointer acceleration profile for the specified input device.
-*input* <identifier> click\_method none|button\_areas|clickfinger
+*input* <identifier> click_method none|button_areas|clickfinger
Changes the click method for the specified device.
*input* <identifier> drag enabled|disabled
Enables or disables tap-and-drag for specified input device.
-*input* <identifier> drag\_lock enabled|disabled
+*input* <identifier> drag_lock enabled|disabled
Enables or disables drag lock for specified input device.
*input* <identifier> dwt enabled|disabled
Enables or disables disable-while-typing 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.
+*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
+ 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
+*input* <identifier> left_handed enabled|disabled
Enables or disables left handed mode for specified input device.
-*input* <identifier> middle\_emulation enabled|disabled
+*input* <identifier> middle_emulation enabled|disabled
Enables or disables middle click emulation.
-*input* <identifier> natural\_scroll enabled|disabled
+*input* <identifier> natural_scroll enabled|disabled
Enables or disables natural (inverted) scrolling for the specified input
device.
-*input* <identifier> pointer\_accel [<-1|1>]
+*input* <identifier> pointer_accel [<-1|1>]
Changes the pointer acceleration for the specified input device.
-*input* <identifier> repeat\_delay <milliseconds>
+*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.
+*input* <identifier> repeat_rate <characters per second>
+ Sets the frequency of key repeats once the repeat_delay has passed.
-*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
+*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.
+ _disable_, it disables the scroll_method on_button_down.
-*input* <identifier> scroll\_factor <floating point value>
+*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
+*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
+*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
@@ -145,7 +145,7 @@ 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").
-*seat* <name> attach <input\_identifier>
+*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.
@@ -166,7 +166,7 @@ in their own "seat").
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>
+*seat* <name> hide_cursor <timeout>
Hides the cursor image after the specified _timeout_ (in milliseconds)
has elapsed with no activity on that cursor. A timeout of 0 (default)
disables hiding the cursor. The minimal timeout is 100 and any value less
diff --git a/sway/sway-output.5.scd b/sway/sway-output.5.scd
index 28524478..876f4de1 100644
--- a/sway/sway-output.5.scd
+++ b/sway/sway-output.5.scd
@@ -10,12 +10,12 @@ 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
+You can get a list of output names with *swaymsg -t get_outputs*. You may also
match any output by using the output name "\*".
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
+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
@@ -26,7 +26,7 @@ must be separated by one space. For example:
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*.
+ output, use *swaymsg -t get_outputs*.
Examples:
@@ -63,15 +63,15 @@ must be separated by one space. For example:
applications to taste. HiDPI isn't supported with Xwayland clients (windows
will blur).
-*output* <name> background|bg <file> <mode> [<fallback\_color>]
+*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 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
+ __fallback_color__ should be specified as _#RRGGBB_. Alpha is not
supported.
-*output* <name> background|bg <color> solid\_color
+*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.
diff --git a/sway/sway.1.scd b/sway/sway.1.scd
index 09c8ccfd..bce63527 100644
--- a/sway/sway.1.scd
+++ b/sway/sway.1.scd
@@ -47,13 +47,13 @@ You can run sway directly from a tty, or via a Wayland-compatible login manager.
sway searches for a config file in the following locations, in this order:
. ~/.sway/config
-. $XDG\_CONFIG\_HOME/sway/config (suggested location)
+. $XDG_CONFIG_HOME/sway/config (suggested location)
. ~/.i3/config
-. $XDG\_CONFIG\_HOME/i3/config
+. $XDG_CONFIG_HOME/i3/config
. /etc/sway/config
. /etc/i3/config
-If unset, $XDG\_CONFIG\_HOME defaults to *~/.config*.
+If unset, $XDG_CONFIG_HOME defaults to *~/.config*.
An error is raised when no config file is found. The recommended default
configuration is usually installed to */etc/sway/config*; you are encouraged to
diff --git a/sway/sway.5.scd b/sway/sway.5.scd
index c2539804..55de3c9c 100644
--- a/sway/sway.5.scd
+++ b/sway/sway.5.scd
@@ -58,7 +58,7 @@ 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
+*default_orientation* horizontal|vertical|auto
Sets the default container layout for tiled containers.
*include* <path>
@@ -67,14 +67,14 @@ The following commands may only be used in the configuration file.
*wordexp*(3) for details). The same include file can only be included once;
subsequent attempts will be ignored.
-*swaybg\_command* <command>
+*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 -_
+ _swaybg_command -_
-*swaynag\_command* <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
@@ -82,7 +82,7 @@ The following commands may only be used in the configuration file.
results.
It can be disabled by setting the command to a single dash:
- _swaynag\_command -_
+ _swaynag_command -_
*xwayland* enable|disable
Enables or disables Xwayland support, which allows X11 applications to be
@@ -131,7 +131,7 @@ They are expected to be used with *bindsym* or at runtime through *swaymsg*(1).
*focus floating*
Sets focus to the last focused floating container.
-*focus* mode\_toggle
+*focus* mode_toggle
Moves focus between the floating and tiled layers.
*fullscreen* [enable|disable|toggle] [global]
@@ -164,7 +164,7 @@ set|plus|minus <amount>
If unspecified, the default is 10 pixels. Pixels are ignored when moving
tiled containers.
-*move* [absolute] position <pos\_x> [px] <pos\_y> [px]
+*move* [absolute] position <pos_x> [px] <pos_y> [px]
Moves the focused container to the specified position in the workspace. If
_absolute_ is used, the position is relative to all outputs.
@@ -187,11 +187,11 @@ set|plus|minus <amount>
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
+*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
+*move* container|window [to] workspace back_and_forth
Moves the focused container to previously focused workspace.
*move* container|window|workspace [to] output <name>
@@ -256,10 +256,10 @@ set|plus|minus <amount>
"Sticks" a floating window to the current output so that it shows up on all
workspaces.
-*swap* container with id|con\_id|mark <arg>
+*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
+ container can be selected by _id_, _con_id_, or _mark_. _id_ can only be
used with xwayland views. 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
@@ -273,14 +273,14 @@ runtime.
_workspace_. The → (U+2192) is optional and cosmetic. This command is
equivalent to:
- for\_window <criteria> move container to workspace <workspace>
+ for_window <criteria> move container to workspace <workspace>
*assign* <criteria> [→] output left|right|up|down|<name>
Assigns views 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>
+ for_window <criteria> move container to output <output>
*bindsym* [--release|--locked] [--input-device=<device>] [--no-warn] <key combo> <command>
Binds _key combo_ to execute the sway command _command_ when pressed. You
@@ -294,7 +294,7 @@ runtime.
the _--no-warn_ flag.
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
+ 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
@@ -309,7 +309,7 @@ runtime.
*bindcode* [--release|--locked] [--input-device=<device>] [--no-warn] <code> <command>
is also available for binding with key/button codes instead of key/button names.
-*client.<class>* <border> <background> <text> <indicator> <child\_border>
+*client.<class>* <border> <background> <text> <indicator> <child_border>
Configures the color of window borders and title bars. All 5 colors are
required, with the exception of *client.background*, which requires exactly
one. Colors may be specified in hex, either as _#RRGGBB_ or _#RRGGBBAA_.
@@ -322,7 +322,7 @@ runtime.
*client.focused*
The window that has focus.
- *client.focused\_inactive*
+ *client.focused_inactive*
The most recently focused view within a container which is not focused.
*client.placeholder*
@@ -351,7 +351,7 @@ runtime.
container, this would paint the right border of the current view if a
new view would be opened to the right.
- _child\_border_
+ _child_border_
The border around the view itself.
The default colors are:
@@ -361,7 +361,7 @@ The default colors are:
:[ _background_
:[ _text_
:[ _indicator_
-:[ _child\_border_
+:[ _child_border_
|[ *background*
: n/a
: #ffffff
@@ -374,7 +374,7 @@ The default colors are:
: #ffffff
: #2e9ef4
: #285577
-| *focused\_inactive*
+| *focused_inactive*
: #333333
: #5f676a
: #ffffff
@@ -404,10 +404,10 @@ The default colors are:
Enables, disables or toggles debug logging. _toggle_ cannot be used in the
configuration file.
-*default\_border* normal|none|pixel [<n>]
+*default_border* normal|none|pixel [<n>]
Set default border style for new tiled windows.
-*default\_floating\_border* normal|none|pixel [<n>]
+*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.
@@ -415,32 +415,32 @@ The default colors are:
*exec* <shell command>
Executes _shell command_ with sh.
-*exec\_always* <shell command>
+*exec_always* <shell command>
Like *exec*, but the shell command will be executed _again_ after *reload*.
-*floating\_maximum\_size* <width> x <height>
+*floating_maximum_size* <width> x <height>
Specifies the maximum size of floating windows. -1 x -1 removes the upper
limit.
-*floating\_minimum\_size* <width> x <height>
+*floating_minimum_size* <width> x <height>
Specifies the minimum size of floating windows. The default is 75 x 50.
-*floating\_modifier* <modifier> [normal|inverse]
+*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. If _inverse_ is specified, left
click is used for resizing and right click for moving.
-*floating\_scroll* up|right|down|left [command]
+*floating_scroll* up|right|down|left [command]
Sets a command to be executed when the mouse wheel is scrolled in the
specified direction while holding the floating modifier. Resets the
command, when given no arguments.
-*focus\_follows\_mouse* yes|no|always
+*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\_wrapping* yes|no|force
+*focus_wrapping* yes|no|force
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
@@ -452,25 +452,25 @@ The default colors are:
*font* <font>
Sets font for use in title bars in Pango format.
-*titlebar\_border\_thickness* <thickness>
+*titlebar_border_thickness* <thickness>
Thickness of the titlebar border in pixels
-*titlebar\_padding* <horizontal> [<vertical>]
+*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
+ should be greater than titlebar_border_thickness. If _vertical_ value is
not specified it is set to the _horizontal_ value.
-*for\_window* <criteria> <command>
+*for_window* <criteria> <command>
Whenever a window that matches _criteria_ appears, run list of commands.
See *CRITERIA* for more details.
-*force\_focus\_wrapping* yes|no
+*force_focus_wrapping* yes|no
This option is a wrapper to support i3's legacy syntax. _no_ is equivalent
- to _focus\_wrapping yes_ and _yes_ is equivalent to
- _focus\_wrapping force_. This is only available for convenience. Please
- use _focus\_wrapping_ instead when possible.
+ to _focus_wrapping yes_ and _yes_ is equivalent to
+ _focus_wrapping force_. This is only available for convenience. Please
+ use _focus_wrapping_ instead when possible.
*gaps* inner|outer|horizontal|vertical|top|right|bottom|left <amount>
Sets default _amount_ pixels of _inner_ or _outer_ gap, where the inner
@@ -483,15 +483,15 @@ The default colors are:
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* none|vertical|horizontal|both|smart|smart\_no\_gaps
+*hide_edge_borders* none|vertical|horizontal|both|smart|smart_no_gaps
Hides window borders adjacent to the screen edges. Default is _none_.
-*input* <input\_device> <input-subcommands...>
+*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*.
+ get_inputs*.
*seat* <seat> <seat-subcommands...>
For details on seat subcommands, see *sway-input*(5).
@@ -499,14 +499,14 @@ The default colors are:
*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
- only has one visible child (identical to _hide\_edge\_borders_ smart). If
- smart\_borders is set to _no\_gaps_, borders will only be enabled if the
+*smart_borders* on|no_gaps|off
+ If smart_borders are _on_, borders will only be enabled if the workspace
+ only has one visible child (identical to _hide_edge_borders_ smart). If
+ smart_borders is set to _no_gaps_, borders will only be enabled if the
workspace only has one visible child and gaps greater than zero.
-*smart\_gaps* on|off
- If smart\_gaps are _on_ gaps will only be enabled if a workspace has more
+*smart_gaps* on|off
+ If smart_gaps are _on_ gaps will only be enabled if a workspace has more
than one child.
*mark* --add|--replace [--toggle] <identifier>
@@ -519,30 +519,30 @@ The default colors are:
*mode* <mode>
Switches to the specified mode. The default mode _default_.
-*mode* [--pango\_markup] <mode> <mode-subcommands...>
+*mode* [--pango_markup] <mode> <mode-subcommands...>
The only two valid _mode-subcommands..._ are *bindsym* and *bindcode*.
- If _--pango\_markup_ is given, then _mode_ will be interpreted as pango
+ If _--pango_markup_ is given, then _mode_ will be interpreted as pango
markup.
-*mouse\_warping* output|container|none
+*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>
+*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...>
+*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*.
+ A list of output names may be obtained via *swaymsg -t get_outputs*.
-*popup\_during\_fullscreen* smart|ignore|leave\_fullscreen
+*popup_during_fullscreen* smart|ignore|leave_fullscreen
Determines what to do when a fullscreen view opens a dialog.
If _smart_ (the default), the dialog will be displayed. If _ignore_, the
- dialog will not be rendered. If _leave\_fullscreen_, the view will exit
+ dialog will not be rendered. If _leave_fullscreen_, the view will exit
fullscreen mode and the dialog will be rendered.
*set* $<name> <value>
@@ -553,32 +553,32 @@ The default colors are:
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.
+*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_.
+ *show_marks* is yes. The default is _yes_.
*opacity* <value>
Set the opacity of the window between 0 (completely transparent) and 1
(completely opaque).
-*tiling\_drag* enable|disable|toggle
+*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
+ 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_
+ the _floating_mod_ will also allow the container to be dragged. _toggle_
should not be used in the config file.
-*tiling\_drag\_threshold* <threshold>
+*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
+ 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
+*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.
@@ -599,10 +599,10 @@ The default colors are:
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
+*workspace* prev_on_output|next_on_output
Switches to the next workspace on the current output.
-*workspace* back\_and\_forth
+*workspace* back_and_forth
Switches to the previously focused workspace.
*workspace* <name> gaps inner|outer|horizontal|vertical|top|right|bottom|left
@@ -617,23 +617,23 @@ The default colors are:
is higher on the list becomes available, the workspace will be move to the
higher priority output.
-*workspace\_auto\_back\_and\_forth* yes|no
+*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_.
-*workspace\_layout* default|stacking|tabbed
+*workspace_layout* default|stacking|tabbed
Specifies the initial layout for new workspaces.
# BAR CONTROL
-*bar hidden\_state* hide|show|toggle [<bar\_id>]
+*bar hidden_state* hide|show|toggle [<bar_id>]
Sets the hidden state of the bar (see *sway-bar*(5)), either individually,
by specifying a bar id, or if none is given, for all bar instances.
_toggle_ switches between _hide_ and _show_.
-*bar mode* dock|hide|invisible|toggle [<bar\_id>]
+*bar mode* dock|hide|invisible|toggle [<bar_id>]
Sets the mode of the bar (see *sway-bar*(5)), either individually,
by specifying a bar id, or if none is given, for all bar instances.
_toggle_ switches between _dock_ and _hide_.
@@ -650,7 +650,7 @@ The string contains one or more (space separated) attribute/value pairs. They
are used by some commands to choose which views to execute actions on. All
attributes must match for the criteria to match.
-Criteria may be used with either the *for\_window* or *assign* commands to
+Criteria may be used with either the *for_window* or *assign* commands to
specify operations to perform on new views. A criteria may also be used to
perform specific commands (ones that normally act upon one window) on all views
that match that criteria. For example:
@@ -675,7 +675,7 @@ Mark all Firefox windows with "Browser":
The following attributes may be matched with:
-*app\_id*
+*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.
@@ -685,12 +685,12 @@ The following attributes may be matched with:
value is \_\_focused\_\_, then the window class must be the same as that of
the currently focused window.
-*con\_id*
+*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*
+*con_mark*
Compare against the window marks. Can be a regular expression.
*floating*
@@ -705,7 +705,7 @@ The following attributes may be matched with:
of the currently focused window.
*shell*
- Compare value against the window shell, such as "xdg\_shell" or "xwayland".
+ 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.
@@ -721,15 +721,15 @@ The following attributes may be matched with:
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
+*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\_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*
+ 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.
*workspace*
Compare against the workspace name for this view. Can be a regular