aboutsummaryrefslogtreecommitdiffstats
path: root/sway
Commit message (Collapse)AuthorAge
* Merge commit '97111f3e606c7c11dd418c275c3e7c2d69b68a06' into HEADLibravatar Jenkins CI2022-05-27
|\
| * Override outputs with the workspace commandLibravatar Kristóf Marussy2021-01-20
| |
* | Handle NULL output make/model/serialLibravatar Simon Ser2022-05-26
| |
* | De-duplicate IPC output descriptionsLibravatar Simon Ser2022-05-26
| |
* | ext-session-lock: disable direct scan-out when lockedLibravatar Daniel De Graaf2022-05-23
| |
* | realtime: request SCHED_RR using CAP_SYS_NICELibravatar Rouven Czerwinski2022-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Try to gain SCHED_RR (round-robin) realtime scheduling privileges before starting the server. This requires CAP_SYS_NICE on Linux systems. We additionally register a pthread_atfork callback which resets the scheduling class back to SCHED_OTHER (the Linux system default). Due to CAP_SYS_NICE, setting RLIMIT_RTPRIO has no effect on the process as documented within man 7 sched (from Linux): Privileged (CAP_SYS_NICE) threads ignore the RLIMIT_RTPRIO limit; as with older kernels, they can make arbitrary changes to scheduling policy and priority. See getrlimit(2) for further information on RLIMIT_RTPRIO Note that this requires the sway distribution packagers to set the CAP_SYS_NICE capability on the sway binary. Supersedes #6992
* | server: request xdg-shell v2Libravatar Rouven Czerwinski2022-05-16
| | | | | | | | | | | | | | | | Wlroots does not yet support the newer xdg-shell versions and now requires the compositor to set the supported xdg-shell version during creation. Set this to v2 for sway as well. Fixes https://github.com/swaywm/sway/issues/7001
* | man: Fix trailing spacesLibravatar -k2022-05-11
| |
* | Add descriptions for `stacking` and `tabbed` layoutsLibravatar -k2022-05-11
| | | | | | | | Resolves #5918
* | Replace strncpy with memcpyLibravatar Simon Ser2022-05-11
| | | | | | | | | | | | | | | | | | | | strncpy is useless here, is dangerous because it doesn't guarantee that the string is NUL-terminated and causes the following warning: ../sway/criteria.c: In function ‘criteria_parse’: ../sway/criteria.c:712:25: error: ‘strncpy’ destination unchanged after copying no bytes [-Werror=stringop-truncation] 712 | strncpy(value, valuestart, head - valuestart); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* | Avoid inspecting a NULL view in seat_set_focusLibravatar Daniel De Graaf2022-04-30
| | | | | | | | Fixes #6968
* | Implement ext-session-lock-v1Libravatar Daniel De Graaf2022-04-29
| |
* | xkb_switch_layout: fix relative layout switchesLibravatar Victor Makarov2022-04-28
| | | | | | Fixes #6011
* | Chase wlroots X11 hints updateLibravatar kraftwerk282022-04-18
| |
* | layer_shell: keep output non-NULL wherever possibleLibravatar Thomas Hebb2022-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our layer shell implementation assigns every layer surface to an output on creation. It tracks this output using the output field on the underlying wlr_layer_surface_v1 structure. As such, much of the existing code assumes that output is always non-NULL and omits NULL checks accordingly. However, there are currently two cases where we destroy a sway_layer_surface and output is NULL. The first is when we can't find an output to assign the surface to and destroy it immediately after creation. The second is when we destroy a surface in response to its output getting destroyed, as we set output to NULL in handle_output_destroy() before we call wlr_layer_surface_v1_destroy(), which is what calls the appropriate unmap and destroy callbacks. The former case doesn't cause any problems, since we haven't even allocated a sway_layer_surface at that point or registered any callbacks. The latter case, however, currently triggers a crash (#6120) if a popup is visible, since our popup_handle_unmap() implementation can't handle a NULL output. To fix this issue, keep output set until right before we free the sway_layer_surface. All we need to do is remove some of the cleanup logic from handle_output_destroy(), since as of commit c9060bcc12d0 ("layer-shell: replace close() with destroy()") that same logic is guaranteed to be happen later when wlroots calls handle_destroy() as part of wlr_layer_surface_v1_destroy(). This lets us remove some NULL checks from other unmap/destroy callbacks, which is nice. We also don't need to check that the wlr_output points to a valid sway_output anymore, since we unset that pointer after disabling the output as of commit a0bbe67076b8 ("Address emersions comments on output re-enabling") Just to be safe, I've added assertions that the wlr_output is non-NULL wherever we use it. Fixes #6120.
* | Shuffle variables to satisfy -Werror=restrictLibravatar Daniel De Graaf2022-04-09
| | | | | | | | This also fixes an invalid strlen invocation on uninitialized memory.
* | Avoid format-truncation warningLibravatar Daniel De Graaf2022-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing code gives this error when compiled with GCC 12: ../sway/server.c: In function ‘server_init’: ../sway/server.c:217:75: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 8 [-Werror=format-truncation=] 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~ ../sway/server.c:217:66: note: directive argument in the range [-2147483647, 32] 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~~~~~~~~~~~ ../sway/server.c:217:17: note: ‘snprintf’ output between 10 and 20 bytes into a destination of size 16 217 | snprintf(name_candidate, sizeof(name_candidate), "wayland-%d", i); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Because i is never negative, this is a false positive, but it is easy to change i to unsigned to silence the error.
* | sway/main: move constants off the stackLibravatar Manuel Stoeckl2022-03-29
| | | | | | | | This makes stack traces from gdb slightly easier to read.
* | sway/input: wlr_seat_keyboard() now takes wlr_keyboardLibravatar Leonardo Hernández Hernández2022-03-23
| |
* | sway/input: fix bad position of wlr_dragLibravatar Leonardo Hernández Hernández2022-03-22
| |
* | sway/input: follow up wlroots input device events renamingLibravatar Simon Zeni2022-03-17
| |
* | sway/input/seat: take output name from specialized input deviceLibravatar Simon Zeni2022-03-17
| |
* | sway/input/cursor: take device mm size from wlr_tabletLibravatar Simon Zeni2022-03-17
| |
* | Updating criteria checking with PCRE2Libravatar Bill Li2022-03-15
| |
* | Replace pcre with pcre2Libravatar ndren2022-03-12
| | | | | | Closes: https://github.com/swaywm/sway/issues/6838
* | Remove WLR_SWITCH_STATE_TOGGLE usageLibravatar Simon Ser2022-03-08
| | | | | | | | | | | | Ref [1]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/4792446ee8f50104bd207d9ccd8558a7e4eb4514
* | commands/focus: fix segfault when no container is already focused.Libravatar Nicolas Avrutin2022-03-06
| | | | | | | | Fixes #6690.
* | sway/input: destroy sway_switch properlyLibravatar Moon Sungjoon2022-03-05
| | | | | | | | | | Fix: #6861 Added seat_device_destroy function to seat_device_destroy function.
* | sway/input: don't pass possibly invalid modifiers pointerLibravatar Alexander Gramiak2022-03-04
| | | | | | | | | | | | | | | | | | | | active_keyboard may be NULL, in which case an invalid pointer could be passed to wlr_input_method_keyboard_grab_v2_send_modifiers. This procedure call is unnecessary since wlroots commit 372a52ec "input method: send modifiers in set_keyboard", so the call can simply be removed. Fixes #6836.
* | Don't enter seatop_move_floating when fullscreenLibravatar Thomas Hebb2022-02-24
| | | | | | | | | | | | | | | | | | | | | | Currently, a floating window that's been fullscreened can send us xdg_toplevel::move, and we'll enter seatop_move_floating, which lets us drag the surface around while it's fullscreen. We don't want this--fullscreen surfaces should always be aligned to the screen--so add the same check that seatop_default already does when entering this mode. Tested with Weston's weston-fullscreen demo, which sends a move request if you click anywhere on its surface.
* | Remove some erroneous apostrophes in commentsLibravatar Thomas Hebb2022-02-22
| |
* | sway/input: use wlr_input_device from input device baseLibravatar Simon Zeni2022-02-21
| |
* | sway/commands: add missing wlr_keyboard interface include in xkb_switch_layoutLibravatar Simon Zeni2022-02-21
| |
* | Remove all sprintf callsLibravatar Simon Ser2022-02-08
| | | | | | | | | | Replace them with snprintf, which ensures buffer overflows won't happen.
* | Fix snprintf compiler warningLibravatar Muhamed Hobi2022-02-08
| |
* | xdg-shell: use wlr_xdg_popup in sway_xdg_popupLibravatar Simon Ser2022-02-07
| | | | | | | | Improved type safety.
* | xdg-shell: use wlr_xdg_toplevel in sway_viewLibravatar Simon Ser2022-02-07
| | | | | | | | | | | | Improved type safety. Closes: https://github.com/swaywm/sway/issues/6813
* | Minor update to focus_on_window_activationLibravatar Alexander Browne2022-02-06
| | | | | | Removed xwayland limitation since wayland clients are supported via xdg-activation.
* | Chase wlroots xdg-shell refactorLibravatar Kirill Primak2022-02-03
| |
* | chore: chase wlr_output_layout_get_box() updateLibravatar Kirill Primak2022-01-31
| | | | | | | | https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3439
* | xwayland: listen to `request_activate` eventLibravatar Tuomas Yrjölä2022-01-31
| | | | | | | | | | | | | | When REAPER submenu is closed `XCB_CLIENT_MESSAGE` with type `NET_ACTIVE_WINDOW` is sent to set focus to parent menu. Closes: https://github.com/swaywm/sway/issues/6324
* | Use bools for CLI flagsLibravatar Simon Ser2022-01-31
| |
* | input/cursor: pass through pointer hold gesturesLibravatar Tudor Brindus2022-01-22
| | | | | | | | | | This just follows swaywm/wlroots#3047, so `wl_pointer_gestures_v1` clients can be notified of these events.
* | cmd/swap: error on swapping a container with itselfLibravatar Ronan Pigott2022-01-22
| |
* | transaction: destroying nodes aren't hiddenLibravatar Rouven Czerwinski2022-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 37d7bc69986f ("transaction: Only wait for ack from visible views") introduced a check which uses view_is_visible() to check if a view is still visible on the screen. However view_is_visible() will early return in case the node is in the destroying state. This is incorrect for transactions, since a destroying view which is visible will trigger configure events for other clients. This bug was visible when repeatedly opening and closing two views side by side, since we ignore the destroying node we get a frame where the still open view is shown with the old configure values and the rest is the desktop background. The next frame is than correct again. Fix this by considering destroying views as visible, we correctly wait for them and send the configure events to other views in time, fixing the background flicker. Fixes #6473
* | treat fullscreen windows as 'tiled' for commands/focusLibravatar Patrick Hilhorst2022-01-18
| |
* | input/cursor: treat swipe begin as idle activity tooLibravatar Tudor Brindus2022-01-17
| | | | | | | | Accidentally overlooked in fd53f80.
* | input/cursor: count pointer gestures as idle activityLibravatar Tudor Brindus2022-01-17
| | | | | | | | Fixes https://github.com/swaywm/sway/issues/6765.
* | commands/focus: drop trailing whitespaceLibravatar Simon Ser2022-01-16
| |
* | Upgrade for wlroots surface refactoringLibravatar Simon Ser2022-01-13
| | | | | | | | | | | | See [1] for details. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3412