aboutsummaryrefslogtreecommitdiffstats
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 @@
1#define _POSIX_C_SOURCE 200809 1#define _POSIX_C_SOURCE 200809L
2#include <libgen.h> 2#include <libgen.h>
3#include <stdio.h>
4#include <string.h>
3#include <strings.h> 5#include <strings.h>
4#include <unistd.h> 6#include <unistd.h>
5#include <wordexp.h> 7#include <wordexp.h>
@@ -112,8 +114,8 @@ struct cmd_results *output_cmd_background(int argc, char **argv) {
112 114
113 bool can_access = access(src, F_OK) != -1; 115 bool can_access = access(src, F_OK) != -1;
114 if (!can_access) { 116 if (!can_access) {
115 sway_log(SWAY_ERROR, "Unable to access background file '%s': %s", 117 sway_log_errno(SWAY_ERROR, "Unable to access background file '%s'",
116 src, strerror(errno)); 118 src);
117 config_add_swaynag_warning("Unable to access background file '%s'", 119 config_add_swaynag_warning("Unable to access background file '%s'",
118 src); 120 src);
119 free(src); 121 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 @@
1#define _POSIX_C_SOURCE 200809L 1#define _POSIX_C_SOURCE 200809L
2#include <errno.h>
3#include <limits.h>
4#include <stdbool.h> 2#include <stdbool.h>
5#include <stdlib.h> 3#include <stdlib.h>
6#include <string.h> 4#include <string.h>
@@ -449,9 +447,8 @@ static void transaction_commit(struct sway_transaction *transaction) {
449 wl_event_source_timer_update(transaction->timer, 447 wl_event_source_timer_update(transaction->timer,
450 server.txn_timeout_ms); 448 server.txn_timeout_ms);
451 } else { 449 } else {
452 sway_log(SWAY_ERROR, "Unable to create transaction timer (%s). " 450 sway_log_errno(SWAY_ERROR, "Unable to create transaction timer "
453 "Some imperfect frames might be rendered.", 451 "(some imperfect frames might be rendered)");
454 strerror(errno));
455 transaction->num_waiting = 0; 452 transaction->num_waiting = 0;
456 } 453 }
457 } 454 }
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) {
831 transaction_commit_dirty(); 831 transaction_commit_dirty();
832} 832}
833 833
834static void handle_cursor_frame(struct wl_listener *listener, void *data) {
835 struct sway_cursor *cursor = wl_container_of(listener, cursor, frame);
836 cursor_handle_activity(cursor);
837 wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);
838}
839
834static void handle_touch_down(struct wl_listener *listener, void *data) { 840static void handle_touch_down(struct wl_listener *listener, void *data) {
835 struct sway_cursor *cursor = wl_container_of(listener, cursor, touch_down); 841 struct sway_cursor *cursor = wl_container_of(listener, cursor, touch_down);
836 wlr_idle_notify_activity(server.idle, cursor->seat->wlr_seat); 842 wlr_idle_notify_activity(server.idle, cursor->seat->wlr_seat);
@@ -1073,6 +1079,19 @@ void sway_cursor_destroy(struct sway_cursor *cursor) {
1073 1079
1074 wl_event_source_remove(cursor->hide_source); 1080 wl_event_source_remove(cursor->hide_source);
1075 1081
1082 wl_list_remove(&cursor->motion.link);
1083 wl_list_remove(&cursor->motion_absolute.link);
1084 wl_list_remove(&cursor->button.link);
1085 wl_list_remove(&cursor->axis.link);
1086 wl_list_remove(&cursor->frame.link);
1087 wl_list_remove(&cursor->touch_down.link);
1088 wl_list_remove(&cursor->touch_up.link);
1089 wl_list_remove(&cursor->touch_motion.link);
1090 wl_list_remove(&cursor->tool_axis.link);
1091 wl_list_remove(&cursor->tool_tip.link);
1092 wl_list_remove(&cursor->tool_button.link);
1093 wl_list_remove(&cursor->request_set_cursor.link);
1094
1076 wlr_xcursor_manager_destroy(cursor->xcursor_manager); 1095 wlr_xcursor_manager_destroy(cursor->xcursor_manager);
1077 wlr_cursor_destroy(cursor->cursor); 1096 wlr_cursor_destroy(cursor->cursor);
1078 free(cursor); 1097 free(cursor);
@@ -1113,6 +1132,9 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) {
1113 wl_signal_add(&wlr_cursor->events.axis, &cursor->axis); 1132 wl_signal_add(&wlr_cursor->events.axis, &cursor->axis);
1114 cursor->axis.notify = handle_cursor_axis; 1133 cursor->axis.notify = handle_cursor_axis;
1115 1134
1135 wl_signal_add(&wlr_cursor->events.frame, &cursor->frame);
1136 cursor->frame.notify = handle_cursor_frame;
1137
1116 wl_signal_add(&wlr_cursor->events.touch_down, &cursor->touch_down); 1138 wl_signal_add(&wlr_cursor->events.touch_down, &cursor->touch_down);
1117 cursor->touch_down.notify = handle_touch_down; 1139 cursor->touch_down.notify = handle_touch_down;
1118 1140
@@ -1143,7 +1165,6 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) {
1143 cursor->cursor = wlr_cursor; 1165 cursor->cursor = wlr_cursor;
1144 1166
1145 return cursor; 1167 return cursor;
1146
1147} 1168}
1148 1169
1149/** 1170/**
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 @@
1#define _POSIX_C_SOURCE 200809L 1#define _POSIX_C_SOURCE 200809L
2#include <assert.h>
3#include <errno.h>
4#include <linux/input-event-codes.h> 2#include <linux/input-event-codes.h>
3#include <string.h>
5#include <strings.h> 4#include <strings.h>
6#include <time.h> 5#include <time.h>
7#include <wlr/types/wlr_cursor.h> 6#include <wlr/types/wlr_cursor.h>
@@ -839,8 +838,7 @@ void seat_set_focus(struct sway_seat *seat, struct sway_node *node) {
839 wl_event_source_timer_update(view->urgent_timer, 838 wl_event_source_timer_update(view->urgent_timer,
840 config->urgent_timeout); 839 config->urgent_timeout);
841 } else { 840 } else {
842 sway_log(SWAY_ERROR, "Unable to create urgency timer (%s)", 841 sway_log_errno(SWAY_ERROR, "Unable to create urgency timer");
843 strerror(errno));
844 handle_urgent_timeout(view); 842 handle_urgent_timeout(view);
845 } 843 }
846 } else { 844 } 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.
10 10
11# COMMANDS 11# COMMANDS
12 12
13*status\_command* <status command> 13*status_command* <status command>
14 Executes the bar _status command_ with _sh -c_. Each line of text printed 14 Executes the bar _status command_ with _sh -c_. Each line of text printed
15 to stdout from this command will be displayed in the status area of the 15 to stdout from this command will be displayed in the status area of the
16 bar. You may also use the i3bar JSON protocol: 16 bar. You may also use the i3bar JSON protocol:
@@ -18,13 +18,13 @@ Sway allows configuring swaybar in the sway configuration file.
18 https://i3wm.org/docs/i3bar-protocol.html 18 https://i3wm.org/docs/i3bar-protocol.html
19 19
20 If running this command via IPC, you can disable a running status command by 20 If running this command via IPC, you can disable a running status command by
21 setting the command to a single dash: _swaybar bar bar-0 status\_command -_ 21 setting the command to a single dash: _swaybar bar bar-0 status_command -_
22 22
23*pango\_markup* enabled|disabled 23*pango_markup* enabled|disabled
24 Enables or disables pango markup for status lines. This has no effect on 24 Enables or disables pango markup for status lines. This has no effect on
25 status lines using the i3bar JSON protocol. 25 status lines using the i3bar JSON protocol.
26 26
27*id* <bar\_id> 27*id* <bar_id>
28 Sets the ID of the bar. 28 Sets the ID of the bar.
29 29
30*position* top|bottom 30*position* top|bottom
@@ -34,31 +34,31 @@ Sway allows configuring swaybar in the sway configuration file.
34 Restrict the bar to a certain output, can be specified multiple times. If 34 Restrict the bar to a certain output, can be specified multiple times. If
35 the output command is omitted, the bar will be displayed on all outputs. 35 the output command is omitted, the bar will be displayed on all outputs.
36 36
37*swaybar\_command* <command> 37*swaybar_command* <command>
38 Executes custom bar command. Default is _swaybar_. 38 Executes custom bar command. Default is _swaybar_.
39 39
40*font* <font> 40*font* <font>
41 Specifies the font to be used in the bar. 41 Specifies the font to be used in the bar.
42 42
43*separator\_symbol* <symbol> 43*separator_symbol* <symbol>
44 Specifies the separator symbol to separate blocks on the bar. 44 Specifies the separator symbol to separate blocks on the bar.
45 45
46*wrap\_scroll* yes|no 46*wrap_scroll* yes|no
47 Enables or disables wrapping when scrolling through workspaces with the 47 Enables or disables wrapping when scrolling through workspaces with the
48 scroll wheel. Default is _no_. 48 scroll wheel. Default is _no_.
49 49
50*workspace\_buttons* yes|no 50*workspace_buttons* yes|no
51 Enables or disables workspace buttons on the bar. Default is _yes_. 51 Enables or disables workspace buttons on the bar. Default is _yes_.
52 52
53*strip\_workspace\_name* yes|no 53*strip_workspace_name* yes|no
54 If set to _yes_, then workspace names will be omitted from the workspace 54 If set to _yes_, then workspace names will be omitted from the workspace
55 button and only the custom number will be shown. Default is _no_. 55 button and only the custom number will be shown. Default is _no_.
56 56
57*strip\_workspace\_numbers* yes|no 57*strip_workspace_numbers* yes|no
58 If set to _yes_, then workspace numbers will be omitted from the workspace 58 If set to _yes_, then workspace numbers will be omitted from the workspace
59 button and only the custom name will be shown. Default is _no_. 59 button and only the custom name will be shown. Default is _no_.
60 60
61*binding\_mode\_indicator* yes|no 61*binding_mode_indicator* yes|no
62 Enable or disable binding mode indicator. Default is _yes_. 62 Enable or disable binding mode indicator. Default is _yes_.
63 63
64*gaps* <all> | <horizontal> <vertical> | <top> <right> <bottom> <left> 64*gaps* <all> | <horizontal> <vertical> | <top> <right> <bottom> <left>
@@ -90,7 +90,7 @@ Sway allows configuring swaybar in the sway configuration file.
90 modifier key is pressed, though this behaviour depends on the hidden state. 90 modifier key is pressed, though this behaviour depends on the hidden state.
91 In _invisible_ mode, it is permanently hidden. Default is _dock_. 91 In _invisible_ mode, it is permanently hidden. Default is _dock_.
92 92
93*hidden\_state* hide|show 93*hidden_state* hide|show
94 Specifies the behaviour of the bar when it is in _hide_ mode. When the 94 Specifies the behaviour of the bar when it is in _hide_ mode. When the
95 hidden state is _hide_, then it is normally hidden, and only unhidden by 95 hidden state is _hide_, then it is normally hidden, and only unhidden by
96 pressing the modifier key or in case of urgency hints. When the hidden 96 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.
100*modifier* <Modifier>|none 100*modifier* <Modifier>|none
101 Specifies the modifier key that shows a hidden bar. Default is _Mod4_. 101 Specifies the modifier key that shows a hidden bar. Default is _Mod4_.
102 102
103*status\_padding* <padding> 103*status_padding* <padding>
104 Sets the vertical padding that is used for the status line. The default is 104 Sets the vertical padding that is used for the status line. The default is
105 _1_. If _padding_ is _0_, blocks will be able to take up the full height of 105 _1_. If _padding_ is _0_, blocks will be able to take up the full height of
106 the bar. This value will be multiplied by the output scale. 106 the bar. This value will be multiplied by the output scale.
107 107
108*status\_edge\_padding* <padding> 108*status_edge_padding* <padding>
109 Sets the padding that is used when the status line is at the right edge of 109 Sets the padding that is used when the status line is at the right edge of
110 the bar. This value will be multiplied by the output scale. The default is 110 the bar. This value will be multiplied by the output scale. The default is
111 _3_. 111 _3_.
@@ -115,13 +115,13 @@ Sway allows configuring swaybar in the sway configuration file.
115Swaybar provides a system tray where third-party applications may place icons. 115Swaybar provides a system tray where third-party applications may place icons.
116The following commands configure the tray. 116The following commands configure the tray.
117 117
118*tray\_bindcode* <event-code> 118*tray_bindcode* <event-code>
119ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop 119ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop
120 Executes the action when the mouse button has been pressed. The buttons can 120 Executes the action when the mouse button has been pressed. The buttons can
121 be given as an event code, which can be obtained from `libinput debug-events`. 121 be given as an event code, which can be obtained from `libinput debug-events`.
122 To disable the default behavior for a button, use the command _nop_. 122 To disable the default behavior for a button, use the command _nop_.
123 123
124*tray\_bindsym* button[1-9]|<event-name> 124*tray_bindsym* button[1-9]|<event-name>
125ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop 125ContextMenu|Activate|SecondaryActivate|ScrollDown|ScrollLeft|ScrollRight|ScrollUp|nop
126 Executes the action when the mouse button has been pressed. The buttons can 126 Executes the action when the mouse button has been pressed. The buttons can
127 be given as a x11 button number or an event name, which can be obtained 127 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
129 action (Activate for button1, ContextMenu for button2 and SecondaryActivate 129 action (Activate for button1, ContextMenu for button2 and SecondaryActivate
130 for button3). 130 for button3).
131 131
132*tray\_padding* <px> [px] 132*tray_padding* <px> [px]
133 Sets the pixel padding of the system tray. This padding will surround the 133 Sets the pixel padding of the system tray. This padding will surround the
134 tray on all sides and between each item. The default value for _px_ is 2. 134 tray on all sides and between each item. The default value for _px_ is 2.
135 135
136*tray\_output* none|<output> 136*tray_output* none|<output>
137 Restrict the tray to a certain output, can be specified multiple times. If 137 Restrict the tray to a certain output, can be specified multiple times. If
138 omitted, the tray will be displayed on all outputs. Unlike i3bar, swaybar 138 omitted, the tray will be displayed on all outputs. Unlike i3bar, swaybar
139 can show icons on any number of bars and outputs without races. 139 can show icons on any number of bars and outputs without races.
140 140
141*icon\_theme* <name> 141*icon_theme* <name>
142 Sets the icon theme that sway will look for item icons in. This option has 142 Sets the icon theme that sway will look for item icons in. This option has
143 no default value, because sway will always default to the fallback theme, 143 no default value, because sway will always default to the fallback theme,
144 hicolor. 144 hicolor.
@@ -157,40 +157,40 @@ must be defined in hex: _#RRGGBB_ or _#RRGGBBAA_.
157*separator* <color> 157*separator* <color>
158 Text color to be used for the separator. 158 Text color to be used for the separator.
159 159
160*focused\_background* <color> 160*focused_background* <color>
161 Background color of the bar on the currently focused monitor output. If not 161 Background color of the bar on the currently focused monitor output. If not
162 used, the color will be taken from _background_. 162 used, the color will be taken from _background_.
163 163
164*focused\_statusline* <color> 164*focused_statusline* <color>
165 Text color to be used for the statusline on the currently focused monitor 165 Text color to be used for the statusline on the currently focused monitor
166 output. If not used, the color will be taken from _statusline_. 166 output. If not used, the color will be taken from _statusline_.
167 167
168*focused\_separator* <color> 168*focused_separator* <color>
169 Text color to be used for the separator on the currently focused monitor 169 Text color to be used for the separator on the currently focused monitor
170 output. If not used, the color will be taken from _separator_. 170 output. If not used, the color will be taken from _separator_.
171 171
172*focused\_workspace* <border> <background> <text> 172*focused_workspace* <border> <background> <text>
173 Border, background and text color for a workspace button when the workspace 173 Border, background and text color for a workspace button when the workspace
174 has focus. 174 has focus.
175 175
176*active\_workspace* <border> <background> <text> 176*active_workspace* <border> <background> <text>
177 Border, background and text color for a workspace button when the workspace 177 Border, background and text color for a workspace button when the workspace
178 is active (visible) on some output, but the focus is on another one. You 178 is active (visible) on some output, but the focus is on another one. You
179 can only tell this apart from the focused workspace when you are using 179 can only tell this apart from the focused workspace when you are using
180 multiple monitors. 180 multiple monitors.
181 181
182*inactive\_workspace* <border> <background> <text> 182*inactive_workspace* <border> <background> <text>
183 Border, background and text color for a workspace button when the workspace 183 Border, background and text color for a workspace button when the workspace
184 does not have focus and is not active (visible) on any output. This will be 184 does not have focus and is not active (visible) on any output. This will be
185 the case for most workspaces. 185 the case for most workspaces.
186 186
187*urgent\_workspace* <border> <background> <text> 187*urgent_workspace* <border> <background> <text>
188 Border, background and text color for a workspace button when the workspace 188 Border, background and text color for a workspace button when the workspace
189 contains a window with the urgency hint set. 189 contains a window with the urgency hint set.
190 190
191*binding\_mode* <border> <background> <text> 191*binding_mode* <border> <background> <text>
192 Border, background and text color for the binding mode indicator. If not used, 192 Border, background and text color for the binding mode indicator. If not used,
193 the colors will be taken from _urgent\_workspace_. 193 the colors will be taken from _urgent_workspace_.
194 194
195# SEE ALSO 195# SEE ALSO
196 196
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
7# DESCRIPTION 7# DESCRIPTION
8 8
9Sway allows for configuration of devices within the sway configuration file. 9Sway allows for configuration of devices within the sway configuration file.
10To obtain a list of available device identifiers, run *swaymsg -t get\_inputs*. 10To obtain a list of available device identifiers, run *swaymsg -t get_inputs*.
11 11
12# INPUT COMMANDS 12# INPUT COMMANDS
13 13
14## KEYBOARD CONFIGURATION 14## KEYBOARD CONFIGURATION
15 15
16*input* <identifier> repeat\_delay <n> 16*input* <identifier> repeat_delay <n>
17 Sets the delay before repeating a held-down key, in milliseconds. 17 Sets the delay before repeating a held-down key, in milliseconds.
18 18
19*input* <identifier> repeat\_rate <n> 19*input* <identifier> repeat_rate <n>
20 Sets the key repeat rate in number of keypresses per second. 20 Sets the key repeat rate in number of keypresses per second.
21 21
22For more information on these xkb configuration options, see 22For more information on these xkb configuration options, see
23*xkeyboard-config*(7). 23*xkeyboard-config*(7).
24 24
25*input* <identifier> xkb\_layout <layout\_name> 25*input* <identifier> xkb_layout <layout_name>
26 Sets the layout of the keyboard like _us_ or _de_. 26 Sets the layout of the keyboard like _us_ or _de_.
27 27
28*input* <identifier> xkb\_model <model\_name> 28*input* <identifier> xkb_model <model_name>
29 Sets the model of the keyboard. This has an influence for some extra keys 29 Sets the model of the keyboard. This has an influence for some extra keys
30 your keyboard might have. 30 your keyboard might have.
31 31
32*input* <identifier> xkb\_options <options> 32*input* <identifier> xkb_options <options>
33 Sets extra xkb configuration options for the keyboard. 33 Sets extra xkb configuration options for the keyboard.
34 34
35*input* <identifier> xkb\_rules <rules> 35*input* <identifier> xkb_rules <rules>
36 Sets files of rules to be used for keyboard mapping composition. 36 Sets files of rules to be used for keyboard mapping composition.
37 37
38*input* <identifier> xkb\_variant <variant> 38*input* <identifier> xkb_variant <variant>
39 Sets the variant of the keyboard like _dvorak_ or _colemak_. 39 Sets the variant of the keyboard like _dvorak_ or _colemak_.
40 40
41The following commands may only be used in the configuration file. 41The following commands may only be used in the configuration file.
42 42
43*input* <identifier> xkb\_capslock enabled|disabled 43*input* <identifier> xkb_capslock enabled|disabled
44 Initially enables or disables CapsLock on startup, the default is disabled. 44 Initially enables or disables CapsLock on startup, the default is disabled.
45 45
46*input* <identifier> xkb\_numlock enabled|disabled 46*input* <identifier> xkb_numlock enabled|disabled
47 Initially enables or disables NumLock on startup, the default is disabled. 47 Initially enables or disables NumLock on startup, the default is disabled.
48 48
49## MAPPING CONFIGURATION 49## MAPPING CONFIGURATION
50 50
51*input* <identifier> map\_to\_output <identifier> 51*input* <identifier> map_to_output <identifier>
52 Maps inputs from this device to the specified output. Only meaningful if the 52 Maps inputs from this device to the specified output. Only meaningful if the
53 device is a pointer, touch, or drawing tablet device. 53 device is a pointer, touch, or drawing tablet device.
54 54
55*input* <identifier> map\_to\_region <WxH@X,Y> 55*input* <identifier> map_to_region <WxH@X,Y>
56 Maps inputs from this device to the specified region of the global output 56 Maps inputs from this device to the specified region of the global output
57 layout. Only meaningful if the device is a pointer, touch, or drawing tablet 57 layout. Only meaningful if the device is a pointer, touch, or drawing tablet
58 device. 58 device.
59 59
60*input* <identifier> map\_from\_region <X1xY1> <X2xY2> 60*input* <identifier> map_from_region <X1xY1> <X2xY2>
61 Ignores inputs from this device that do not occur within the specified 61 Ignores inputs from this device that do not occur within the specified
62 region. Can be in millimeters (e.g. 10x20mm 20x40mm) or in terms of 0..1 62 region. Can be in millimeters (e.g. 10x20mm 20x40mm) or in terms of 0..1
63 (e.g. 0.5x0.5 0.7x0.7). Not all devices support millimeters. Only meaningful 63 (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.
67 67
68## LIBINPUT CONFIGURATION 68## LIBINPUT CONFIGURATION
69 69
70*input* <identifier> accel\_profile adaptive|flat 70*input* <identifier> accel_profile adaptive|flat
71 Sets the pointer acceleration profile for the specified input device. 71 Sets the pointer acceleration profile for the specified input device.
72 72
73*input* <identifier> click\_method none|button\_areas|clickfinger 73*input* <identifier> click_method none|button_areas|clickfinger
74 Changes the click method for the specified device. 74 Changes the click method for the specified device.
75 75
76*input* <identifier> drag enabled|disabled 76*input* <identifier> drag enabled|disabled
77 Enables or disables tap-and-drag for specified input device. 77 Enables or disables tap-and-drag for specified input device.
78 78
79*input* <identifier> drag\_lock enabled|disabled 79*input* <identifier> drag_lock enabled|disabled
80 Enables or disables drag lock for specified input device. 80 Enables or disables drag lock for specified input device.
81 81
82*input* <identifier> dwt enabled|disabled 82*input* <identifier> dwt enabled|disabled
83 Enables or disables disable-while-typing for the specified input device. 83 Enables or disables disable-while-typing for the specified input device.
84 84
85*input* <identifier> events enabled|disabled|disabled\_on\_external\_mouse|toggle [<toggle-modes>] 85*input* <identifier> events enabled|disabled|disabled_on_external_mouse|toggle [<toggle-modes>]
86 Enables or disables send\_events for specified input device. Disabling 86 Enables or disables send_events for specified input device. Disabling
87 send\_events disables the input device. 87 send_events disables the input device.
88 88
89 The _toggle_ option cannot be used in the config. If no toggle modes are 89 The _toggle_ option cannot be used in the config. If no toggle modes are
90 listed, all supported modes for the device will be toggled through in the 90 listed, all supported modes for the device will be toggled through in the
91 order: enabled, disabled\_on\_external\_mouse, disabled, (loop back). If 91 order: enabled, disabled_on_external_mouse, disabled, (loop back). If
92 toggle modes are listed, they will be cycled through, defaulting to the 92 toggle modes are listed, they will be cycled through, defaulting to the
93 first mode listed if the current mode is not in the list. They will also 93 first mode listed if the current mode is not in the list. They will also
94 not be checked to see if they are supported for the device and may fail. 94 not be checked to see if they are supported for the device and may fail.
95 95
96*input* <identifier> left\_handed enabled|disabled 96*input* <identifier> left_handed enabled|disabled
97 Enables or disables left handed mode for specified input device. 97 Enables or disables left handed mode for specified input device.
98 98
99*input* <identifier> middle\_emulation enabled|disabled 99*input* <identifier> middle_emulation enabled|disabled
100 Enables or disables middle click emulation. 100 Enables or disables middle click emulation.
101 101
102*input* <identifier> natural\_scroll enabled|disabled 102*input* <identifier> natural_scroll enabled|disabled
103 Enables or disables natural (inverted) scrolling for the specified input 103 Enables or disables natural (inverted) scrolling for the specified input
104 device. 104 device.
105 105
106*input* <identifier> pointer\_accel [<-1|1>] 106*input* <identifier> pointer_accel [<-1|1>]
107 Changes the pointer acceleration for the specified input device. 107 Changes the pointer acceleration for the specified input device.
108 108
109*input* <identifier> repeat\_delay <milliseconds> 109*input* <identifier> repeat_delay <milliseconds>
110 Sets the amount of time a key must be held before it starts repeating. 110 Sets the amount of time a key must be held before it starts repeating.
111 111
112*input* <identifier> repeat\_rate <characters per second> 112*input* <identifier> repeat_rate <characters per second>
113 Sets the frequency of key repeats once the repeat\_delay has passed. 113 Sets the frequency of key repeats once the repeat_delay has passed.
114 114
115*input* <identifier> scroll\_button disable|button[1-3,8,9]|<event-code-or-name> 115*input* <identifier> scroll_button disable|button[1-3,8,9]|<event-code-or-name>
116 Sets the button used for scroll\_method on\_button\_down. The button can 116 Sets the button used for scroll_method on_button_down. The button can
117 be given as an event name or code, which can be obtained from `libinput 117 be given as an event name or code, which can be obtained from `libinput
118 debug-events`, or as a x11 mouse button (button[1-3,8,9]). If set to 118 debug-events`, or as a x11 mouse button (button[1-3,8,9]). If set to
119 _disable_, it disables the scroll\_method on\_button\_down. 119 _disable_, it disables the scroll_method on_button_down.
120 120
121*input* <identifier> scroll\_factor <floating point value> 121*input* <identifier> scroll_factor <floating point value>
122 Changes the scroll factor for the specified input device. Scroll speed will 122 Changes the scroll factor for the specified input device. Scroll speed will
123 be scaled by the given value, which must be non-negative. 123 be scaled by the given value, which must be non-negative.
124 124
125*input* <identifier> scroll\_method none|two\_finger|edge|on\_button\_down 125*input* <identifier> scroll_method none|two_finger|edge|on_button_down
126 Changes the scroll method for the specified input device. 126 Changes the scroll method for the specified input device.
127 127
128*input* <identifier> tap enabled|disabled 128*input* <identifier> tap enabled|disabled
129 Enables or disables tap for specified input device. 129 Enables or disables tap for specified input device.
130 130
131*input* <identifier> tap\_button\_map lrm|lmr 131*input* <identifier> tap_button_map lrm|lmr
132 Specifies which button mapping to use for tapping. _lrm_ treats 1 finger as 132 Specifies which button mapping to use for tapping. _lrm_ treats 1 finger as
133 left click, 2 fingers as right click, and 3 fingers as middle click. _lmr_ 133 left click, 2 fingers as right click, and 3 fingers as middle click. _lmr_
134 treats 1 finger as left click, 2 fingers as middle click, and 3 fingers as 134 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
145people using the desktop at the same time with their own devices (each sitting 145people using the desktop at the same time with their own devices (each sitting
146in their own "seat"). 146in their own "seat").
147 147
148*seat* <name> attach <input\_identifier> 148*seat* <name> attach <input_identifier>
149 Attach an input device to this seat by its input identifier. A special 149 Attach an input device to this seat by its input identifier. A special
150 value of "\*" will attach all devices to the seat. 150 value of "\*" will attach all devices to the seat.
151 151
@@ -166,7 +166,7 @@ in their own "seat").
166 Set this seat as the fallback seat. A fallback seat will attach any device 166 Set this seat as the fallback seat. A fallback seat will attach any device
167 not explicitly attached to another seat (similar to a "default" seat). 167 not explicitly attached to another seat (similar to a "default" seat).
168 168
169*seat* <name> hide\_cursor <timeout> 169*seat* <name> hide_cursor <timeout>
170 Hides the cursor image after the specified _timeout_ (in milliseconds) 170 Hides the cursor image after the specified _timeout_ (in milliseconds)
171 has elapsed with no activity on that cursor. A timeout of 0 (default) 171 has elapsed with no activity on that cursor. A timeout of 0 (default)
172 disables hiding the cursor. The minimal timeout is 100 and any value less 172 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:
10 10
11 output HDMI-A-1 mode 1920x1080 pos 1920,0 bg ~/wallpaper.png stretch 11 output HDMI-A-1 mode 1920x1080 pos 1920,0 bg ~/wallpaper.png stretch
12 12
13You can get a list of output names with *swaymsg -t get\_outputs*. You may also 13You can get a list of output names with *swaymsg -t get_outputs*. You may also
14match any output by using the output name "\*". 14match any output by using the output name "\*".
15 15
16Some outputs may have different names when disconnecting and reconnecting. To 16Some outputs may have different names when disconnecting and reconnecting. To
17identify these, the name can be substituted for a string consisting of the make, 17identify these, the name can be substituted for a string consisting of the make,
18model and serial which you can get from *swaymsg -t get\_outputs*. Each value 18model and serial which you can get from *swaymsg -t get_outputs*. Each value
19must be separated by one space. For example: 19must be separated by one space. For example:
20 20
21 output "Some Company ABC123 0x00000000" pos 1920,0 21 output "Some Company ABC123 0x00000000" pos 1920,0
@@ -26,7 +26,7 @@ must be separated by one space. For example:
26 Configures the specified output to use the given mode. Modes are a 26 Configures the specified output to use the given mode. Modes are a
27 combination of width and height (in pixels) and a refresh rate that your 27 combination of width and height (in pixels) and a refresh rate that your
28 display can be configured to use. For a list of available modes for each 28 display can be configured to use. For a list of available modes for each
29 output, use *swaymsg -t get\_outputs*. 29 output, use *swaymsg -t get_outputs*.
30 30
31 Examples: 31 Examples:
32 32
@@ -63,15 +63,15 @@ must be separated by one space. For example:
63 applications to taste. HiDPI isn't supported with Xwayland clients (windows 63 applications to taste. HiDPI isn't supported with Xwayland clients (windows
64 will blur). 64 will blur).
65 65
66*output* <name> background|bg <file> <mode> [<fallback\_color>] 66*output* <name> background|bg <file> <mode> [<fallback_color>]
67 Sets the wallpaper for the given output to the specified file, using the 67 Sets the wallpaper for the given output to the specified file, using the
68 given scaling mode (one of "stretch", "fill", "fit", "center", "tile"). If 68 given scaling mode (one of "stretch", "fill", "fit", "center", "tile"). If
69 the specified file cannot be accessed or if the image does fill the entire 69 the specified file cannot be accessed or if the image does fill the entire
70 output, a fallback color may be provided to cover the rest of the output. 70 output, a fallback color may be provided to cover the rest of the output.
71 __fallback\_color__ should be specified as _#RRGGBB_. Alpha is not 71 __fallback_color__ should be specified as _#RRGGBB_. Alpha is not
72 supported. 72 supported.
73 73
74*output* <name> background|bg <color> solid\_color 74*output* <name> background|bg <color> solid_color
75 Sets the background of the given output to the specified color. _color_ 75 Sets the background of the given output to the specified color. _color_
76 should be specified as _#RRGGBB_. Alpha is not supported. 76 should be specified as _#RRGGBB_. Alpha is not supported.
77 77
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.
47sway searches for a config file in the following locations, in this order: 47sway searches for a config file in the following locations, in this order:
48 48
49. ~/.sway/config 49. ~/.sway/config
50. $XDG\_CONFIG\_HOME/sway/config (suggested location) 50. $XDG_CONFIG_HOME/sway/config (suggested location)
51. ~/.i3/config 51. ~/.i3/config
52. $XDG\_CONFIG\_HOME/i3/config 52. $XDG_CONFIG_HOME/i3/config
53. /etc/sway/config 53. /etc/sway/config
54. /etc/i3/config 54. /etc/i3/config
55 55
56If unset, $XDG\_CONFIG\_HOME defaults to *~/.config*. 56If unset, $XDG_CONFIG_HOME defaults to *~/.config*.
57 57
58An error is raised when no config file is found. The recommended default 58An error is raised when no config file is found. The recommended default
59configuration is usually installed to */etc/sway/config*; you are encouraged to 59configuration 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.
58*bar* [<bar-id>] <bar-subcommands...> 58*bar* [<bar-id>] <bar-subcommands...>
59 For details on bar subcommands, see *sway-bar*(5). 59 For details on bar subcommands, see *sway-bar*(5).
60 60
61*default\_orientation* horizontal|vertical|auto 61*default_orientation* horizontal|vertical|auto
62 Sets the default container layout for tiled containers. 62 Sets the default container layout for tiled containers.
63 63
64*include* <path> 64*include* <path>
@@ -67,14 +67,14 @@ The following commands may only be used in the configuration file.
67 *wordexp*(3) for details). The same include file can only be included once; 67 *wordexp*(3) for details). The same include file can only be included once;
68 subsequent attempts will be ignored. 68 subsequent attempts will be ignored.
69 69
70*swaybg\_command* <command> 70*swaybg_command* <command>
71 Executes custom background _command_. Default is _swaybg_. Refer to 71 Executes custom background _command_. Default is _swaybg_. Refer to
72 *sway-output*(5) for more information. 72 *sway-output*(5) for more information.
73 73
74 It can be disabled by setting the command to a single dash: 74 It can be disabled by setting the command to a single dash:
75 _swaybg\_command -_ 75 _swaybg_command -_
76 76
77*swaynag\_command* <command> 77*swaynag_command* <command>
78 Executes custom command for _swaynag_. Default is _swaynag_. Additional 78 Executes custom command for _swaynag_. Default is _swaynag_. Additional
79 arguments may be appended to the end. This should only be used to either 79 arguments may be appended to the end. This should only be used to either
80 direct sway to call swaynag from a custom path or to provide additional 80 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.
82 results. 82 results.
83 83
84 It can be disabled by setting the command to a single dash: 84 It can be disabled by setting the command to a single dash:
85 _swaynag\_command -_ 85 _swaynag_command -_
86 86
87*xwayland* enable|disable 87*xwayland* enable|disable
88 Enables or disables Xwayland support, which allows X11 applications to be 88 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).
131*focus floating* 131*focus floating*
132 Sets focus to the last focused floating container. 132 Sets focus to the last focused floating container.
133 133
134*focus* mode\_toggle 134*focus* mode_toggle
135 Moves focus between the floating and tiled layers. 135 Moves focus between the floating and tiled layers.
136 136
137*fullscreen* [enable|disable|toggle] [global] 137*fullscreen* [enable|disable|toggle] [global]
@@ -164,7 +164,7 @@ set|plus|minus <amount>
164 If unspecified, the default is 10 pixels. Pixels are ignored when moving 164 If unspecified, the default is 10 pixels. Pixels are ignored when moving
165 tiled containers. 165 tiled containers.
166 166
167*move* [absolute] position <pos\_x> [px] <pos\_y> [px] 167*move* [absolute] position <pos_x> [px] <pos_y> [px]
168 Moves the focused container to the specified position in the workspace. If 168 Moves the focused container to the specified position in the workspace. If
169 _absolute_ is used, the position is relative to all outputs. 169 _absolute_ is used, the position is relative to all outputs.
170 170
@@ -187,11 +187,11 @@ set|plus|minus <amount>
187 Moves the focused container to the previous, next or current workspace on 187 Moves the focused container to the previous, next or current workspace on
188 this output, or if no workspaces remain, the previous or next output. 188 this output, or if no workspaces remain, the previous or next output.
189 189
190*move* container|window [to] workspace prev\_on\_output|next\_on\_output 190*move* container|window [to] workspace prev_on_output|next_on_output
191 Moves the focused container to the previous or next workspace on this 191 Moves the focused container to the previous or next workspace on this
192 output, wrapping around if already at the first or last workspace. 192 output, wrapping around if already at the first or last workspace.
193 193
194*move* container|window [to] workspace back\_and\_forth 194*move* container|window [to] workspace back_and_forth
195 Moves the focused container to previously focused workspace. 195 Moves the focused container to previously focused workspace.
196 196
197*move* container|window|workspace [to] output <name> 197*move* container|window|workspace [to] output <name>
@@ -256,10 +256,10 @@ set|plus|minus <amount>
256 "Sticks" a floating window to the current output so that it shows up on all 256 "Sticks" a floating window to the current output so that it shows up on all
257 workspaces. 257 workspaces.
258 258
259*swap* container with id|con\_id|mark <arg> 259*swap* container with id|con_id|mark <arg>
260 Swaps the position, geometry, and fullscreen status of two containers. The 260 Swaps the position, geometry, and fullscreen status of two containers. The
261 first container can be selected either by criteria or focus. The second 261 first container can be selected either by criteria or focus. The second
262 container can be selected by _id_, _con\_id_, or _mark_. _id_ can only be 262 container can be selected by _id_, _con_id_, or _mark_. _id_ can only be
263 used with xwayland views. If the first container has focus, it will retain 263 used with xwayland views. If the first container has focus, it will retain
264 focus unless it is moved to a different workspace or the second container 264 focus unless it is moved to a different workspace or the second container
265 becomes fullscreen on the same workspace as the first container. In either 265 becomes fullscreen on the same workspace as the first container. In either
@@ -273,14 +273,14 @@ runtime.
273 _workspace_. The → (U+2192) is optional and cosmetic. This command is 273 _workspace_. The → (U+2192) is optional and cosmetic. This command is
274 equivalent to: 274 equivalent to:
275 275
276 for\_window <criteria> move container to workspace <workspace> 276 for_window <criteria> move container to workspace <workspace>
277 277
278*assign* <criteria> [→] output left|right|up|down|<name> 278*assign* <criteria> [→] output left|right|up|down|<name>
279 Assigns views matching _criteria_ (see *CRITERIA* for details) to the 279 Assigns views matching _criteria_ (see *CRITERIA* for details) to the
280 specified output. The → (U+2192) is optional and cosmetic. This command is 280 specified output. The → (U+2192) is optional and cosmetic. This command is
281 equivalent to: 281 equivalent to:
282 282
283 for\_window <criteria> move container to output <output> 283 for_window <criteria> move container to output <output>
284 284
285*bindsym* [--release|--locked] [--input-device=<device>] [--no-warn] <key combo> <command> 285*bindsym* [--release|--locked] [--input-device=<device>] [--no-warn] <key combo> <command>
286 Binds _key combo_ to execute the sway command _command_ when pressed. You 286 Binds _key combo_ to execute the sway command _command_ when pressed. You
@@ -294,7 +294,7 @@ runtime.
294 the _--no-warn_ flag. 294 the _--no-warn_ flag.
295 295
296 Mouse buttons can either be specified in the form _button[1-9]_ or by using 296 Mouse buttons can either be specified in the form _button[1-9]_ or by using
297 the name of the event code (ex _BTN\_LEFT_ or _BTN\_RIGHT_). For the former 297 the name of the event code (ex _BTN_LEFT_ or _BTN_RIGHT_). For the former
298 option, the buttons will be mapped to their values in X11 (1=left, 2=middle, 298 option, the buttons will be mapped to their values in X11 (1=left, 2=middle,
299 3=right, 4=scroll up, 5=scroll down, 6=scroll left, 7=scroll right, 8=back, 299 3=right, 4=scroll up, 5=scroll down, 6=scroll left, 7=scroll right, 8=back,
300 9=forward). For the latter option, you can find the event names using 300 9=forward). For the latter option, you can find the event names using
@@ -309,7 +309,7 @@ runtime.
309 *bindcode* [--release|--locked] [--input-device=<device>] [--no-warn] <code> <command> 309 *bindcode* [--release|--locked] [--input-device=<device>] [--no-warn] <code> <command>
310 is also available for binding with key/button codes instead of key/button names. 310 is also available for binding with key/button codes instead of key/button names.
311 311
312*client.<class>* <border> <background> <text> <indicator> <child\_border> 312*client.<class>* <border> <background> <text> <indicator> <child_border>
313 Configures the color of window borders and title bars. All 5 colors are 313 Configures the color of window borders and title bars. All 5 colors are
314 required, with the exception of *client.background*, which requires exactly 314 required, with the exception of *client.background*, which requires exactly
315 one. Colors may be specified in hex, either as _#RRGGBB_ or _#RRGGBBAA_. 315 one. Colors may be specified in hex, either as _#RRGGBB_ or _#RRGGBBAA_.
@@ -322,7 +322,7 @@ runtime.
322 *client.focused* 322 *client.focused*
323 The window that has focus. 323 The window that has focus.
324 324
325 *client.focused\_inactive* 325 *client.focused_inactive*
326 The most recently focused view within a container which is not focused. 326 The most recently focused view within a container which is not focused.
327 327
328 *client.placeholder* 328 *client.placeholder*
@@ -351,7 +351,7 @@ runtime.
351 container, this would paint the right border of the current view if a 351 container, this would paint the right border of the current view if a
352 new view would be opened to the right. 352 new view would be opened to the right.
353 353
354 _child\_border_ 354 _child_border_
355 The border around the view itself. 355 The border around the view itself.
356 356
357The default colors are: 357The default colors are:
@@ -361,7 +361,7 @@ The default colors are:
361:[ _background_ 361:[ _background_
362:[ _text_ 362:[ _text_
363:[ _indicator_ 363:[ _indicator_
364:[ _child\_border_ 364:[ _child_border_
365|[ *background* 365|[ *background*
366: n/a 366: n/a
367: #ffffff 367: #ffffff
@@ -374,7 +374,7 @@ The default colors are:
374: #ffffff 374: #ffffff
375: #2e9ef4 375: #2e9ef4
376: #285577 376: #285577
377| *focused\_inactive* 377| *focused_inactive*
378: #333333 378: #333333
379: #5f676a 379: #5f676a
380: #ffffff 380: #ffffff
@@ -404,10 +404,10 @@ The default colors are:
404 Enables, disables or toggles debug logging. _toggle_ cannot be used in the 404 Enables, disables or toggles debug logging. _toggle_ cannot be used in the
405 configuration file. 405 configuration file.
406 406
407*default\_border* normal|none|pixel [<n>] 407*default_border* normal|none|pixel [<n>]
408 Set default border style for new tiled windows. 408 Set default border style for new tiled windows.
409 409
410*default\_floating\_border* normal|none|pixel [<n>] 410*default_floating_border* normal|none|pixel [<n>]
411 Set default border style for new floating windows. This only applies to 411 Set default border style for new floating windows. This only applies to
412 windows that are spawned in floating mode, not windows that become floating 412 windows that are spawned in floating mode, not windows that become floating
413 afterwards. 413 afterwards.
@@ -415,32 +415,32 @@ The default colors are:
415*exec* <shell command> 415*exec* <shell command>
416 Executes _shell command_ with sh. 416 Executes _shell command_ with sh.
417 417
418*exec\_always* <shell command> 418*exec_always* <shell command>
419 Like *exec*, but the shell command will be executed _again_ after *reload*. 419 Like *exec*, but the shell command will be executed _again_ after *reload*.
420 420
421*floating\_maximum\_size* <width> x <height> 421*floating_maximum_size* <width> x <height>
422 Specifies the maximum size of floating windows. -1 x -1 removes the upper 422 Specifies the maximum size of floating windows. -1 x -1 removes the upper
423 limit. 423 limit.
424 424
425*floating\_minimum\_size* <width> x <height> 425*floating_minimum_size* <width> x <height>
426 Specifies the minimum size of floating windows. The default is 75 x 50. 426 Specifies the minimum size of floating windows. The default is 75 x 50.
427 427
428*floating\_modifier* <modifier> [normal|inverse] 428*floating_modifier* <modifier> [normal|inverse]
429 When the _modifier_ key is held down, you may hold left click to move 429 When the _modifier_ key is held down, you may hold left click to move
430 windows, and right click to resize them. If _inverse_ is specified, left 430 windows, and right click to resize them. If _inverse_ is specified, left
431 click is used for resizing and right click for moving. 431 click is used for resizing and right click for moving.
432 432
433*floating\_scroll* up|right|down|left [command] 433*floating_scroll* up|right|down|left [command]
434 Sets a command to be executed when the mouse wheel is scrolled in the 434 Sets a command to be executed when the mouse wheel is scrolled in the
435 specified direction while holding the floating modifier. Resets the 435 specified direction while holding the floating modifier. Resets the
436 command, when given no arguments. 436 command, when given no arguments.
437 437
438*focus\_follows\_mouse* yes|no|always 438*focus_follows_mouse* yes|no|always
439 If set to _yes_, moving your mouse over a window will focus that window. If 439 If set to _yes_, moving your mouse over a window will focus that window. If
440 set to _always_, the window under the cursor will always be focused, even 440 set to _always_, the window under the cursor will always be focused, even
441 after switching between workspaces. 441 after switching between workspaces.
442 442
443*focus\_wrapping* yes|no|force 443*focus_wrapping* yes|no|force
444 This option determines what to do when attempting to focus over the edge 444 This option determines what to do when attempting to focus over the edge
445 of a container. If set to _no_, the focused container will retain focus, 445 of a container. If set to _no_, the focused container will retain focus,
446 if there are no other containers in the direction. If set to _yes_, focus 446 if there are no other containers in the direction. If set to _yes_, focus
@@ -452,25 +452,25 @@ The default colors are:
452*font* <font> 452*font* <font>
453 Sets font for use in title bars in Pango format. 453 Sets font for use in title bars in Pango format.
454 454
455*titlebar\_border\_thickness* <thickness> 455*titlebar_border_thickness* <thickness>
456 Thickness of the titlebar border in pixels 456 Thickness of the titlebar border in pixels
457 457
458*titlebar\_padding* <horizontal> [<vertical>] 458*titlebar_padding* <horizontal> [<vertical>]
459 Padding of the text in the titlebar. _horizontal_ value affects horizontal 459 Padding of the text in the titlebar. _horizontal_ value affects horizontal
460 padding of the text while _vertical_ value affects vertical padding (space 460 padding of the text while _vertical_ value affects vertical padding (space
461 above and below text). Padding includes titlebar borders so their value 461 above and below text). Padding includes titlebar borders so their value
462 should be greater than titlebar\_border\_thickness. If _vertical_ value is 462 should be greater than titlebar_border_thickness. If _vertical_ value is
463 not specified it is set to the _horizontal_ value. 463 not specified it is set to the _horizontal_ value.
464 464
465*for\_window* <criteria> <command> 465*for_window* <criteria> <command>
466 Whenever a window that matches _criteria_ appears, run list of commands. 466 Whenever a window that matches _criteria_ appears, run list of commands.
467 See *CRITERIA* for more details. 467 See *CRITERIA* for more details.
468 468
469*force\_focus\_wrapping* yes|no 469*force_focus_wrapping* yes|no
470 This option is a wrapper to support i3's legacy syntax. _no_ is equivalent 470 This option is a wrapper to support i3's legacy syntax. _no_ is equivalent
471 to _focus\_wrapping yes_ and _yes_ is equivalent to 471 to _focus_wrapping yes_ and _yes_ is equivalent to
472 _focus\_wrapping force_. This is only available for convenience. Please 472 _focus_wrapping force_. This is only available for convenience. Please
473 use _focus\_wrapping_ instead when possible. 473 use _focus_wrapping_ instead when possible.
474 474
475*gaps* inner|outer|horizontal|vertical|top|right|bottom|left <amount> 475*gaps* inner|outer|horizontal|vertical|top|right|bottom|left <amount>
476 Sets default _amount_ pixels of _inner_ or _outer_ gap, where the inner 476 Sets default _amount_ pixels of _inner_ or _outer_ gap, where the inner
@@ -483,15 +483,15 @@ The default colors are:
483 This affects new workspaces only, and is used when the workspace doesn't 483 This affects new workspaces only, and is used when the workspace doesn't
484 have its own gaps settings (see: workspace <ws> gaps ...). 484 have its own gaps settings (see: workspace <ws> gaps ...).
485 485
486*hide\_edge\_borders* none|vertical|horizontal|both|smart|smart\_no\_gaps 486*hide_edge_borders* none|vertical|horizontal|both|smart|smart_no_gaps
487 Hides window borders adjacent to the screen edges. Default is _none_. 487 Hides window borders adjacent to the screen edges. Default is _none_.
488 488
489*input* <input\_device> <input-subcommands...> 489*input* <input_device> <input-subcommands...>
490 For details on input subcommands, see *sway-input*(5). 490 For details on input subcommands, see *sway-input*(5).
491 491
492 \* may be used in lieu of a specific device name to configure all input 492 \* may be used in lieu of a specific device name to configure all input
493 devices. A list of input device names may be obtained via *swaymsg -t 493 devices. A list of input device names may be obtained via *swaymsg -t
494 get\_inputs*. 494 get_inputs*.
495 495
496*seat* <seat> <seat-subcommands...> 496*seat* <seat> <seat-subcommands...>
497 For details on seat subcommands, see *sway-input*(5). 497 For details on seat subcommands, see *sway-input*(5).
@@ -499,14 +499,14 @@ The default colors are:
499*kill* 499*kill*
500 Kills (closes) the currently focused container and all of its children. 500 Kills (closes) the currently focused container and all of its children.
501 501
502*smart\_borders* on|no\_gaps|off 502*smart_borders* on|no_gaps|off
503 If smart\_borders are _on_, borders will only be enabled if the workspace 503 If smart_borders are _on_, borders will only be enabled if the workspace
504 only has one visible child (identical to _hide\_edge\_borders_ smart). If 504 only has one visible child (identical to _hide_edge_borders_ smart). If
505 smart\_borders is set to _no\_gaps_, borders will only be enabled if the 505 smart_borders is set to _no_gaps_, borders will only be enabled if the
506 workspace only has one visible child and gaps greater than zero. 506 workspace only has one visible child and gaps greater than zero.
507 507
508*smart\_gaps* on|off 508*smart_gaps* on|off
509 If smart\_gaps are _on_ gaps will only be enabled if a workspace has more 509 If smart_gaps are _on_ gaps will only be enabled if a workspace has more
510 than one child. 510 than one child.
511 511
512*mark* --add|--replace [--toggle] <identifier> 512*mark* --add|--replace [--toggle] <identifier>
@@ -519,30 +519,30 @@ The default colors are:
519*mode* <mode> 519*mode* <mode>
520 Switches to the specified mode. The default mode _default_. 520 Switches to the specified mode. The default mode _default_.
521 521
522*mode* [--pango\_markup] <mode> <mode-subcommands...> 522*mode* [--pango_markup] <mode> <mode-subcommands...>
523 The only two valid _mode-subcommands..._ are *bindsym* and *bindcode*. 523 The only two valid _mode-subcommands..._ are *bindsym* and *bindcode*.
524 If _--pango\_markup_ is given, then _mode_ will be interpreted as pango 524 If _--pango_markup_ is given, then _mode_ will be interpreted as pango
525 markup. 525 markup.
526 526
527*mouse\_warping* output|container|none 527*mouse_warping* output|container|none
528 If _output_ is specified, the mouse will be moved to new outputs as you 528 If _output_ is specified, the mouse will be moved to new outputs as you
529 move focus between them. If _container_ is specified, the mouse will be 529 move focus between them. If _container_ is specified, the mouse will be
530 moved to the middle of the container on switch. Default is _output_. 530 moved to the middle of the container on switch. Default is _output_.
531 531
532*no\_focus* <criteria> 532*no_focus* <criteria>
533 Prevents windows matching <criteria> from being focused automatically when 533 Prevents windows matching <criteria> from being focused automatically when
534 they're created. This has no effect on the first window in a workspace. 534 they're created. This has no effect on the first window in a workspace.
535 535
536*output* <output\_name> <output-subcommands...> 536*output* <output_name> <output-subcommands...>
537 For details on output subcommands, see *sway-output*(5). 537 For details on output subcommands, see *sway-output*(5).
538 538
539 \* may be used in lieu of a specific output name to configure all outputs. 539 \* may be used in lieu of a specific output name to configure all outputs.
540 A list of output names may be obtained via *swaymsg -t get\_outputs*. 540 A list of output names may be obtained via *swaymsg -t get_outputs*.
541 541
542*popup\_during\_fullscreen* smart|ignore|leave\_fullscreen 542*popup_during_fullscreen* smart|ignore|leave_fullscreen
543 Determines what to do when a fullscreen view opens a dialog. 543 Determines what to do when a fullscreen view opens a dialog.
544 If _smart_ (the default), the dialog will be displayed. If _ignore_, the 544 If _smart_ (the default), the dialog will be displayed. If _ignore_, the
545 dialog will not be rendered. If _leave\_fullscreen_, the view will exit 545 dialog will not be rendered. If _leave_fullscreen_, the view will exit
546 fullscreen mode and the dialog will be rendered. 546 fullscreen mode and the dialog will be rendered.
547 547
548*set* $<name> <value> 548*set* $<name> <value>
@@ -553,32 +553,32 @@ The default colors are:
553 sense for the variable to be replaced at run time since some arguments do 553 sense for the variable to be replaced at run time since some arguments do
554 need to be known at config time. 554 need to be known at config time.
555 555
556*show\_marks* yes|no 556*show_marks* yes|no
557 If *show\_marks* is yes, marks will be displayed in the window borders. 557 If *show_marks* is yes, marks will be displayed in the window borders.
558 Any mark that starts with an underscore will not be drawn even if 558 Any mark that starts with an underscore will not be drawn even if
559 *show\_marks* is yes. The default is _yes_. 559 *show_marks* is yes. The default is _yes_.
560 560
561*opacity* <value> 561*opacity* <value>
562 Set the opacity of the window between 0 (completely transparent) and 1 562 Set the opacity of the window between 0 (completely transparent) and 1
563 (completely opaque). 563 (completely opaque).
564 564
565*tiling\_drag* enable|disable|toggle 565*tiling_drag* enable|disable|toggle
566 Sets whether or not tiling containers can be dragged with the mouse. If 566 Sets whether or not tiling containers can be dragged with the mouse. If
567 enabled (default), the _floating\_mod_ can be used to drag tiling, as well 567 enabled (default), the _floating_mod_ can be used to drag tiling, as well
568 as floating, containers. Using the left mouse button on title bars without 568 as floating, containers. Using the left mouse button on title bars without
569 the _floating\_mod_ will also allow the container to be dragged. _toggle_ 569 the _floating_mod_ will also allow the container to be dragged. _toggle_
570 should not be used in the config file. 570 should not be used in the config file.
571 571
572*tiling\_drag\_threshold* <threshold> 572*tiling_drag_threshold* <threshold>
573 Sets the threshold that must be exceeded for a container to be dragged by 573 Sets the threshold that must be exceeded for a container to be dragged by
574 its titlebar. This has no effect if _floating\_mod_ is used or if 574 its titlebar. This has no effect if _floating_mod_ is used or if
575 _tiling\_drag_ is set to _disable_. Once the threshold has been exceeded 575 _tiling_drag_ is set to _disable_. Once the threshold has been exceeded
576 once, the drag starts and the cursor can come back inside the threshold 576 once, the drag starts and the cursor can come back inside the threshold
577 without stopping the drag. _threshold_ is multiplied by the scale of the 577 without stopping the drag. _threshold_ is multiplied by the scale of the
578 output that the cursor on. The default is 9. 578 output that the cursor on. The default is 9.
579 579
580*title\_align* left|center|right 580*title_align* left|center|right
581 Sets the title alignment. If _right_ is selected and _show\_marks_ is set 581 Sets the title alignment. If _right_ is selected and _show_marks_ is set
582 to _yes_, the marks will be shown on the _left_ side instead of the 582 to _yes_, the marks will be shown on the _left_ side instead of the
583 _right_ side. 583 _right_ side.
584 584
@@ -599,10 +599,10 @@ The default colors are:
599 Switches to the next workspace on the current output or on the next output 599 Switches to the next workspace on the current output or on the next output
600 if currently on the last workspace. 600 if currently on the last workspace.
601 601
602*workspace* prev\_on\_output|next\_on\_output 602*workspace* prev_on_output|next_on_output
603 Switches to the next workspace on the current output. 603 Switches to the next workspace on the current output.
604 604
605*workspace* back\_and\_forth 605*workspace* back_and_forth
606 Switches to the previously focused workspace. 606 Switches to the previously focused workspace.
607 607
608*workspace* <name> gaps inner|outer|horizontal|vertical|top|right|bottom|left 608*workspace* <name> gaps inner|outer|horizontal|vertical|top|right|bottom|left
@@ -617,23 +617,23 @@ The default colors are:
617 is higher on the list becomes available, the workspace will be move to the 617 is higher on the list becomes available, the workspace will be move to the
618 higher priority output. 618 higher priority output.
619 619
620*workspace\_auto\_back\_and\_forth* yes|no 620*workspace_auto_back_and_forth* yes|no
621 When _yes_, repeating a workspace switch command will switch back to the 621 When _yes_, repeating a workspace switch command will switch back to the
622 prior workspace. For example, if you are currently on workspace 1, 622 prior workspace. For example, if you are currently on workspace 1,
623 switch to workspace 2, then invoke the "workspace 2" command again, you 623 switch to workspace 2, then invoke the "workspace 2" command again, you
624 will be returned to workspace 1. Default is _no_. 624 will be returned to workspace 1. Default is _no_.
625 625
626*workspace\_layout* default|stacking|tabbed 626*workspace_layout* default|stacking|tabbed
627 Specifies the initial layout for new workspaces. 627 Specifies the initial layout for new workspaces.
628 628
629# BAR CONTROL 629# BAR CONTROL
630 630
631*bar hidden\_state* hide|show|toggle [<bar\_id>] 631*bar hidden_state* hide|show|toggle [<bar_id>]
632 Sets the hidden state of the bar (see *sway-bar*(5)), either individually, 632 Sets the hidden state of the bar (see *sway-bar*(5)), either individually,
633 by specifying a bar id, or if none is given, for all bar instances. 633 by specifying a bar id, or if none is given, for all bar instances.
634 _toggle_ switches between _hide_ and _show_. 634 _toggle_ switches between _hide_ and _show_.
635 635
636*bar mode* dock|hide|invisible|toggle [<bar\_id>] 636*bar mode* dock|hide|invisible|toggle [<bar_id>]
637 Sets the mode of the bar (see *sway-bar*(5)), either individually, 637 Sets the mode of the bar (see *sway-bar*(5)), either individually,
638 by specifying a bar id, or if none is given, for all bar instances. 638 by specifying a bar id, or if none is given, for all bar instances.
639 _toggle_ switches between _dock_ and _hide_. 639 _toggle_ switches between _dock_ and _hide_.
@@ -650,7 +650,7 @@ The string contains one or more (space separated) attribute/value pairs. They
650are used by some commands to choose which views to execute actions on. All 650are used by some commands to choose which views to execute actions on. All
651attributes must match for the criteria to match. 651attributes must match for the criteria to match.
652 652
653Criteria may be used with either the *for\_window* or *assign* commands to 653Criteria may be used with either the *for_window* or *assign* commands to
654specify operations to perform on new views. A criteria may also be used to 654specify operations to perform on new views. A criteria may also be used to
655perform specific commands (ones that normally act upon one window) on all views 655perform specific commands (ones that normally act upon one window) on all views
656that match that criteria. For example: 656that match that criteria. For example:
@@ -675,7 +675,7 @@ Mark all Firefox windows with "Browser":
675 675
676The following attributes may be matched with: 676The following attributes may be matched with:
677 677
678*app\_id* 678*app_id*
679 Compare value against the app id. Can be a regular expression. If value is 679 Compare value against the app id. Can be a regular expression. If value is
680 \_\_focused\_\_, then the app id must be the same as that of the currently 680 \_\_focused\_\_, then the app id must be the same as that of the currently
681 focused window. 681 focused window.
@@ -685,12 +685,12 @@ The following attributes may be matched with:
685 value is \_\_focused\_\_, then the window class must be the same as that of 685 value is \_\_focused\_\_, then the window class must be the same as that of
686 the currently focused window. 686 the currently focused window.
687 687
688*con\_id* 688*con_id*
689 Compare against the internal container ID, which you can find via IPC. If 689 Compare against the internal container ID, which you can find via IPC. If
690 value is \_\_focused\_\_, then the id must be the same as that of the 690 value is \_\_focused\_\_, then the id must be the same as that of the
691 currently focused window. 691 currently focused window.
692 692
693*con\_mark* 693*con_mark*
694 Compare against the window marks. Can be a regular expression. 694 Compare against the window marks. Can be a regular expression.
695 695
696*floating* 696*floating*
@@ -705,7 +705,7 @@ The following attributes may be matched with:
705 of the currently focused window. 705 of the currently focused window.
706 706
707*shell* 707*shell*
708 Compare value against the window shell, such as "xdg\_shell" or "xwayland". 708 Compare value against the window shell, such as "xdg_shell" or "xwayland".
709 Can be a regular expression. If value is \_\_focused\_\_, then the shell 709 Can be a regular expression. If value is \_\_focused\_\_, then the shell
710 must be the same as that of the currently focused window. 710 must be the same as that of the currently focused window.
711 711
@@ -721,15 +721,15 @@ The following attributes may be matched with:
721 Compares the urgent state of the window. Can be "first", "last", "latest", 721 Compares the urgent state of the window. Can be "first", "last", "latest",
722 "newest", "oldest" or "recent". 722 "newest", "oldest" or "recent".
723 723
724*window\_role* 724*window_role*
725 Compare against the window role (WM\_WINDOW\_ROLE). Can be a regular 725 Compare against the window role (WM_WINDOW_ROLE). Can be a regular
726 expression. If value is \_\_focused\_\_, then the window role must be the 726 expression. If value is \_\_focused\_\_, then the window role must be the
727 same as that of the currently focused window. 727 same as that of the currently focused window.
728 728
729*window\_type* 729*window_type*
730 Compare against the window type (\_NET\_WM\_WINDOW\_TYPE). Possible values 730 Compare against the window type (\_NET_WM_WINDOW_TYPE). Possible values
731 are normal, dialog, utility, toolbar, splash, menu, dropdown\_menu, 731 are normal, dialog, utility, toolbar, splash, menu, dropdown_menu,
732 popup\_menu, tooltip and notification. 732 popup_menu, tooltip and notification.
733 733
734*workspace* 734*workspace*
735 Compare against the workspace name for this view. Can be a regular 735 Compare against the workspace name for this view. Can be a regular