diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/commands/output/background.c | 8 | ||||
-rw-r--r-- | sway/desktop/transaction.c | 7 | ||||
-rw-r--r-- | sway/input/cursor.c | 23 | ||||
-rw-r--r-- | sway/input/seat.c | 6 | ||||
-rw-r--r-- | sway/sway-bar.5.scd | 56 | ||||
-rw-r--r-- | sway/sway-input.5.scd | 70 | ||||
-rw-r--r-- | sway/sway-output.5.scd | 12 | ||||
-rw-r--r-- | sway/sway.1.scd | 6 | ||||
-rw-r--r-- | sway/sway.5.scd | 162 |
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 |