https://github.com/swaywm/sway.git

sort by:
Revision Author Date Message Commit Date
be138da Update version to 1.2 27 August 2019, 04:46:22 UTC
a8cb63e cmd_mode: don't reset to default after subcommand In cmd_mode, the mode is currently being reset to the default mode after a mode subcommand handler is executed. This stores and restores the mode instead 27 August 2019, 04:46:18 UTC
b6e3045 Further refinements to _incr_version script 27 August 2019, 04:41:54 UTC
7e9a9f1 chmod +x contrib/_incr_version 27 August 2019, 03:31:42 UTC
06c894c Add _incr_version to contrib/ 27 August 2019, 03:31:14 UTC
00d846f A layer-shell will only be focused if it is non-null 27 August 2019, 01:09:59 UTC
e2cbbb5 Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed 27 August 2019, 00:37:10 UTC
8c75c5b Update titlebar borders to match i3's current behavior. 27 August 2019, 00:37:10 UTC
c1ad1de cmd_move: fix move to scratchpad hidden container When moving to a scratchpad hidden container (using `move [window|container] [to] mark <mark>`), this moves the container to the scratchpad (equivalent to `move [window|container] [to] scratchpad`). Previously, this would crash since the destination did not have a workspace. 27 August 2019, 00:37:10 UTC
26442ad ipc: collapse multi-container command results Match i3's behavior and only return one status response per command, even if it applies to several nodes. Also returns an error if the criteria returns an empty match. Closes #4483 27 August 2019, 00:37:10 UTC
2c2d601 Allow moving a container hidden in scratchpad (as i3 allows it) Just update the container's coordinates so that they will be applied at the next show. 27 August 2019, 00:37:10 UTC
a08081a sway.5: remove mention of floating_scroll It looks like floating_scroll was still in the sway(5) man page as a remnant of the 0.x era. This just removes it from the man page since it is no longer a valid command. Mouse bindings with Button4-7 can be used instead 27 August 2019, 00:37:10 UTC
091b87b input/keyboard: send released only if pressed sent This keeps track of whether surfaces received a key press event and will only send a key release event if the pressed event was sent. This also requires changing the keycodes that are sent via wl_keyboard_enter to only include those that were previously sent. This makes it so surfaces do not receive key release events for keys that they never received a key press for and makes it so switching focus doesn't leak keycodes that were consumed by bindings. 27 August 2019, 00:37:10 UTC
d6846ad layer-shell: add support for popups 20 August 2019, 05:53:22 UTC
54b448a properly check pixman_region32_contains_rectangle return pixman_region32_contains_rectangle() returns pixman_region_intersection_t not a bool. 20 August 2019, 04:27:52 UTC
1df1853 input/seatop_down: add axis handler This adds an axis handler to seatop_down so that it is possible to manually scroll while having a mouse button down. This is mainly useful for selecting text. Some applications may not automatically scroll when the cursor is near the edge of the application or the user may just prefer manually scrolling for more control over the scrolling speed. 20 August 2019, 04:27:52 UTC
b48e4b4 sway{,-bar}.5: add link to pango font description This just specifies that both cmd_font and bar_cmd_font should be specified using the pango font description and adds a link to the pango documentation regarding the font description 20 August 2019, 04:27:52 UTC
daf766e workspace_split: focus middle if workspace focused In workspace_split, the middle container that wraps the workspace's children should be focused for any seat that is focusing the workspace 20 August 2019, 04:27:52 UTC
2e757e1 container_replace: copy {width,height}_fraction This copies the width and height fractions from the container to the container replacing it. Without setting these values, the container is treated as a new container and throws off the existing sizing. Since one container is replacing the other, it makes sense for the sizing to remain the same. 20 August 2019, 04:27:52 UTC
7447eef swaymsg.1: add tip about two hyphens for commands This adds a tip to the command section about using two hyphens before a command to signal that no swaymsg options will follow to allow for sway commands with leading hyphens. 20 August 2019, 04:27:52 UTC
63651bc workspace: do not destroy if any seat is focusing Since each seat has its own focus, do not destroy a workspace until it is no longer focused by any seat. This prevents seats from being forced to evacuate the workspace just because another seat switched focus away from it 20 August 2019, 04:27:52 UTC
e8204a8 handle_seat_node_destroy: do not focus own node In handle_seat_node_destroy, it was possible to focus the node attached to the seat node that is being destroyed when an empty workspace was being destroyed in a multiple seat environment. This resulted in infinite recursion when attempting to destroy the workspace. This just moves the seat node destruction higher so it cannot be the focus inactive for the seat. This is the same ordering that is applied to destruction of seat nodes for containers 20 August 2019, 04:27:52 UTC
d9c09c4 Remove redundant checks 20 August 2019, 04:27:52 UTC
64cfe74 Fix memory leaks 20 August 2019, 04:27:52 UTC
9e5664e view_update_size: fix surface_width/height mismatch 20 August 2019, 04:27:52 UTC
ee40501 input: check pointer against nullptr 20 August 2019, 04:27:52 UTC
3896bda ipc-client: remove useless free for failed malloc 20 August 2019, 04:27:52 UTC
8bd3b7b layer_shell: Guard against negative exclusive zone This can happen with surfaces that set negative margins. 20 August 2019, 04:27:52 UTC
6200ecb Remove rootston from build manifests 09 August 2019, 00:59:44 UTC
724926e Revert "Add support for wlr_output's atomic API" This reverts commit 6e0565e9de4247bbf0ca662565c58e0a54258d6e. This is required for the revert on swaywm/wlroots#1781 07 August 2019, 07:25:37 UTC
dc5d76c sway.5: explain how to enable pango markup in font This clarifies the syntax to use for the font command to enable pango markup support. 07 August 2019, 05:05:11 UTC
19d05d3 config/output: rebase cursors after config applied When applying an output config, an output may transform or be altered in some way that effects the cursor. In order for the cursor images to be updated properly, all cursors need to be rebased after applying output configs. 07 August 2019, 04:50:07 UTC
f59b665 cmd_mode: make modes case sensitive This mirrors a change in i3 4.17 that makes binding modes case sensitive 06 August 2019, 02:32:26 UTC
a8a239e swaymsg: return 2 for sway errors This mirrors a change in i3 4.17 that returns 2 for errors from sway, including invalid command, command failed, and invalid subscription requests 06 August 2019, 02:31:39 UTC
56b5ad7 input/cursor: do not hide when buttons are pressed This just adds a small quality of life improvement to the cursor hiding functionality. The cursor will no longer be hidden unless all buttons are released. 06 August 2019, 02:31:12 UTC
a9e31d9 cmd_swap: add floating support For feature parity with i3 4.17, this just adds floating container support to the swap command 06 August 2019, 02:30:17 UTC
140ce78 cmd_opacity: add relative opacity changes This enhances the opacity command to support relative assignment as well as the currently implemented absolute assignment. The syntax is copied from the same format that gaps uses for relative and absolute setting. An example usage in a sway config looks like: // relative change (this feature) bindsym button4 opacity plus .1 bindsym button5 opacity minus .1 // absolute change (this feature) bindsym button4 opacity set 1 bindsym button5 opacity set .3 // old way, still supported bindsym button4 opacity 1 bindsym button5 opacity .3 06 August 2019, 02:10:36 UTC
90d8a4d input/libinput: typo fixes (get -> get_default) This just fixes some typos in the reset functions that were using the get calls instead of get_default 03 August 2019, 13:46:05 UTC
c1a5f61 Remove unused variable 02 August 2019, 17:55:49 UTC
7e5c2d7 Allocator sizeof operand mismatch Result of 'calloc' is converted to a pointer of type 'char *', which is incompatible with sizeof operand type 'char **' 02 August 2019, 17:55:49 UTC
6e0565e Add support for wlr_output's atomic API See https://github.com/swaywm/wlroots/pull/1762 02 August 2019, 14:01:50 UTC
8ee054b bindsym/code: add group support This adds support for specifying a binding for a specific group. Any binding without a group listed will be available in all groups. The priority for matching bindings is as follows: input device, group, and locked state. For full compatibility with i3, this also adds Mode_switch as an alias for Group2. Since i3 only supports this for backwards compatibility with older versions of i3, it is implemented here, but not documented. 01 August 2019, 15:54:58 UTC
14562fd input/keyboard: don't reset layout for same keymap In sway_keyboard_config, do not change the keymap when the new keymap is unchanged, unless this is during a config reload. The reasoning for this is to prevent the effective layout from being reset to index 0 for input config changes unrelated to the keymap. 01 August 2019, 15:27:01 UTC
f567a40 Fix typo in sway(5) manpage 01 August 2019, 01:45:52 UTC
75de31d libinput: fix set_send_events This just fixes the check in set_send_events for whether the mode has changed. LIBINPUT_CONFIG_SEND_EVENTS_ENABLED is 0 so the bitmask check cannot be fixed, but Sway doesn't allow multiple modes to be set anyway (not really sure why you would need to) so a basic equality check works 31 July 2019, 19:32:13 UTC
fc95571 input/libinput: fix typo in set_middle_emulation This fixes a typo in set_middle_emulation where it would set left handed instead of middle emulation. 28 July 2019, 13:19:59 UTC
cefc608 Fix resize sibling amount calculations Sibling amounts were being calculated after the original fraction had been altered. This led to broken resize amounts. Fix that by calculating things upfront before adjusting values which also makes the code cleaner. For sanity checks also calculate the sibling amount with the ceiling so we never go below the sanity check even by one pixel. Fixes #4386 28 July 2019, 03:36:16 UTC
f984f21 Remove all wayland-server.h includes The documentation for wayland-server.h says: > Use of this header file is discouraged. Prefer including > wayland-server-core.h instead, which does not include the server protocol > header and as such only defines the library PI, excluding the deprecated API > below. Replacing wayland-server.h with wayland-server-core.h allows us to drop the WL_HIDE_DEPRECATED declaration. This commit si similar to wlroots' ca45f4490ccc ("Remove all wayland-server.h includes"). 27 July 2019, 21:16:56 UTC
e4bba90 Avoid adding duplicate criteria for no_focus and command 27 July 2019, 00:53:05 UTC
17c9a0e arrange: remove gaps for workspace location deltas When arranging the workspace, prev_x and prev_y should be ignoring the current gaps otherwise the workspace diff_x and diff_y location deltas will be off. When the deltas are off, each arrangement of the workspace would incorrectly move floaters an extra -workspace->current_gaps.left along the x-axis and an extra -workspace->current_gaps.top along the y-axis. 26 July 2019, 15:13:27 UTC
1a16262 ipc: add input::libinput_config event This adds a libinput_config change type to the input event for when the libinput config for a device changes In order for this to be possible to track, the libinput config code had to be refactored. It is now extracted into a separate file to isolate it from the rest of the input management code. 23 July 2019, 17:45:46 UTC
6effca7 ipc: add an input event This adds an ipc event related to input devices. Currently the following changes are supported: - added: when an input device becomes available - removed: when an input device is no longer available - xkb_keymap_changed: (keyboards only) the keymap changed - xkb_layout_changed: (keyboards only) the effective layout changed 23 July 2019, 17:45:46 UTC
36aa67e input_cmd_xkb_switch_layout: support input types This just adds input type config support to input_cmd_xkb_switch_layout so that `input type:keyboard xkb_switch_layout <idx>` will work 18 July 2019, 05:20:54 UTC
92b22ee cmd_output: support current output alias Similar to seat command, this provides an alias for the current output. Instead of the output name or identifier, `-` can be used to operate on the focused output by name and `--` can be used to operate on the focused output by its identifier. This will prevent operating on the no-op output when using either alias. 18 July 2019, 01:25:09 UTC
37308f6 input_cmd_xkb_*: cleanup includes 17 July 2019, 23:26:58 UTC
eb770e8 Implement input_cmd_xkb_file (#3999) Adds a new commend "xkb_file", which constructs the internal xkb_keymap from a xkb file rather than an RMLVO configuration. This allows greater flexibility when specifying xkb configurations. An xkb file can be dumped with the xkbcomp program. 17 July 2019, 23:26:58 UTC
3716c53 Add missing description for focus_on_window_activation command in docs. 17 July 2019, 22:31:02 UTC
1e66fa0 Added Dutch translation of README 17 July 2019, 16:36:52 UTC
ac87df2 Update output manager on layout change The output manager config was not properly updated if the position of the output got changed. 17 July 2019, 16:36:15 UTC
9af0b4d Make fullscreen check for fullscreen parents This ensures that a child of a fullscreen container cannot be fullscreened. 17 July 2019, 13:25:36 UTC
95c444d Sanity check gaps on the outside of the workspace Avoid gaps that are too large around the workspace that you end up without any usable space for children. Fixes #4308 16 July 2019, 03:46:27 UTC
99192a9 Avoid negative outer gaps Make sure we never let the gaps around the workspace go negative. Fixes #4304 16 July 2019, 03:46:27 UTC
44c2faf Sanity check gaps between tiled containers When the gaps become too large for the space available gracefully reduced them all the way to 0 if needed. Fixes #4294 16 July 2019, 03:46:27 UTC
d0233af Rework gaps code to be simpler and correct Instead of tracking gaps per child apply gaps in two logical places: 1. In tiled containers use the layout code to add the gaps between windows. This is much simpler and guarantees that the sizing of children is correct. 2. In the workspace itself apply all the gaps around the edge. Here we're in the correct position to size inner and outer gaps correctly and decide on smart gaps in a single location. Fixes #4296 16 July 2019, 03:46:27 UTC
2dc4978 Use -fmacro-prefix-map to strip build path Because meson does not provide a simple way to get the relative build path, it is computed with a pair of foreach loops. As meson does not have a simple way to compute string length (except via underscorify and 63 split operations), the build script uses a shell command instead. If the compiler does not suppot -fmacro-prefix-map, then fall back to passing in the relative path prefix, and use its length to offset the uses of __FILE__ in log messages so that the build path is at least still not included in the logs. This is significantly more efficient than calling _sway_strip_path. 15 July 2019, 20:35:50 UTC
e3a3917 Layout tiled using a width/height fraction Instead of using container->width/height as both the input and output of the layout calculation have container->width_fraction/height_fraction as the share of the parent this container occupies and calculate the layout based on that. That way the container arrangement can always be recalculated even if width/height have been altered by things like fullscreen. To do this several parts are reworked: - The vertical and horizontal arrangement code is ajusted to work with fractions instead of directly with width/height - The resize code is then changed to manipulate the fractions when working on tiled containers. - Finally the places that manipulated width/height are adjusted to match. The adjusted parts are container split, swap, and the input seat code. It's possible that some parts of the code are now adjusting width and height only for those to be immediately recalculated. That's harmless and since non-tiled containers are still sized with width/height directly it may avoid breaking other corner cases. Fixes #3547 Fixes #4297 14 July 2019, 15:13:55 UTC
1312b5b Layout correctly with several new windows If there is more than one new window layout correctly by calculating the default size of the new windows using the information of how many of them there are in total. This helps with issue #3547 but doesn't fix it in all situations. Things now work correctly if the first layout of new windows happens after leaving fullscreen. But if for some reason an arrange_container() gets called while we are fullscreen the windows will still be incorrectly sized after saved_width/saved_height get used to restore the first window's size before going fullscreen. 14 July 2019, 15:13:55 UTC
c312a10 cmd_split: fix toggle split for non-split layouts Previously, `layout toggle` and `layout toggle split` would set L_VERT when layout was L_HORIZ, otherwise it would set L_HORIZ. This meant that when the layout was L_TABBED or L_STACKED, it would always be L_HORIZ. This extends #4315 (which corrects the handling when multiple layouts are given) to try prev_split_layout, config->default_orientation, and then falling back to L_VERT when the output is taller than wide and L_HORIZ when wider than tall. 11 July 2019, 14:46:56 UTC
5ffcea4 cmd_layout: toggle split for tabbed/stack default This fixes the logic of split for layout toggle when the default layout is L_TABBED or L_STACKED. When the default layout is L_TABBED or L_STACKED, the container/workspace may not have a prev_split_layout. This was causing L_NONE to be returned by get_layout_toggle, which was being handled as a syntax error. This adds logic to try config->default_orientation when prev_split_layout is L_NONE. If that is also L_NONE, then L_VERT is used when the output is taller than wide, otherwise, L_HORIZ is used. 10 July 2019, 19:29:38 UTC
6096d31 config/output: correctly set width/height in apply In apply_output_config, this sets output->{width,height} using the values in the output box. Previously, they were being set using wlr_output_transformed_resolution, which takes the width and height from the wlr_output and just checks whether they should be swapped based on the transform. This did not take into account the output's scale. wlr_output_effective_resolution could be used instead, which handles both transform and scale. However, the values in the output box have already been processed by wlr_output_effective_resolution so they can just be used directly 10 July 2019, 18:03:15 UTC
32265d9 input/libinput: only reset supported options This adds checks to the input_manager_libinput_reset_* functions to only attempt resetting supported options on reload. This should have no functional difference to the user, but will remove several `Failed to apply libinput config: Unsupported configuration option` lines from the log that can be noisy and potential red herrings. 09 July 2019, 15:50:02 UTC
152e30c cmd_bindswitch: add option to execute on reload This adds a --reload flag to cmd_bindswitch that allows for the binding to be executed on reload. One possible use case for this is to allow users to disable outputs when the lid closes and enable them when the lid opens without having to open and re-close the lid after a reload. 09 July 2019, 07:00:57 UTC
538b36c Make mouse drag in tiled mode swap containers if no edge is selected Now the highlighted center area of containers triggers a swap action instead of moving around the containers. 09 July 2019, 06:56:55 UTC
c9cb5ce calibration_matrix: expect 6 individual values Example usage from command line: swaymsg input type:touch calibration_matrix -- -1 0 1 0 -1 1 05 July 2019, 15:41:56 UTC
a5c6816 calibration_matrix: add the current matrix to the IPC description for libinput devices 05 July 2019, 15:41:56 UTC
bcceb61 Use isnan 05 July 2019, 15:41:56 UTC
01ec18e Add calibration_matrix config option Can be used to change the orientation of a touchscreen. Example usage with swaymsg: # identity swaymsg input type:touch calibration_matrix '"1 0 0 0 1 0"' # 90 degree clockwise swaymsg input type:touch calibration_matrix '"0 -1 1 1 0 0"' # 180 degree clockwise swaymsg input type:touch calibration_matrix '"-1 0 1 0 -1 1"' # 270 degree clockwise swaymsg input type:touch calibration_matrix '"0 1 0 -1 0 1"' Documentation: https://wayland.freedesktop.org/libinput/doc/latest/absolute-axes.html#calibration-of-absolute-devices 05 July 2019, 15:41:56 UTC
f5d1c27 swaybar-protocol.7: fix block border descriptions This corrects the description of border_{top,bottom,left,right} in the block properties table in swaybar-protocol.7. The values should be an integer denoting the width/height rather than a boolean denoting whether to show them. 28 June 2019, 07:34:09 UTC
0ba959f tree: set correct border value before creating floater 27 June 2019, 15:13:02 UTC
5becce8 Replace meson generator with custom_target This change mimics the wlroots protocol meson.build. It replaces meson generators with custom_targets, which will only run wayland-scanner once per output file. The idle protocol is not used by any clients, so its client protocol header is not generated. The check for the availability of the private-code scanner options has been removed, since the wlroots dependency requires wayland >= 1.16. 24 June 2019, 06:38:41 UTC
a18d1c5 ws-output-priority: fix logic issue in find_output The function used for comparing two output names in the workspace output priority lists was inverted. This was causing priority to not be stored correctly resulting in workspaces not always being restored or moved to the desired outputs 23 June 2019, 06:57:38 UTC
b59139c use surface coordinates for damaging buffers 22 June 2019, 09:16:32 UTC
d0d0181 cmd_mode: allow runtime creation and modification This allows for modes to be created, bindings to be added to modes, and bindings to be removed from modes at runtime. Additionally, this also allows for `mode <mode>` to be deferred in the config to set an initial mode. 20 June 2019, 14:14:19 UTC
fc3253c cmd_seat: split action and config handlers This separates the logic for seat subcommand handlers that only perform actions on the seat and handlers that alter the seat config. The former group can immediately free the seat config after running the command as it is only used by the subcommand to find the name of the seat to operate on. The latter group alters the seat config so it will need to go through the storage and application stage (assuming success). 20 June 2019, 07:15:09 UTC
c346c02 config: fix find_handler logic Without this change, the handlers listed in the config_handlers or command_handlers arrays (depending on reading or active) in commands.c would be valid subcommands. To make matters worse, they would also take precedence over the defined subcommand handlers. This corrects find_handler to only work on the handler array given instead of implicitly trying others. 20 June 2019, 07:13:58 UTC
5069b53 config/xwayland: retain xwayland status on reload Since xwayland can only be enabled/disabled at launch, the xwayland status should be retained on reload. Having `xwayland enabled|disabled` in the config, should not cause `config->xwayland` to be invalid on reload. This also returns `CMD_FAILURE` with a message that xwayland can only be enabled/disabled on launch when trying to set the invalid status on reload. This allows swaynag to notify the user that the change will not take effect until sway is restarted. 19 June 2019, 04:40:52 UTC
ddad41f Fix sway crashes for scratchpad layouts Currently container_replace removes the container from the scratchpad and re-adds it afterwards. For the split commands this results in the container being send to the scratchpad, which results in a NULL segfault if the same container should be shown. Pass an optional workspace to root_scratchpad_add_container, if the workspace is passed the window will continue to show on the workspace. If NULL is passed it is sent to the scratchpad. This was an issue if no other window except the scratchpad container was on the workspace. Fixes #4240 16 June 2019, 16:29:16 UTC
bdd4d69 Add missing underscore in bindswitch documentation The missing underscore after "toggle" causes the underline to continue for a whole sentence. 15 June 2019, 01:23:20 UTC
9670cce bindings: defer while initiailizing This adds the logic to defer binding execution while sway is still initializing. Without this, the binding command would be executed, but the command handler would return CMD_DEFER, which was being treated as a failure to run. To avoid partial executions, this will defer all bindings while config->active is false. 12 June 2019, 04:56:41 UTC
2b5bf78 Fix segfaults caused by faulty command parsing This patch fixes faulty command parsing introduced by f0f5de9a9e87ca1f0d74e7cbf82ffceba51ffbe6. When that commit allowed criteria reset on ';' delimeters in commands lists, it failed to account for its inner ','-parsing loop eating threw the entire rest of the string. This patch refactors argsep to use a list of multiple separators, and (optionally) return the separator that it matched against in this iteration via a pointer. This allows it to hint at the command parser which separator was used at the end of the last command, allowing it to trigger a potential secondary read of the criteria. Fixes #4239 11 June 2019, 18:40:36 UTC
3f77591 Add docs for new IPC keyboard properties 10 June 2019, 05:54:05 UTC
3f2518e Add missing docs for xkb_switch_layout 10 June 2019, 05:41:44 UTC
2bccb38 Add a new xkb_switch_layout command This allows users to programatically change the active layout. 09 June 2019, 19:20:14 UTC
84e4061 ipc: add xkb_layout_names and xkb_active_layout_index These can be useful to implement per-window layouts as a script. See https://github.com/swaywm/sway/issues/2361 09 June 2019, 19:04:50 UTC
5b1a8d6 config/input: validate xkb keymap before storing This allows for an optional validation stage when storing an input config. Currently, only the xkb keymap is validated. If storing the delta input config will result in any invalid xkb keymaps, the input config will not be stored and error will be populated with the first line of the xkbcommon log. 09 June 2019, 17:13:22 UTC
be2d2a2 commands/input: perform basic keymap validation Before the delta input config is stored, this attempts to compile a keymap with it. If the keymap fails to compile, then the first line of the xkbcommon log entry will be included with a `CMD_FAILURE`, the entire xkbcommon log entry will be included in the sway error log, and the delta will not be stored. This only handles basic issues such as a layouts not existing. This will NOT catch more complex issues such as when a variant does exist, but not for the given layout (ex: `azerty` is a valid variant, but the `us` layout does not have a `azerty` variant). 09 June 2019, 17:13:22 UTC
4d93b96 Unhide cursor on cursor activity after touch 08 June 2019, 16:02:28 UTC
f17eae9 Fix segfault with "xwayland false" (#4228) Commit 190546fd315a24c04006fb1b177069933f4350da failed to consider the edge case where xwayland is disabled via the sway config. This leads to a SEGFAULT when setting the xwayland cursor since the xwayland server is not running. 08 June 2019, 14:28:10 UTC
9bfbb0d Add the missing constant for the switch input type 07 June 2019, 07:15:03 UTC
b4b274c check for empty string before calling strtoul() and check errno Note: since strtoul() has no real error return code (both 0 and ULONG_MAX may be returned on both success and failure), set errno=0 before calling strtoul(). 05 June 2019, 18:40:29 UTC
back to top