aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorLines
2023-09-14Translate README to ArabicAshraf-1/+93
2023-09-13readme: Stop recommending setuid bit for non-logind systemsJan Beich-149/+0
- Optional since Sway 1.6 per swaywm/wlroots@bad1e9afa8ea - Deprecated in Sway 1.7 per 67d3d952b6cd - Removed in Sway 1.8 per e5728052b59f - Ignored in future versions (keeps root priveleges)
2023-09-10sway/server: Fix null pointer crash when Xwayland disabledManuel Stoeckl-1/+1
2023-09-07i3 compat: Adding support for the `all` criteriaJohan Sköld-3/+14
Matches all views. i3 PR: https://github.com/i3/i3/pull/4460 Fixes #7110
2023-09-07commands/input/map_from_region: don't treat 0x prefix as hex identifieriff-4/+14
When using the `map_from_region` for pen tables, we will usually make the available area as big as possible while maintaining the proportions with the screen. As most of the tablets uses a 16:10 ratios while the most popular screen ratios is still 16:9, the argument for most people should be `0x0 1x0.9` to have the maximum effective area. However, the argument above won't work because the current code will treat `0x...` as a hexadecimal number, instead of setting both `x` and `y` to `0`. This fix allows the use of the following syntax: ``` input type:tablet_tool { map_from_region 0x0 1x0.9 } ```
2023-08-30build: fix build with wayland-scanner subprojectdenppa-1/+1
2023-08-28xdg_shell: update wlr_toplevel size on client resizesDudemanguy-0/+2
If a floating client resizes itself, sway updates several of its internal dimensions to match but not wlr_toplevel. This means that the next time wlroots sends a toplevel configure event, it can have wrong coordinates that resize the client back to its old size. To fix this, let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the same dimensions as sway. Exactly the same as 0183b9d35d0ce750588e700e536b7d2e367b0d0a but the logic is onlly applied to xdg_shell and not xwayland.
2023-08-28Revert "view: update wlr_toplevel size on client resizes"Dudemanguy-5/+0
This isn't the right fix for this issue because the xwayland code also uses this function and updating the wlr_toplevel there doesn't make sense and also causes problems. Fixes #7722. This reverts commit bf44690ee8ce8438ffb1a84fbe6e8dbb6a851c04.
2023-08-26view: update wlr_toplevel size on client resizesDudemanguy-0/+5
If a floating client resizes itself, sway updates several of its internal dimensions to match but not wlr_toplevel. This means that the next time wlroots sends a toplevel configure event, it can have wrong coordinates that resize the client back to its old size. To fix this, let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the same dimensions as sway. Fixes #5266.
2023-08-24Hide xwayland_shell_v1 from regular clientsSimon Ser-0/+15
Regular clients are not allowed to use this interface. wlroots already sends a protocol error if a non-Xwayland client tries to use this interface, but let's remove all temptation by hiding it completely.
2023-08-23Fix typoluzpaz-1/+1
2023-08-21chore: chase wlroots xdg-surface role reworkKirill Primak-7/+8
2023-08-19chase wlroots!4316Leonardo Hernández Hernández-2/+2
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4316
2023-08-02Move contrib/ to separate repositorySimon Ser-550/+0
User-contributed scripts are being moved over to this repository: https://github.com/OctopusET/sway-contrib
2023-07-31Rebase all cursors in handle_surface_mapookami-0/+2
Fix swaylock showing transient cursor after locked.
2023-07-31output: drop current_modeSimon Ser-7/+0
This is now unused.
2023-07-31desktop/output: fix output manager enabled stateSimon Ser-6/+3
With recent wlroots changes, backends which don't support output modes can now support being disabled. We were always marking mode-less outputs as disabled. Stop doing that, check whether the output takes up some space in the layout instead.
2023-07-31desktop/output: drop handle_mode()Simon Ser-17/+1
We already perform the exact same logic on transform/scale change.
2023-07-31desktop/output: drop logic to handle backend-applied modeSimon Ser-13/+0
The wlroots backends no longer magically apply output modes behind the compositor's back.
2023-07-31swaynag: Implement wp_cursor_shape_v1Alexander Orzechowski-5/+23
2023-07-31swaybar: Implement wp_cursor_shape_v1Alexander Orzechowski-10/+28
2023-07-24Add support for cursor-shape-v1Simon Ser-0/+36
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4106
2023-07-23fix crash when resizing tiled scratchpad windowsbretello-0/+13
Splitting and then hiding a scratchpad container results in a segfault. fixes #6693
2023-07-20Add Georgian READMENick Kipshidze-1/+69
I am a native Georgian speaker. I have translated sway's README.md
2023-07-19Deprecate seat idle_wakeSimon Ser-21/+10
Sway has two knobs to control idling: - seat idle_inhibit: when the seat is active (ie. not idle), this extends the active state. When the seat is idle, this is ignored. - seat idle_wake: when the seat is idle, this wakes up the seat. When the seat is active, this is ignored. The motivation for the deprecation is two-fold: - The concept of "seat idle state" is ill-defined. Each idle-notify-v1 client will pass a different idle timeout. With the old logic, a seat was declared idle if and only if all idle-notify-v1 timeouts have expired. However, if only a portion of the timeouts have expired, then some clients would wake up, and the rest would stay active. This is inconsistent with the definition of idle_inhibit/idle_wake: idle_inhibit was used for clients which are waking up. - It never worked properly with the new idle-notify-v1 protocol and no-one noticed. Only the legacy KDE idle protocol is taken into account, but that protocol is not used anymore.
2023-07-17swaynag: handle wayland-cursor failuresSimon Ser-0/+8
Same as 92244c87dbb8 ("swaybar: handle wayland-cursor failures") but for swaynag. Closes: https://github.com/swaywm/sway/issues/7671
2023-07-15chase wlroots 'presentation-time: add separate helper for zero-copy 'Artturin-2/+2
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/67447d6cb407ac5b6405b4dbae01a38567feb111
2023-07-13Calculate tiled resize amount relative to parent containernukoseer-2/+17
sway should shrinks/grows tiled windows according to parent container for ppt unit for i3 compatibility. Resolves: #7593
2023-07-12Send wl_surface.preferred_buffer_scaleSimon Ser-1/+2
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3696
2023-07-08swaybar: handle wayland-cursor failuresManuel Stoeckl-0/+8
Updating the cursor is not essential, so this change prints a warning when wl_cursor_theme_load or wl_cursor_theme_get_cursor fail instead of crashing or exiting.
2023-06-27swaybar: don't set current workspace as not visiblellyyr-1/+1
When `wrap_scroll yes` is configured and there's only one workspace open, swaybar will mark it as not visible if the user scrolls on it and eventually incorrectly fail the `active->visible` assert. Fix this by making sure that new and current workspace aren't the same.
2023-06-26input: Move wlr_pointer_gestures_v1 to sway_input_managerMark Bolhuis-12/+11
On multi-seat configurations a zwp_pointer_gestures_v1 global was created for every seat. Instead, create the global once in the input manager, to be shared across all seats.
2023-06-25Use "default" XCursor instead of "left_ptr"Simon Ser-7/+7
"left_ptr" is the legacy XCursor name. "default" is the cursor spec name.
2023-06-23swaybar: remove the argument of StatusNotifierHostRegisteredHodong-1/+1
According to https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierWatcher/ there is no argument for the StatusNotifierHostRegistered signal.
2023-06-23idle-inhibit-v1: simplify with server globalSimon Ser-38/+27
We only have a single running server, no need to keep track of multiple server instances. Also no need to support multiple idle inhibit managers.
2023-06-19Use wlr_cursor_unset_image()Simon Ser-2/+2
A bit cleaner. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4209
2023-06-19Use wlr_cursor_set_xcursor()Simon Ser-2/+1
wlr_xcursor_manager_set_cursor_image() is deprecated. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4170
2023-06-19render: Use wlroots scale filterAlexander Orzechowski-29/+7
2023-06-16input/libinput: add scroll_button_lock methodCezary Drożak-0/+66
Closes https://github.com/swaywm/sway/issues/6987 Co-authored-by: JJGadgets <git@jjgadgets.tech> Co-authored-by: DeltaWhy <mike5713@gmail.com>
2023-06-14gamma_control_v1: handle destroyed outputRouven Czerwinski-0/+5
In case a display is unplugged, the sway output may be removed from the userdata before the gamma_control can be reset. In this case we can't schedule a commit on the output, simply return within the function. backtrace full: #0 handle_gamma_control_set_gamma (listener=0x4856a8 <server+616>, data=0x7ffce1ed59c0) at ../sway/desktop/output.c:1105 server = 0x485440 <server> event = 0x7ffce1ed59c0 output = 0x0 #1 0x00007f430d1dca0c in wl_signal_emit_mutable () from /nix/store/ky1g6ylzr2m4bq8fy0gzrnqmjr6948k5-wayland-1.22.0/lib/libwayland-server.so.0 No symbol table info available. #2 0x00007f430d142370 in gamma_control_destroy (gamma_control=0x29eb9b0) at ../types/wlr_gamma_control_v1.c:37 manager = 0x27e33e0 output = 0x2a10770 event = {output = 0x2a10770, control = 0x0} #3 0x00007f430d14239b in gamma_control_handle_output_destroy (listener=<optimized out>, data=<optimized out>) at ../types/wlr_gamma_control_v1.c:59 gamma_control = <optimized out> #4 0x00007f430d1dca0c in wl_signal_emit_mutable () from /nix/store/ky1g6ylzr2m4bq8fy0gzrnqmjr6948k5-wayland-1.22.0/lib/libwayland-server.so.0 No symbol table info available. #5 0x00007f430d12a0e0 in wlr_output_destroy (output=output@entry=0x2a10770) at ../types/output/output.c:384 cursor = <optimized out> tmp_cursor = <optimized out> layer = <optimized out> tmp_layer = <optimized out> #6 0x00007f430d114ecf in disconnect_drm_connector (conn=conn@entry=0x2a10770) at ../backend/drm/drm.c:1757 __PRETTY_FUNCTION__ = "disconnect_drm_connector" #7 0x00007f430d117078 in scan_drm_connectors (drm=drm@entry=0x1eebab0, event=event@entry=0x7ffce1ed5c1c) at ../backend/drm/drm.c:1597 c = <optimized out> wlr_conn = 0x2a10770 drm_conn = 0x2e760d0 conn_id = <optimized out> index = 4 i = 4 res = 0x2e761f0 seen_len = 5 seen = {true, true, true, true, true, false} new_outputs_len = 0 new_outputs = 0x7ffce1ed5ab0 conn = <optimized out> tmp_conn = <optimized out> index = <optimized out> #8 0x00007f430d113425 in handle_dev_change (listener=0x1eebbb0, data=0x7ffce1ed5c18) at ../backend/drm/backend.c:157 drm = 0x1eebab0 change = 0x7ffce1ed5c18 #9 0x00007f430d1dca0c in wl_signal_emit_mutable () from /nix/store/ky1g6ylzr2m4bq8fy0gzrnqmjr6948k5-wayland-1.22.0/lib/libwayland-server.so.0 No symbol table info available. #10 0x00007f430d111696 in handle_udev_event (fd=<optimized out>, mask=<optimized out>, data=<optimized out>) at ../backend/session/session.c:213 event = {type = WLR_DEVICE_HOTPLUG, {hotplug = {connector_id = 0, prop_id = 0}}} devnum = <optimized out> dev = 0x1ed9460 session = <optimized out> udev_dev = 0x2e70db0 sysname = 0x2e73c60 "card0" devnode = <optimized out> action = 0x7f430d6677b5 "change" seat = <optimized out> __PRETTY_FUNCTION__ = "handle_udev_event" #11 0x00007f430d1de8e2 in wl_event_loop_dispatch () from /nix/store/ky1g6ylzr2m4bq8fy0gzrnqmjr6948k5-wayland-1.22.0/lib/libwayland-server.so.0 No symbol table info available. #12 0x00007f430d1dc445 in wl_display_run () from /nix/store/ky1g6ylzr2m4bq8fy0gzrnqmjr6948k5-wayland-1.22.0/lib/libwayland-server.so.0 No symbol table info available. #13 0x000000000041daa5 in server_run (server=server@entry=0x485440 <server>) at ../sway/server.c:338 No locals. #14 0x000000000041cf4d in main (argc=<optimized out>, argv=0x7ffce1ed5fe8) at ../sway/main.c:415 verbose = false debug = false validate = false allow_unsupported_gpu = false config_path = 0x0 c = <optimized out> where event->output->data is NULL: (gdb) p event->output->data $5 = (void *) 0x0
2023-06-11gamma_control_v1: Reset dirty flagAlexander Orzechowski-0/+1
2023-06-11Fix `bindsym --to-code` not respecting input configs33KK-0/+12
Fixes #7535
2023-06-09man: add --inhibited and --no-repeat to bindsym and bindcode usageShaked Flur-3/+4
2023-06-09desktop/output: fix damage bitfield in wlr_output_stateSimon Ser-1/+1
2023-06-08desktop/output: use detached output state for page-flipsSimon Ser-22/+26
This avoids relying on the implicit wlr_output.pending state.
2023-06-08Handle gamma-control-v1 set_gamma eventsSimon Ser-1/+36
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4046
2023-06-06Add support for wlr-layer-shell ON_DEMAND keyboard interactivityErik Reider-13/+80
This allows for layer shell surfaces to receive focus while the surface is explicitly focused, i.e allowing text fields to receive keyboard input just like a regular surface.
2023-06-05chase wlroots wlr_renderer_begin_buffer_pass changeArtturin-1/+1
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4159 > ../sway/desktop/output.c:618:47: error: too few arguments to function 'wlr_renderer_begin_buffer_pass' > 618 | struct wlr_render_pass *render_pass = wlr_renderer_begin_buffer_pass( > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-06-03xwayland: fix mapped state check in OR handlersKirill Primak-2/+2
2023-06-02lock: listen to the correct map signalKirill Primak-1/+1