Sway 1.11 contains 189 changes from 53 contributors.This release depends on wlroots 0.19.0. See the wlroots release notes.New featuresAll of the enhancements from wlroots 0.19.0.Add support for linux-drm-syncobj-v1 for explicit synchronizationAdd support for alpha-modifier-v1 for setting an alpha multiplier for a surfaceAdd support for ext-image-copy-capture-v1 and ext-image-capture-source-v1 for improved screen captureAdd support for ext-data-control-v1 as an alternative protocol for clipboard managersImproved output configuration logic for better and faster fallbacksPointer keys are now supported and can be bound in keymaps to trigger pointer eventssecurity-context-v1 metadata is exposed in IPC, and can be used in criteria and title formatChangesThe default configuration file now ships key bindings for a few utilities: pactl, brightnessctl, grimThe default menu now uses wmenu-run and no longer depends on dmenu_path.The default tap-and-drag lock mode has been switched to sticky as recommended by upstreamThe sway.desktop file now sets DesktopNames (XDG_CURRENT_DESKTOP will be set by login managers)Full changelogAdam Chovanec (1): readme: update Czech translationAlexander Orzechowski (19): transaction: Reparent all container children when disabling for scratchpad xwayland: Let scene restack output: Use wlr_scene_output_needs_frame output: Use wlr_scene_set_gamma_control_manager_v1 output: Chase wlroots!4803 container: Skip % char if it doesn't match a view property text_input: Check for allocation failure text_input: Move popup placement to own function transaction: Allow no popup descriptor in popup list text_input: Properly handle map/unmap events text_input: Inline input_popup_update into input_popup_set_focus Fix alpha-modifier-v1 layer_shell: Arrange exclusive zone clients first layer_shell: Restore sway 1.9 ordering container: Properly constrain title bar padding swaybar: Handle opaque region properly output: Expose output_configure_scene to header output: Allow configuring scene without an output commands/opacity: Call output_configure_scene on updated containerAnna (navi) Figueiredo Gomes (1): sway/commands/move.c: arrange new workspaceAsciiWolf (1): Remove language bars from remaining non-English README filesAttila Fidan (1): input/cursor: remove tool_proximity listener in destroyBaltazár Radics (1): input/libinput: fix parsing input drag_lock commandBill Li (4): build: Bump wlroots version Chase wlroots!2434 ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel Drop wlr_matrix.h include from sway/desktop/output.cBonsaiiv (1): Improve example of input section in default configChris Perl (1): Remove constraint that con->view != NULL to use __focused__ criteriaClaudia (1): Fix tabbed/stacking container height regressionDan Baterisna (1): man: Document bar mode toggle commandDaniel De Graaf (1): Use wl_event_loop_add_signal for exit signalsDennis Baurichter (1): man: clarify criteria (incl. PCRE2 usage)Emil Engberg (1): Add toggle for output adaptive_syncFelix Pehla (1): commands/output/color_profile: allows use of relative path for ICC profileFerdinand Bachmann (7): sway/ipc-json: add ext-foreign-toplevel-handle identifier to get_tree ipc output server: remove event listeners on fini input/input-manager: remove event listeners on fini desktop/idle_inhibit: remove event listeners on destroy input/text_input: remove event listeners on destroy tree/container: remove event listeners on destroy server: recreate renderer in idle callback to avoid UAFFilip Vujičić (1): Remove duplicate arrange_containerFurkan Sahin (6): swaybar: Fix 100% cpu usage if dbus dies. input/mouse: bugfix button2 being interpreted as trying to move the container output/background: fix config ignoring fallback color ipc: standardize pretty print with raw print sway/commands: Handle incorrect resize unit input/seatop_down: Update decorations for touchscreen inputsGyörgy Kurucz (1): input/libinput: fix builtin device detection logicHong Xu (1): Explain that the title bar always showsJacob McNamee (3): tree/view: add getters for sandbox properties tree/container: support sandbox properties in title format swaymsg: pretty-print sandbox propertiesJames Knight (1): build: avoid git repository discovery when determining versionJan Palus (1): trigger container update after disabling urgent in timerJim (1): Increase max default buffer size to 1 MiBJingMatrix (1): Add null-safety check for virtual keyboard keymapsJoan Bruguera Micó (2): layer-shell: Restore interactive layer focus code swaybar: Emit property changes for SNI watcherJon Wallace (2): Use heading markdown to demarcate sections of commands Its a little tought to notice that the COMMANDS section is actually 3 sections. Use markdown to make this easier to see for the user. use subheadings insteadKenny Levinsen (51): desktop/output: Stop repaint loop when not needed config/output: Do not set adaptive_sync if not supported config/output: Skip search if config has a mode desktop/output: Do not use commit listener to arrange tree/output: Rely on modeset arranging root (desktop|tree)/output: Do not use layout listener to arrange desktop/output: Avoid duplicate output manager update tree/output: Avoid duplicate input mapping configure tree/arrange: Remove redundant output geometry update desktop/transaction: Deactivate workspace on inactive outputs tree/arrange; Skip arranging disabled outputs config/output: Support multiple matches in find_output_config config/output: Always start with default in find_output_config config/output: Accept a list of output_configs to use config/output: Rename to apply_stored_output_configs ext-session-lock: Do not use commit listener to arrange config/output: Add support for 6-bit render fmt config/output: Stringify render format when logging it commands/gaps: Check config->reading instead desktop/output: Expose request_modeset config: Batch input/output configuration on load desktop/output: Clear modeset timer on output manager apply Re-init renderer for all outputs on lost context config/output: Improve modeset state logging config/output: Always set output states from config config/output: Always set all output fields on finalize config/output: Remove initial values in find_output_config config/output: Remove remaining logs from queue_output_config desktop/output: Store output config on request_state desktop/output: Add missing output config allocation checks config/output: Update output position in two passes desktop/output: Clean up output state if build_state fails desktop/output: Clear frame_pending even output is disabled config: Force modeset before running deferred configs ipc-server: Force modeset if needed after executing commands desktop/output: Clear repaint timer earlier in destroy sway_text_node: Apply max_width when rendering sway_text_node: Remove use of source box Rework fork/exec strategy Use SIG_IGN for SIGCHLD instead of our own handler config/output: Reset everything before swaybg exec desktop/output: Skip repaint if wlr_output is disabled Avoid crashing on too many containers idle_inhibit: Ignore inhibitors when locked idle_inhibit: Explicitly handle layer surfaces idle_inhibit: Assume view is invisible by default idle_inhibit: Check if layer surface output is enabled config/output: Use INT_MAX as x/y unset value config/output: Fix missing output config supersedes output: Minimize interaction with output after destroy tree/workspace: Remove exclude arg from get_highest_availableKirill Primak (5): xwayland: chase wlr_xwayland_surface_set_maximized() change tearing: remove trailing whitespace tearing: fix UAF on destroy xdg-shell: chase xdg_surface geometry updates desktop/output: chase wlroots private fields updateLoukas Agorgianitis (1): server: fix shutdown crash when running on x11 backendManuel Stoeckl (1): swaynag: fix null dereference on scale changeMark Stosberg (1): docs: use "window" instead of "view" throughout.Norbert Bolanowski (1): move title_format to containerOlivia Taliesin (1): Removed destination-is-ancestor check from container_move_to_container to match i3 behaviourPaul Riou (1): stringop: fix has_prefix() arg order in config parsingPavel 'LEdoian' Turinsky (1): Fix includes with relative pathsPiotr Piwoński (1): sway/commands: Return error if container is not in scratchpadPuck Meerburg (2): ipc-json: add sandbox properties to view JSON criteria: add sandbox propertiesRicardo Steijn (1): Add support for tearing-control-v1Scott Dubinsky (1): Remove unguarded double includeShootingStarDragons (2): fix: sway crashes if switch to another workspace with surface when IME popup is shown text_input: Fix ime panic in ext-session-lockSimon Ser (32): build: use fs.relative_to() instead of hand-rolled logic desktop/xwayland: don't restack when marking window as inactive Add support for linux-drm-syncobj-v1 Bind a few utilities to special keys in default config Switch default config to wmenu-run Add support for alpha-modifier-v1 release: push tags before creating GitHub release server: check backend support for timelines input/keyboard: add support for pointer keys input/seatop_default: refactor move/resize button logic release.sh: read meson-rewrite output from stdout ipc-json: handle LIBINPUT_CONFIG_DRAG_LOCK_ENABLED_STICKY Add support for LIBINPUT_CONFIG_DRAG_LOCK_ENABLED_STICKY stringop: move over has_prefix() Use has_prefix() instead of strncmp() throughout Fix has_prefix() comparisons with 0 config/output: don't hardcode DMA-BUF in search_render_format() Add ext-image-copy-capture-v1 and ext-image-capture-source-v1 Fix crash on shutdown when Xwayland is disabled swaymsg, swaynag: drop sway_terminate() definitions server: move sway_terminate() definition to header Drop wl_drm again build: bump version to 1.11-rc1 Use pthread_atfork() to restore signals and NOFILE limit Replace signal() with sigaction() build: bump version to 1.11-rc2 build: bump version to 1.11-rc3 ci: pin wlroots to 0.19.x input: fix udev_device leak Log message on for_window command error build: bump version to 1.11-rc4 build: bump version to 1.11Solt Budavári (1): Fix orthographic mistakes in Hungarian READMESteffen Dirkwinkel (1): config/output: support DRM_FORMAT_ARGB8888Violet Purcell (1): tree/container: remove output_{enter,leave} listeners in destroyYaoBing Xiao (1): server: fix socket path memory leakalex-huff (7): transaction: Ensure all tabs are visible in tabbed mode move: fix broken titlebar when moving child to new workspace transaction: ensure border scene is enabled for floating containers transaction: fix size of child container decorations in stacking layouts transaction: reparent scenes of containers behind fullscreen containers layer-shell: reclaim space from unmapped layer surfaces transaction: fix floating fullscreen containersllyyr (7): sway/tree/container: don't trunc coords in `floating_fix_coordinates` sway/input/keyboard: always set active keyboard if there is none sway/server: bind to presentation-time-v2 layer_shell: cleanup new_popup listener when destroying node config/output: don't leak background_fallback sway/server: create ext-data-control manager layer_shell: destroy layer_surface on assigned output destructionmelvinm1 (1): Fix output repositioning in global fullscreenmtvare6 (3): desktop/transaction: clamp vertical border length to 0 commands/include: handle many files in single line config/output: skip format checks if all are supportednilninull (1): Add the DesktopNames key to the sway.desktop session fileodyxz (1): raise scratchpad container