aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* swaynag/config.c: fix build against gcc-14 (-Walloc-size)Libravatar Sergei Trofimovich2023-11-03
| | | | | | | | | | | | | | `gcc-14` added a new `-Walloc-size` warning that makes sure that size of an individual element matches size of a pointed type: https://gcc.gnu.org/PR71219 `sway` triggers it on `calloc()` calls where member size is used as `1` (instead of member count): swaynag/config.c:169:65: error: allocation of insufficient size '1' for type 'struct swaynag_button' with size '48' [-Werror=alloc-size] 169 | struct swaynag_button *button = calloc(sizeof(struct swaynag_button), 1);
* chase wlroots!4411Libravatar Bill Li2023-10-31
| | | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4411 fix #7802
* xdg-shell: send maximized if tiled isn't supportedLibravatar Kirill Primak2023-10-29
| | | | wlroots doesn't do it automatically anymore.
* xdg_shell: don't update wlr_toplevel if the container has no size yetLibravatar Dudemanguy2023-10-27
| | | | | | | | | | 3d5ae9813d390ea747462fc0026ee43b7c77d0f2 added logic to change the underlying wlr_toplevel size for floating containers, but it does it even if the container has no actual coordinates yet. This doesn't really make sense to update the toplevel size in this case since there's many things that could affect the initial coordinates (sway commands, fullscreen state, etc.). Skip this by doing a crude check to see if the current container state has any width.
* view: check if the buffer was uploaded on saveLibravatar Kirill Primak2023-10-24
| | | | | wlr_surface_has_buffer() is insufficient; if a client has committed a buffer but it couldn't be applied, NULL deref happens in the next line.
* config/output: Allow approximation of output refresh rateLibravatar Tamino Bauknecht2023-10-23
| | | | | | | | | | | Previous behavior was that only if resolution and refresh rate match exactly, the mode was accepted. As fallback, the mode with the highest refresh rate and the same resolution was chosen. New behavior is that the mode with the closest match for the refresh rate is used with a limit of up to 1Hz. The fallback behavior stays the same. Additionally, the logging was made more verbose.
* gitignore: Ignore clangd-generated directory .cache/Libravatar Tamino Bauknecht2023-10-23
|
* Chase wlroots!4331Libravatar Alexander Orzechowski2023-10-06
|
* Update sway-input.5.scdLibravatar iff2023-10-05
|
* Drop support for KDE's idle protocolLibravatar Simon Ser2023-10-05
| | | | We support the standard idle-notify protocol since Sway 1.8.
* Translate README to ArabicLibravatar Ashraf2023-09-14
|
* readme: Stop recommending setuid bit for non-logind systemsLibravatar Jan Beich2023-09-13
| | | | | | | - 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)
* sway/server: Fix null pointer crash when Xwayland disabledLibravatar Manuel Stoeckl2023-09-10
|
* i3 compat: Adding support for the `all` criteriaLibravatar Johan Sköld2023-09-07
| | | | | | Matches all views. i3 PR: https://github.com/i3/i3/pull/4460 Fixes #7110
* commands/input/map_from_region: don't treat 0x prefix as hex identifierLibravatar iff2023-09-07
| | | | | | | | | | | | | | | | | | | | | 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 } ```
* build: fix build with wayland-scanner subprojectLibravatar denppa2023-08-30
|
* xdg_shell: update wlr_toplevel size on client resizesLibravatar Dudemanguy2023-08-28
| | | | | | | | | | | | 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.
* Revert "view: update wlr_toplevel size on client resizes"Libravatar Dudemanguy2023-08-28
| | | | | | | | 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.
* view: update wlr_toplevel size on client resizesLibravatar Dudemanguy2023-08-26
| | | | | | | | | 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.
* Hide xwayland_shell_v1 from regular clientsLibravatar Simon Ser2023-08-24
| | | | | | | 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.
* Fix typoLibravatar luzpaz2023-08-23
|
* chore: chase wlroots xdg-surface role reworkLibravatar Kirill Primak2023-08-21
|
* chase wlroots!4316Libravatar Leonardo Hernández Hernández2023-08-19
| | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4316
* Move contrib/ to separate repositoryLibravatar Simon Ser2023-08-02
| | | | | User-contributed scripts are being moved over to this repository: https://github.com/OctopusET/sway-contrib
* Rebase all cursors in handle_surface_mapLibravatar ookami2023-07-31
| | | | Fix swaylock showing transient cursor after locked.
* output: drop current_modeLibravatar Simon Ser2023-07-31
| | | | This is now unused.
* desktop/output: fix output manager enabled stateLibravatar Simon Ser2023-07-31
| | | | | | | | | 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.
* desktop/output: drop handle_mode()Libravatar Simon Ser2023-07-31
| | | | We already perform the exact same logic on transform/scale change.
* desktop/output: drop logic to handle backend-applied modeLibravatar Simon Ser2023-07-31
| | | | | The wlroots backends no longer magically apply output modes behind the compositor's back.
* swaynag: Implement wp_cursor_shape_v1Libravatar Alexander Orzechowski2023-07-31
|
* swaybar: Implement wp_cursor_shape_v1Libravatar Alexander Orzechowski2023-07-31
|
* Add support for cursor-shape-v1Libravatar Simon Ser2023-07-24
| | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4106
* fix crash when resizing tiled scratchpad windowsLibravatar bretello2023-07-23
| | | | | | | Splitting and then hiding a scratchpad container results in a segfault. fixes #6693
* Add Georgian READMELibravatar Nick Kipshidze2023-07-20
| | | | | | I am a native Georgian speaker. I have translated sway's README.md
* Deprecate seat idle_wakeLibravatar Simon Ser2023-07-19
| | | | | | | | | | | | | | | | | | | | | | | 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.
* swaynag: handle wayland-cursor failuresLibravatar Simon Ser2023-07-17
| | | | | | | Same as 92244c87dbb8 ("swaybar: handle wayland-cursor failures") but for swaynag. Closes: https://github.com/swaywm/sway/issues/7671
* chase wlroots 'presentation-time: add separate helper for zero-copy 'Libravatar Artturin2023-07-15
| | | | https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/67447d6cb407ac5b6405b4dbae01a38567feb111
* Calculate tiled resize amount relative to parent containerLibravatar nukoseer2023-07-13
| | | | | | | sway should shrinks/grows tiled windows according to parent container for ppt unit for i3 compatibility. Resolves: #7593
* Send wl_surface.preferred_buffer_scaleLibravatar Simon Ser2023-07-12
| | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3696
* swaybar: handle wayland-cursor failuresLibravatar Manuel Stoeckl2023-07-08
| | | | | | 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.
* swaybar: don't set current workspace as not visibleLibravatar llyyr2023-06-27
| | | | | | | 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.
* input: Move wlr_pointer_gestures_v1 to sway_input_managerLibravatar Mark Bolhuis2023-06-26
| | | | | | | | 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.
* Use "default" XCursor instead of "left_ptr"Libravatar Simon Ser2023-06-25
| | | | | "left_ptr" is the legacy XCursor name. "default" is the cursor spec name.
* swaybar: remove the argument of StatusNotifierHostRegisteredLibravatar Hodong2023-06-23
| | | | | According to https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierWatcher/ there is no argument for the StatusNotifierHostRegistered signal.
* idle-inhibit-v1: simplify with server globalLibravatar Simon Ser2023-06-23
| | | | | | 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.
* Use wlr_cursor_unset_image()Libravatar Simon Ser2023-06-19
| | | | | | A bit cleaner. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4209
* Use wlr_cursor_set_xcursor()Libravatar Simon Ser2023-06-19
| | | | | | wlr_xcursor_manager_set_cursor_image() is deprecated. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4170
* render: Use wlroots scale filterLibravatar Alexander Orzechowski2023-06-19
|
* input/libinput: add scroll_button_lock methodLibravatar Cezary Drożak2023-06-16
| | | | | | | Closes https://github.com/swaywm/sway/issues/6987 Co-authored-by: JJGadgets <git@jjgadgets.tech> Co-authored-by: DeltaWhy <mike5713@gmail.com>
* gamma_control_v1: handle destroyed outputLibravatar Rouven Czerwinski2023-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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