1.8-rc1
Pre-release
Pre-release
Sway 1.8-rc1 contains 175 changes from 67 contributors.
This pre-release depends on wlroots 0.16.0. See the wlroots release notes.
New features
- A new
bindgesture
command can be used to bind actions to touchpad gestures - More robust and secure screen lockers via the new
ext-session-lock-v1
protocol (supported by swaylock) - A new
output unplug
command has been added to remove virtual outputs - libinput's new "disable while trackpointing" setting and high-resolution scroll wheel events are now supported
- xdg-activation-v1 is now used for more reliable workspace matching when launching new clients
- Various improvements for the Vulkan renderer
Changes
- On Linux,
CAP_SYS_NICE
can be set to improve scheduling: #6994 - Manufacturer names in output identifiers might have changed: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3541#note_1384124
- SUID-root is no longer supported: #7044
- The
output dpms
command has been deprecated (superseded byoutput power
): #7083 - The pcre dependency has been replaced with pcre2: #6883
Full changelog
-k (2):
Add descriptions for `stacking` and `tabbed` layouts
man: Fix trailing spaces
Alan (1):
Update grimshot.1.scd
Aleksei Bavshin (1):
xdg-shell: use toplevel geometry to adjust the popup box
Alex Maese (3):
sway: Add non-desktop-output type
sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
swaymsg: show non-desktop property when pretty printing outputs
Alexander Browne (1):
Minor update to focus_on_window_activation
Alexander Gramiak (1):
sway/input: don't pass possibly invalid modifiers pointer
Alexander Orzechowski (2):
container_floating_set_default_size: Store workspace size box on the stack
workspace_create: Don't allow NULL name
Alice Carroll (1):
Support cursor capture in grimshot
Andri Yngvason (1):
sway/commands/output: Add command for unplugging non-physical outputs
Baltazár Radics (3):
ipc: make get_deco_rect check config->hide_lone_tab
man: sway(5) move fixes
container_get_siblings: handle NULL workspace
Bill Li (1):
Updating criteria checking with PCRE2
Callum Andrew (1):
criteria: allow matching for NULL string criteria
Daniel De Graaf (7):
Avoid format-truncation warning
Shuffle variables to satisfy -Werror=restrict
Implement ext-session-lock-v1
Avoid inspecting a NULL view in seat_set_focus
ext-session-lock: disable direct scan-out when locked
Rework session lock keyboard focus handling
Fix focus tracking when session lock is active
David Rosca (1):
container: Fix crash when view unmaps + maps quickly
David96 (1):
commands/move: Fix crash when pos_y is omitted
Eskil (1):
Add Swedish README
Ferdinand Schober (4):
allow pointer_constraints on layer_shell surfaces
check for NULL
use seat directly
Use keyboard_state.focused_surface directly
Filip Szczepański (1):
Fix crash in xdg_activation_v1.c
Florian Franzen (1):
sway: add bindgesture command
Greg Depoire--Ferrer (1):
swaynag: move close_button up to fix SIGSEGV
Hongyi (1):
Polish the language in README.zh-CN.md & sync with English one
Hugo Osvaldo Barrera (3):
Avoid unecessary string copy
Reject font values that are invalid for pango
Reuse parsed PangoFontDescription
Joan Bruguera (2):
swaybar: Prioritize hotspot events to bar bindings
swaybar: Make hotspots block bar release bindings
Kenny Levinsen (3):
meson: check: false on run_command
Print deprecation notice when running SUID
Refuse to start when SUID is detected
Kirill Chibisov (1):
build: fix building with basu
Kirill Primak (9):
swaynag: remove buffer destruction condition
chore: chase wlr_output_layout_get_box() update
Chase wlroots xdg-shell refactor
chore: chase wlroots xdg-shell update
xdg-shell: schedule a configure on maximize request
input: chase delta_discrete semantics change
ci: install hwdata
Use wlr_damage_ring
output: set damage ring bounds to pixel values
Leonardo Hernández Hernández (2):
sway/input: fix bad position of wlr_drag
sway/input: wlr_seat_keyboard() now takes wlr_keyboard
LordRishav (1):
Add a Hindi (हिन्दी) translation to the README
Manuel Stoeckl (2):
sway/main: move constants off the stack
Use shm_open instead of mkstemp
Marco Rubin (1):
Translated README into Italian
Martin Michlmayr (1):
sway-output.5: improve display of parameter
Michael Weiser (1):
config: Remove unused mouse binding structure
Moon Sungjoon (1):
sway/input: destroy sway_switch properly
Muhamed Hobi (1):
Fix snprintf compiler warning
Nathan Schulte (2):
swaybar: fix tray_padding vs min-height re: scale
swaybar: fix tray item icon scaling, positioning
Nicolas Avrutin (1):
commands/focus: fix segfault when no container is already focused.
Nihal Jere (9):
swaynag: die on all allocation failures
swaynag: allocate button_details with details
swaynag: statically allocate button_close, and move declaration
swaynag: remove unnecessary zero of swaynag struct
swaynag: remove redundant status variables in main
remove unnecessary strlen call
swaynag: do error checking and rename read_from_stdin
swaynag: improve robustness when loading config
swaynag: combine consecutive declaration/assignments
Oğuz Ersen (1):
bash-completion: localize variables
Patrick Hilhorst (1):
treat fullscreen windows as 'tiled' for commands/focus
Puck Meerburg (2):
tree: support formatting null titles
criteria: allow matching on empty (NULL) titles
Ronan Pigott (11):
cmd/swap: error on swapping a container with itself
root: move the workspace matching code to its own file
node: prettify node type names
launcher: track workspaces by node
launcher: use xdga tokens
launcher: rename pid_workspace to launcher_ctx
view: associate launch contexts with views
launcher: initialize launcher_ctxs once on startup
launcher: fudge the interface a bit
launcher: export xdga tokens and use them for workspace matching
launcher: export X startup ids and use them for workspace matching
Rouven Czerwinski (3):
transaction: destroying nodes aren't hidden
server: request xdg-shell v2
realtime: request SCHED_RR using CAP_SYS_NICE
Sefa Eyeoglu (1):
build: bump wlroots dependency to 0.16.0
Seth Barberee (1):
[IPC] Add repeat delay/rate info to keyboard
Simon Ser (48):
swaymsg: replace if with switch in pretty_print
swaymsg: add GET_TREE pretty-printing
swaybar: fix errno handling in status_handle_readable
Add cairo_image_surface_create error handling
build: bump version to 1.8-dev
Destroy sub-surfaces with parent layer-shell surface
Add safety assert in parse_movement_unit
Upgrade for wlroots surface refactoring
commands/focus: drop trailing whitespace
build: execute wlroots subproject before finding deps
Use bools for CLI flags
readme: add link to Italian translation
readme: sort language list alphabetically
readme: use relative links for translations
xdg-shell: use wlr_xdg_toplevel in sway_view
xdg-shell: use wlr_xdg_popup in sway_xdg_popup
Remove all sprintf calls
Remove WLR_SWITCH_STATE_TOGGLE usage
swaybar: remove swaybar_output.input_region
swaybar: set opaque region
Replace strncpy with memcpy
De-duplicate IPC output descriptions
Handle NULL output make/model/serial
build: link with -pthread
ipc: remove chatty debug log messages
config/output: use wlr_output_commit_state
Remove access to wlr_input_device union
Rename dpms output command to power
ipc: add "power" to output reply
config.in: switch to `output power`
Remove internal references to DPMS
Enable single-pixel-buffer-v1
ipc: drop WLR_OUTPUT_ADAPTIVE_SYNC_UNKNOWN case
config/output: test adaptive sync
ipc: expose mode picture aspect ratio
swaymsg: show mode picture aspect ratio
build: simplify protocol paths
Fix leaks in criteria_destroy()
Add support for ext-idle-notify-v1
Use wl_signal_emit_mutable()
lock: fix crash on output destroy
ci: checkout wlroots 0.16.0
build: drop wayland-scanner fallback
build: unify server & client protocol generation
build: drop "server" from target name for protocol code
build: drop intermediate libraries for protocols
build: drop unused wayland-egl dependency
build: bump version to 1.8-rc1
Simon Zeni (5):
sway/commands: add missing wlr_keyboard interface include in xkb_switch_layout
sway/input: use wlr_input_device from input device base
sway/input/cursor: take device mm size from wlr_tablet
sway/input/seat: take output name from specialized input device
sway/input: follow up wlroots input device events renaming
Thomas Hebb (4):
input/seat: unset has_focus when focus_stack becomes empty
Remove some erroneous apostrophes in comments
Don't enter seatop_move_floating when fullscreen
layer_shell: keep output non-NULL wherever possible
Thomas Jost (1):
Strip quotes in bindsym --input-device=...
Tobias Bengfort (1):
tray: do not render passive items
Tudor Brindus (6):
input/cursor: count pointer gestures as idle activity
input/cursor: treat swipe begin as idle activity too
input/cursor: pass through pointer hold gestures
input: focus floating container when clicked on border
input: focus container when scrolling on titlebar
input: tweak focus behavior to allow focusing parent containers
Tuomas Yrjölä (1):
xwayland: listen to `request_activate` event
Victor Makarov (1):
xkb_switch_layout: fix relative layout switches
Yaroslav de la Peña Smirnov (1):
Fix keymap being NULL and segfaulting on dev add
Yasin Silavi (1):
Fix farsi label
cparm (1):
Avoid double free in criteria_destroy()
kraftwerk28 (2):
Chase wlroots X11 hints update
Allocate enough space for `cmd_results->error`
llyyr (2):
swaymsg: fix floating_nodes being ignored
grimshot: fix tilde expansion within quotes
ndren (1):
Replace pcre with pcre2
ohno418 (1):
Improve Japanese translation
pudiva chip líquida (1):
Support libinput's 1.21 new dwtp option
zkldi (1):
fix: remove redundant empty statement in main.c
マリウス (1):
man: Add XWayland information