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.10
Name Modified Size InfoDownloads / Week
Parent folder
sway-1.10.tar.gz 2024-10-27 5.6 MB
sway-1.10.tar.gz.sig 2024-10-27 566 Bytes
1.10 source code.tar.gz 2024-10-27 5.6 MB
1.10 source code.zip 2024-10-27 5.8 MB
README.md 2024-10-27 17.2 kB
Totals: 5 Items   16.9 MB 0

Sway 1.10 contains 237 changes from 44 contributors.

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

New features

  • All of the enhancements from wlroots 0.18.
  • Rewrite the renderer to leverage the wlroots scene-graph API, resulting in improved performance.
  • Add GPU reset recovery for improved robustness.
  • Add a command to use an ICC profile for an output.
  • Improved output configuration algorithm to light up more outputs when the GPU bandwidth is constrained. WLR_DRM_NO_MODIFIERS shouldn't be necessary anymore to workaround black screens on Intel.
  • Add support for IME popups used for CJK.
  • Add support for tearing-control-v1, to opt-in for tearing page-flips for gaming use-cases.
  • Add support for ext-transient-seat-v1, allowing remoting apps such as wayvnc to create separate temporary seats for input events.
  • Add support for ext-foreign-toplevel-list-v1, the new standard protocol to obtain information about other toplevels. This will eventually be used by taskbars, window switchers and per-toplevel screen capture.
  • Add support for xdg-shell v5 with popup repositioning and hiding maximize/minimize buttons in CSD.

Changes

  • dmenu_run is no longer a dependency of the default config file.
  • The default config file now contains keybindings with pactl for volume adjustment, brightnessctl for brightness adjustment and grim for screenshots.
  • The legacy wl_drm protocol is now disabled by default (superseded by the standard linux-dmabuf-v1 protocol). This causes breakage in xorg-xwayland < 24.1.0, libva < 2.22.0 and amdvlk < 2024.Q4.1, and can be re-enabled manually via -Dlegacy-wl-drm.
  • The xwayland built-time option has been removed: Xwayland support is now enabled at build-time if it was enabled for wlroots.
Full changelog Access (1): text_input: Implement input-method popups Adam Chovanec (1): readme: update Czech translation Aleksei Bavshin (1): xdg-activation: distinguish activation and urgency requests Alexander Orzechowski (47): Don't destroy output layout on exit output: Destroy when output layout is destroyed desktop: Rename layers to shell_layers view: init function should return a success bool scene_graph: Maintain `wlr_scene_node`s for the sway tree. scene_graph: Use built-in linux dmabuf feedback handling scene_graph: Introduce sway_scene_descriptor renderer: Render scene_graph scene_graph: Port seat drag icons scene_graph: Port seatop_move_tiling indicators scene_graph: Port ext_session_v1 seat: Remove dead seatop_render function renderer: Remove in favor of scene_graph Introduce sway_text_node input: Query scene graph for relevant surface/node intersections scene_graph: Port layer_shell scene_graph: Port container server side decorations transaction: ready signals will return success bools scene_graph: Port xdg_shell scene_graph: Port xwayland xwayland: Cleanup geometry handling on commit scene_graph: Port view saved buffers Delete old damage tracking code container: Don't track outputs scene_graph: Arrange scene graph on transaction apply scene_graph: Port opacity and filter modes scene_graph: Implement toplevel clipping Fix SIGSEGV on surface destroy remove damage debug options scene_graph: port wlr_forgein_toplevel_management output enter/leave events layer_shell: Fix typo of return instead of continue Ensure get_text_width() returns a positive value layer_shell: Arrange popups even if exclusive zone doesn't change xdg_shell: Extract struct for popup descriptor layer_shell: Handle popups through popup descriptor Force bilinear scaling when scaling down sway_text_node: Allow 0 text width transaction: Reparent all container children when disabling for scratchpad 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 Andri Yngvason (1): Implement transient seat management Anna (navi) Figueiredo Gomes (2): sway/config/output.c: fix null deref on output config sway/commands/move.c: arrange new workspace Bill Li (2): Chase wlroots!4482 ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel Billli11 (1): Remove wlr_presentation in sway_server struct Daniel De Graaf (1): Fix SIGSEGV on output destroy Daniel Kahn Gillmor (1): sway-ipc(7): Escape backslashes correctly in GET_CONFIG output 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 (2): man: document supported modifier names input: add Super as alternative for Mod4 Furkan Sahin (2): swaybar: Fix 100% cpu usage if dbus dies. input/mouse: bugfix button2 being interpreted as trying to move the container James Knight (1): build: avoid git repository discovery when determining version Jan Palus (1): trigger container update after disabling urgent in timer JingMatrix (1): Add null-safety check for virtual keyboard keymaps Joan Bruguera Micó (1): layer-shell: Restore interactive layer focus code 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 (47): config/output: Split apply_output_config config/output: Introduce apply_output_configs output/config: Add apply_all_output_configs Use apply_all_output_configs to light up outputs desktop/output: Use apply_output_configs for output mgmt config/output: Remove apply_output_config output/config: Remove reset_outputs and co. config/output: Make merge_output_config static output/config: Remove unused test_output_config commands/output/toggle: Use free_output_config config/output: Refactor handling of tiered configs server: Use wlr_renderer_get_texture_formats desktop/output: Fix check if config should be stored config/output: Use all outputs for config merge config/output: Search for output config fallbacks config/output: Print output state during tests config/output: Skip VRR tests when not supported desktop/output: Debounce modesets common/pango: Disable glyph position rounding 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/transaction: Deactivate workspace on inactive outputs config/output: Add support for 6-bit render fmt config/output: Stringify render format when logging it 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 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 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 Kirill Primak (10): xdg-shell: chase events update layer-shell: don't try to unmap on destroy layer-shell: wait for an initial commit before configuring layer-shell: don't configure uninitialized surfaces Chase wlroots!4003 Chase wlroots!4443 view: drop ext_foreign_destroy protocols: use tablet-v2 xml from stable/ tearing: remove trailing whitespace tearing: fix UAF on destroy Luofan Chen (1): input: Rename WLR_INPUT_DEVICE_TABLET_TOOL to WLR_INPUT_DEVICE_TABLET Manuel Stoeckl (5): common: Drop unused render_background_image common: rename load_background_image to load_image common: move load_image to swaybar desktop/layer_shell: provide fractional scale on creation sway/commands/output: Add command to set color profile Merlin Lex (1): ext-foreign-toplevel-list: Implement protocol 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 Ricardo Steijn (1): Add support for tearing-control-v1 Ronan Pigott (4): launcher: track the seat in the launcher ctx commands/move: do not force focus on the moved container view: send scale notification when the output is known xdg-activation: launcher tokens are activation requests Scott Dubinsky (1): Remove unguarded double include Sergei Trofimovich (1): sway/config.c: use `memcpy()` for known buffer size ShootingStarDragons (1): fix: sway crashes if switch to another workspace with surface when IME popup is shown Simon Ser (66): Add wlr/util/transform.h includes Pass wl_display to wlr_output_layout desktop/xwayland: correctly handle association on o-r change Drop fglrx detection Detect Nvidia proprietary driver via drmGetVersion() Detect proprietary DisplayLink drivers input/seat: drop exclusive_client input/{keyboard,switch}: rename input_inhibited variable to locked input/seat: inline seat_set_exclusive_client() with NULL client input/seat: rename seat_set_exclusive_client() input/seat: simplify seat_is_input_allowed() Check wlr_pointer_constraint_v1_state.cursor_hint.enabled input: reconfigure send_events on output hotplug readme: add swaybg as optional dep Drop wl_drm Mark DRM lease protocol privileged Clarify gdk-pixbuf dependency purpose Add debug flag to re-enable wl_drm build: bump version to 1.10-dev Drop old security config remnants commands/primary_selection: drop duplicate bool parsing commands: note how xwayland/primary_selection are reset on reload commands: make primary_selection a config-only command config: use format_str() instead of hand-rolled snprintf() Fix build with wlroots DRM backend disabled Drop unnecessary includes from sway/server.h input/text_input: fix dangling listeners Define _POSIX_C_SOURCE globally Add release script Convert to new pointer enums config: error out on keysym translation XKB state failure config: add fallback without env vars for keysym translation XKB keymap Fetch input device vendor/product from libinput xdg-shell: implement popup repositioning xdg-shell: send WM capabilities config/output: drop enabling flag server: fix wlr_seat use-after-free on exit Re-create renderer when lost man: drop fractional scale warning man: document that the scale might be adjusted input: pass wlr_seat_client to wlr_seat_touch_notify_cancel() config/output: fix NULL derefs in store_output_config() config/output: drop fast path in store_output_config() tree/container: ensure pixman rect is valid in container_arrange_title_bar() build: disable wayland-protocols subproject tests by default build: drop xwayland option server: hide xdg_output from unprivileged clients input/text_input: ensure keyboard is set before sending modifiers Drop server.h include from input/input-manager.h Set color transform when calling wlr_scene_output_build_state() tree/view: set default min size to 1×1 tree/view: ensure content_{width,height} is positive desktop/output: unify page-flip codepath tree/container: drop decl for container_update_textures_recursive() sway_text_node: avoid unnecessary redraws ci: pin wlroots to v0.18.x desktop/xwayland: don't restack when marking window as inactive Bind a few utilities to special keys in default config Switch default config to wmenu-run Add support for alpha-modifier-v1 build: bump version to 1.10-rc1 release: push tags before creating GitHub release build: bump version to 1.10-rc2 build: bump version to 1.10-rc3 build: bump version to 1.10-rc4 build: bump version to v1.10 Steffen Dirkwinkel (1): config/output: support DRM_FORMAT_ARGB8888 Tamino Bauknecht (2): sway: raise error on non-accessible background file sway/output: Improve logging of swaybg execvp failure and more checks Tarcísio Eduardo Moreira Crocomo (2): Implement clickfinger_button_map support. build: bump libinput version required Violet Purcell (2): sway/config.c: only reset primary_selection at launch Update for versioned wlroots files apreiml (1): Update README.de.md to match the EN one bretello (2): fix crash when setting urgency on an hidden scratchpad container prevent workspace_find_container from crashing with NULL workspaces llyyr (13): meson: bump wlroots version after 0.17.0 release Chase wlroots!4440 input/text_input: parent wlr_box may be uninitialized text_input: don't destroy scene_node twice ipc: add `floating` property to GET_TREE ipc: add `scratchpad_state` property to GET_TREE input/keyboard: don't send key release if we don't have focused surface input/seat: don't send redundant leave/enter on device creation input/keyboard: refactor into sway_keyboard_set_layout input/keyboard: don't set layout for virtual keyboard device xdg_shell: don't send configure events to uninitialized surfaces sway/tree/container: don't trunc coords in `floating_fix_coordinates` sway/input/keyboard: always set active keyboard if there is none mrusme (1): Update sway.5.scd novenary (2): transaction: fix missing top border with hide_lone_tab ipc: properly check for titlebars thal (1): tree/view: Do not clip to geometry if using CSD
Source: README.md, updated 2024-10-27