The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.

Download Latest Version 1.11 source code.zip (5.8 MB)
Email in envelope

Get an email when there's a new version of Sway

Home / 1.11
Name Modified Size InfoDownloads / Week
Parent folder
sway-1.11.tar.gz 2025-06-08 5.6 MB
sway-1.11.tar.gz.sig 2025-06-08 566 Bytes
1.11 source code.tar.gz 2025-06-08 5.6 MB
1.11 source code.zip 2025-06-08 5.8 MB
README.md 2025-06-08 14.6 kB
Totals: 5 Items   17.0 MB 0

Sway 1.11 contains 189 changes from 53 contributors.

This release depends on wlroots 0.19.0. See the wlroots release notes.

New features

  • All of the enhancements from wlroots 0.19.0.
  • Add support for linux-drm-syncobj-v1 for explicit synchronization
  • Add support for alpha-modifier-v1 for setting an alpha multiplier for a surface
  • Add support for ext-image-copy-capture-v1 and ext-image-capture-source-v1 for improved screen capture
  • Add support for ext-data-control-v1 as an alternative protocol for clipboard managers
  • Improved output configuration logic for better and faster fallbacks
  • Pointer keys are now supported and can be bound in keymaps to trigger pointer events
  • security-context-v1 metadata is exposed in IPC, and can be used in criteria and title format

Changes

  • The default configuration file now ships key bindings for a few utilities: pactl, brightnessctl, grim
  • The 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 upstream
  • The sway.desktop file now sets DesktopNames (XDG_CURRENT_DESKTOP will be set by login managers)
Full changelog Adam Chovanec (1): readme: update Czech translation Alexander 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 container Anna (navi) Figueiredo Gomes (1): sway/commands/move.c: arrange new workspace AsciiWolf (1): Remove language bars from remaining non-English README files Attila Fidan (1): input/cursor: remove tool_proximity listener in destroy Baltazár Radics (1): input/libinput: fix parsing input drag_lock command Bill 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.c Bonsaiiv (1): Improve example of input section in default config Chris Perl (1): Remove constraint that con->view != NULL to use __focused__ criteria Claudia (1): Fix tabbed/stacking container height regression Dan Baterisna (1): man: Document bar mode toggle command Daniel De Graaf (1): Use wl_event_loop_add_signal for exit signals Dennis Baurichter (1): man: clarify criteria (incl. PCRE2 usage) Emil Engberg (1): Add toggle for output adaptive_sync Felix Pehla (1): commands/output/color_profile: allows use of relative path for ICC profile Ferdinand 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 UAF Filip Vujičić (1): Remove duplicate arrange_container Furkan 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 inputs György Kurucz (1): input/libinput: fix builtin device detection logic Hong Xu (1): Explain that the title bar always shows Jacob McNamee (3): tree/view: add getters for sandbox properties tree/container: support sandbox properties in title format swaymsg: pretty-print sandbox properties James Knight (1): build: avoid git repository discovery when determining version Jan Palus (1): trigger container update after disabling urgent in timer Jim (1): Increase max default buffer size to 1 MiB JingMatrix (1): Add null-safety check for virtual keyboard keymaps Joan Bruguera Micó (2): layer-shell: Restore interactive layer focus code swaybar: Emit property changes for SNI watcher Jon 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 instead Kenny 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_available Kirill 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 update Loukas Agorgianitis (1): server: fix shutdown crash when running on x11 backend Manuel Stoeckl (1): swaynag: fix null dereference on scale change Mark Stosberg (1): docs: use "window" instead of "view" throughout. Norbert Bolanowski (1): move title_format to container Olivia Taliesin (1): Removed destination-is-ancestor check from container_move_to_container to match i3 behaviour Paul Riou (1): stringop: fix has_prefix() arg order in config parsing Pavel 'LEdoian' Turinsky (1): Fix includes with relative paths Piotr Piwoński (1): sway/commands: Return error if container is not in scratchpad Puck Meerburg (2): ipc-json: add sandbox properties to view JSON criteria: add sandbox properties Ricardo Steijn (1): Add support for tearing-control-v1 Scott Dubinsky (1): Remove unguarded double include ShootingStarDragons (2): fix: sway crashes if switch to another workspace with surface when IME popup is shown text_input: Fix ime panic in ext-session-lock Simon 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.11 Solt Budavári (1): Fix orthographic mistakes in Hungarian README Steffen Dirkwinkel (1): config/output: support DRM_FORMAT_ARGB8888 Violet Purcell (1): tree/container: remove output_{enter,leave} listeners in destroy YaoBing Xiao (1): server: fix socket path memory leak alex-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 containers llyyr (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 destruction melvinm1 (1): Fix output repositioning in global fullscreen mtvare6 (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 supported nilninull (1): Add the DesktopNames key to the sway.desktop session file odyxz (1): raise scratchpad container
Source: README.md, updated 2025-06-08