Releases: swaywm/sway
Releases Β· swaywm/sway
sway 1.9-rc1
Sway 1.9-rc1 contains 227 changes from 65 contributors.
This pre-release depends on wlroots 0.17.0. See the wlroots release notes.
New features
- All of the enhancements from wlroots 0.17, including support for the new content-type-v1, xwayland-shell-v1, wp-fractional-scale-v1, security-context-v1 and cursor-shape-v1 protocols
- Improved xdg-activation-v1 support with workspace tracking and multi-seat
- The rendering code has been ported to the new wlroots rendering API, yielding better performance
- A new config option to disable primary selection
- A new input commands to set libinput's rotation angle and scroll button lock
- Tablet tool buttons can now be used for floating mode resize
- The IPC output event is now supported
- Add support for layer-shell's on-demand keyboard interactivity
Changes
- The default menu has been changed to wmenu: #7384
- The KDE idle protocol is no longer supported (superseded by the standard idle-notify-v1 protocol)
Full changelog
33KK (1):
Fix `bindsym --to-code` not respecting input configs
Aidan Dang (1):
Add `primary_selection` config option
Alexander Courtis (1):
Apply new adaptive sync value from wlr-output-management
Alexander Orzechowski (16):
workspace_create: Don't allow NULL name
warp_to_constraint_cursor_hint: Handle NULL view
swaybar: Set opaque region properly
swaybar: Lift background clearing out of main rendering function
Chase wlroots!4067
xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
render: pass rendering state together in a struct
render: Don't pass matrix into render_texture
render: Use wlr_render_pass
Don't crash if there is no damage during render
gamma_control_v1: Reset dirty flag
render: Use wlroots scale filter
swaybar: Implement wp_cursor_shape_v1
swaynag: Implement wp_cursor_shape_v1
Chase wlroots!4331
output: Destroy when output layout is destroyed
Ankit Pandey (3):
commands/move: Warp cursor after moving workspace to another output
root: Try to preserve relative positions of floating containers
root: Set inactive focus when scratchpad is moved to new workspace
Artturin (2):
chase wlroots wlr_renderer_begin_buffer_pass change
chase wlroots 'presentation-time: add separate helper for zero-copy '
AsciiWolf (2):
Translate README to Czech
Fix typo in Czech README translation
Ashraf (1):
Translate README to Arabic
BaltazΓ‘r Radics (2):
Fix input command order (rotation_angle)
ipc: add ability to subscribe to output event
Bill Li (1):
chase wlroots!4411
Carl Smedstad (6):
Remove duplicate declarations
Add missing includes & remove duplicates
Make cmd_handler.command const
Remove redundant return statements
Replace math functions that promote float to double
Use correct length for strncmp comparison
Cedric Sodhi (1):
Added reference for event types to swaymsg manpage
Cezary DroΕΌak (1):
input/libinput: add scroll_button_lock method
Daniel Hill (1):
Fix map_to_output * turning off device
Dudemanguy (4):
view: update wlr_toplevel size on client resizes
Revert "view: update wlr_toplevel size on client resizes"
xdg_shell: update wlr_toplevel size on client resizes
xdg_shell: don't update wlr_toplevel if the container has no size yet
EBADBEEF (1):
view: re-apply criteria when window gets unmapped
Elyes Haouas (1):
Fix old style function definitions
Erik Reider (4):
Init the damage_ring bounds on output creation
Fix damage-ring bounds not being set when unplugging -> plugging in monitor
Fix layer old damage not being offset by the monitor layout coords
Add support for wlr-layer-shell ON_DEMAND keyboard interactivity
Hodong (1):
swaybar: remove the argument of StatusNotifierHostRegistered
Jan Beich (1):
readme: Stop recommending setuid bit for non-logind systems
Joan Bruguera (2):
swaybar: Prioritize hotspot events to bar bindings
swaybar: Make hotspots block bar release bindings
Joe Kappus (1):
build: bump wlroots dependency to 0.17.0
Johan SkΓΆld (1):
i3 compat: Adding support for the `all` criteria
John Chadwick (1):
Improve tablet tool button handling.
Kenny Levinsen (4):
seat: Avoid sending redundant keymaps on reload
seat: Set keyboard if seat keyboard is NULL
render: Apply clip to rendered texture correctly
render: Clear using wlr_output dimensions
Kirill Primak (9):
output: set damage ring bounds to pixel values
input/tablet: handle focusing NULL surface
xwayland: don't rely on event source being data
chore: chase wlroots map logic unification
lock: listen to the correct map signal
xwayland: fix mapped state check in OR handlers
chore: chase wlroots xdg-surface role rework
view: check if the buffer was uploaded on save
xdg-shell: send maximized if tiled isn't supported
Leonardo HernΓ‘ndez HernΓ‘ndez (1):
chase wlroots!4316
Lina Banik (1):
seat: Fix reloading cursor theme after change
Lucas Zampieri (1):
Add libinput RotationAngle
Manuel Stoeckl (4):
Use shm_open instead of mkstemp
swaynag: call swaynag_destroy on clean exit
swaybar: handle wayland-cursor failures
sway/server: Fix null pointer crash when Xwayland disabled
Mark Bolhuis (1):
input: Move wlr_pointer_gestures_v1 to sway_input_manager
Matt Fellenz (1):
Use locale time format for default bar command
Mukundan314 (1):
swaybar: always subscribe to mode and workspace
NemuiBanila (1):
seat: Fix cursor theme reload for tablet tool
Nick Kipshidze (1):
Add Georgian README
Radical (1):
Add Norwegian READMR
Robin Jarry (1):
Allow windows in scratchpad to set the urgent flag
Ronan Pigott (18):
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
criteria: be lenient on window_role and instance too
input: enable user xkb configs with cap_sys_nice
view: make request_activate take a seat
launcher: make launcher context seat aware
launcher: support external launcher tokens
xdg-activation: fix urgency when the client does not specify a seat
container: rehome the container_swap function into container.c
Add a .mailmap file
Rouven Czerwinski (1):
gamma_control_v1: handle destroyed output
Sergei Trofimovich (2):
swaynag/config.c: fix build against gcc-14 (-Walloc-size)
sway/config.c: use `memcpy()` for known buffer size
Shaked Flur (1):
man: add --inhibited and --no-repeat to bindsym and bindcode usage
Simon Ser (94):
input/seat: locally compute drag icon offset
Listen to the output request_state event
ipc: add view content type
Update for wlroots!3814
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.9-dev
Make GLES2 optional
Make DRM backend optional
Make session optional
Make libinput backend optional
build: remove trailing newline at end of file
build: move completions to separate file
build: fix have_xwayland when xcb-icccm is not found
Chase breaking changes in wlroots!3903
ci: install Xwayland .pc file
swaynag: fix NULL font description
swaynag: drop swaynag_type.font
man: fix typo in output disable docs
tree/container: drop unnecessary check in container_get_siblings()
Send wl_surface.enter for ext-session-lock surfaces
Fix indentation in surface_is_xdg_popup()
Fix pointer events for ext-session-lock surfaces
Check return value of wlr_renderer_begin()
Switch default menu to wmenu
ipc: add support for output event
Convert to wlr_xwayland_surface_try_from_wlr_surface()
Convert to *_try_from_wlr_surface()
swaymsg: print output power status
swaymsg: s/inactive/disabled/
ci: install hwdata-dev on Alpine
Use wlr_linux_dmabuf_feedback_v1_init_with_options()
Introduce surface_{enter,leave}_output()
Add support for fractional-scale-v1
Update surface fractional scale on output change
layer-shell: enter output before surface is mapped
Adjust scale for fractional-scale-v1
Constify pixman_region32_t for rendering functions
Move output commit out of output_render()
Check for empty damage before attaching render buffer
man: deprecate seat cursor move/set/press/release
ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
Remove duplicate wlr_damage_ring_set_bounds() call
Pass version to wlr_compositor_create()
Skip direct scan-out commit when damage is empty
Set output damage duri...
sway 1.8.1
Alexander Courtis (1): Apply new adaptive sync value from wlr-output-management Alexander Orzechowski (1): warp_to_constraint_cursor_hint: Handle NULL view Carl Smedstad (1): Use correct length for strncmp comparison Kate (1): Allow setting the font size to 0 Kirill Primak (1): input/tablet: handle focusing NULL surface Simon Ser (4): man: fix typo in output disable docs Send wl_surface.enter for ext-session-lock surfaces Fix pointer events for ext-session-lock surfaces build: bump version to 1.8.1 Tobias Bengfort (1): focus_on_window_activation: raise if floating Εukasz Adamczak (2): Correct window_rect.y with hide_edge_borders Clarify documentation for window_rect
1.8
Sway 1.8 contains 186 changes from 69 contributors.
This 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 from wlroots' 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
Ankit Pandey (1):
commands/move: Warp cursor after moving workspace to another output
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 (5):
meson: check: false on run_command
Print deprecation notice when running SUID
Refuse to start when SUID is detected
seat: Avoid sending redundant keymaps on reload
seat: Set keyboard if seat keyboard is NULL
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 (12):
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
criteria: be lenient on window_role and instance too
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 (54):
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
build: fix have_xwayland when xcb-icccm is not found
build: bump version to 1.8-rc2
build: bump version to 1.8-rc3
build: bump version to 1.8-rc4
swaynag: fix NULL font description
build: bump version to 1.8
Simon Zeni (5):
sway/commands: add missing wlr_keyboard interface include in xkb_switch_layout
sway/input:...
sway 1.8-rc4
Ankit Pandey (1): commands/move: Warp cursor after moving workspace to another output Kenny Levinsen (1): seat: Set keyboard if seat keyboard is NULL Simon Ser (1): build: bump version to 1.8-rc4
sway 1.8-rc3
Kenny Levinsen (1): seat: Avoid sending redundant keymaps on reload Ronan Pigott (1): criteria: be lenient on window_role and instance too Simon Ser (1): build: bump version to 1.8-rc3
sway 1.8-rc2
Simon Ser (2): build: fix have_xwayland when xcb-icccm is not found build: bump version to 1.8-rc2 nerdopolis (1): Fix build on Debian Stable
1.8-rc1
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 Jo...
sway 1.7
Sway 1.7 contains 211 changes from 77 contributors.
This release depends on wlroots 0.15.0. Also see the wlroots release notes: https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.15.0.
New features
- Add
output render_bit_depth
command to enable high-bit depth composition. - Tabs can now be dragged with the mouse.
- Zero-copy direct scanout for fullscreen windows should work more reliably thanks to linux-dmabuf surface feedback.
- Add support for virtual reality headsets via DRM leasing.
- Wayland-native urgency has been implemented via the xdg-activation-v1 extension.
- Add
output dpms toggle
command to easily toggle screen blanking from scripts. - Add
gaps <type> <scope> toggle <px>
,smart_gaps inverse_outer
andsplit none
commands. - Add
output modeline
command to set a full custom DRM mode when custom modes don't work out-of-the-box. - Add
client.focused_tab_title
color option.
Changes
--my-next-gpu-wont-be-nvidia
has been removed, use--unsupported-gpu
instead. The Nvidia proprietary driver remains unsupported. See b48cb6b for details.- The terminal emulator in the default config file has been changed to foot.
- swaybar and swaynag can now be disabled at build-time.
- Titlebars now have a fixed height, they no longer resize depending on characters used in the title.
Full changelog
Aleksei Bavshin (2):
ipc: make `bar <bar_id> mode|hidden_state` behave as documented
xdg-shell: use toplevel geometry to adjust the popup box
Alexander Orzechowski (1):
view: Fix null dereference
Aljaz Gantar (2):
fix type error when class_name none
refactor icon_for_window function
Bart Pelle (1):
docs: fix invalid release signing keys
Bartel Sielski (1):
idle_inhibit: Fix tree view after changes in commit 152a559e
BartΕomiej Burdukiewicz (1):
main: removed vc4 detection code.
Bill Doyle (1):
Only defer seat attachment during initial startup
Birger Schacht (1):
Fix a couple of typos
Caduser2020 (1):
Simplify swaybar/swaynag scaling code
Christian Llupo (1):
README: Added Greek translation
Cole Mickens (1):
meson.build: require wayland-protocols 1.24
Daniel De Graaf (1):
Fix overly-wide mark textures
Daniel EklΓΆf (2):
sway: commands: exec: restore SIGPIPE before exec:ing
sway: restore SIGPIPE handler before exec:ing swaybar
Daniel Otero (1):
config: Fix swaybar pango_markup inconsistency
David Rosca (4):
seatop_down: Change type of sx, sy to double in begin_seatop_down
Add `output modeline` command
xwayland: Clear wlr_xwayland_surface in handle_destroy
container: Fix crash when view unmaps + maps quickly
David96 (1):
commands/move: Fix crash when pos_y is omitted
Dominique Martinet (1):
view_destroy: fix use-after-free with subsurface_destroy
Drew DeVault (1):
config.in: change terminal emulator to foot
Dudemanguy (2):
container: ignore borders in fullscreen windows
xdg-decoration: let floating clients set borders
Dylan Araps (1):
Add meson options to enable/disable swaybar and swaynag
Elyes HAOUAS (2):
desktop/layer_shell.c: Fix misspelled "exclusive"
sway-input.5.scd: Fix spelling errors
Elyesa (1):
Add Turkish README
Eric Engestrom (2):
cmd_bind_or_unbind_switch: fix copy/paste typo error message
sway: allow IPCs on proprietary drivers
Erik Reider (1):
Added scroll_factor input variable to ipc output
Evgeniy Khramtsov (1):
commands: Remove unused code after 1d3681f52135
Hugo Osvaldo Barrera (5):
grimshot: Exit 1 on cancellation
Use fixed titlebar heights
Deduplicate code for rendering titlebar texts
Avoid unecessary font metric calculations
Drop hardcoded font metric values
Issam E. Maghni (1):
cairo: Replace <cairo/cairo.h> by <cairo.h>
IstvΓ‘n DonkΓ³ (1):
Add Hungarian translation for the README
Ivan Fedotov (1):
Add toggle logic inside DPMS handler
Jack Byrne (1):
Change 'Danish' to 'Dansk' in README
James Edwards-Jones (1):
swaynag: adds option to set wayland shell layer
Jari Ronkainen (1):
Improve built-in touchscreen detection
Jason Nader (4):
swaymsg: use INT_MAX max JSON depth when parsing IPC response
swaymsg: be explicit about the json parser error
swaymsg: fix misplaced return value
refactor: use JSON_MAX_DEPTH everywhere
Jonas GroΓe Sundrup (3):
clarify the type of raw output
change incorrectly documented output types
cross-reference further documentation
Kenny Levinsen (9):
ci: Install libseat
meson: libseat is no longer optional
Remove usage of surface->sx|sy
desktop/render: Pass explicit clip box to render
input: Move get_current_time_msec in from util
ci: Test wlroots static linking
readme: Align Danish translation with main README
meson: check: false on run_command
Print deprecation notice when running SUID
Kirill Chibisov (1):
build: fix building with basu
Kirill Primak (12):
view: fix saved buffer order
surface: chase wlr subsurface list/link change
render: fix -Ddamage=rerender
view: fix child position calc
xdg-shell: chase wlr xdg toplevel refactor
Revert "xdg_shell: schedule configure on maximize requests"
xdg-shell: remove unused request_maximize listener
layer-shell: chase wlr layer surface refactor
layer-shell: check `committed` bitmask
layer-shell: fix commit handler
container: fix surface_is_popup()
output: remove surface buffer damage check
Ludvig Michaelsson (1):
swaybar: signal status command's process group
M.Zeinali (1):
readme: use right-to-left marks in ir translation
Manuel Stoeckl (3):
commands/exec: stop truncating >4095-byte commands
Update URL to wlroots project (GitHub->GitLab)
Add 'output render_bit_depth [8|10]' command
Michael Weiser (1):
Prevent use-after-free on first bar subcommand error
Nathan Schulte (5):
swaybar: properly draw urgent block right border
swaybar: properly draw blocks with transparent black border
swaybar: fix cairo_font_options leak
swaybar: fix tray_padding vs min-height re: scale
swaybar: fix tray item icon scaling, positioning
Nihal Jere (2):
config.in: use portable hour specifier
config.in: use swaynag -B instead of -b
Patrick Hilhorst (1):
treat fullscreen windows as 'tiled' for commands/focus
Ragnar Groot Koerkamp (5):
Fix #6299 Disable auto_back_and_forth for next_on_output
Move auto_back_and_forth logic out of workspace_switch
Only call workspace_auto_back_and_forth when needed
Revert "Add workspace {prev,next}_on_output --create"
Update clang format to better match existing code
Rahiel Kasim (1):
fix typo in sway-output.5.scd
Rasmus Moorats (1):
fix cursor input for layer-shell surfaces
RoastVeg (1):
Handle border width and height on minimum floating sizes
Ronan Pigott (13):
output: damage whole output when exiting scanout
container: retain focus position on floating enable
cmd_fullscreen: allow fullscreen on fullscreen split containers
workspace: reap empty parents when adding tiles
xdg-shell: ignore unecessary fullscreen request ouput hints
cmd_fullscreen: ignore fullscreen request on workspaces
view: commit transactions for foreign toplevel requests
layer_shell: damage previous area when a surface shrinks
command: implement split none
commands: update split none command for a047b5ee4
output: change output::destroy to output::disable
output: emit node::destroy event
cmd/swap: error on swapping a container with itself
Rouven Czerwinski (2):
view: handle case where map_ws is NULL
transaction: destroying nodes aren't hidden
Sefa Eyeoglu (3):
fix: handle NULL from json_tokener_new_ex
fix: use sane value for json_tokener max_depth
refactor: use sway_abort instead
Simon Plakolb (2):
input: Use seatop_down on layer surface click
seatop_down: End if surface is destroyed or other seatop starts
Simon Ser (63):
ci: add xcb-util-wm dependency for wlroots
Remove advice about Firefox from issue template
readme: make it clearer that meson takes a dir as argument
build: bump version to 1.6
build: update wlroots dependency version to 0.14.x
build: stop checking for logind
desktop/render: remove unused wlr_gles2_texture_attribs
Remove WLR_HAS_XDG_FOREIGN checks
Log wlroots version on startup
Avoid creating zero-sized textures for titlebars
Use cairo_image_surface_get_stride instead of guessing it
Avoid creating zero-sized textures for marks
Use execlp("sh") instead of execl("/bin/sh")
commands/exec_always: log error on execlp failure
Remove support for arbitrary rotations
build: remove sd-bus status item
readme: switch back to IRC web client
Implement xdg-activation-v1
Iterate over subsurfaces below the parent surface
build: bump wlroots dependency to 0.15.0
contrib: drop incr_version script
build: use meson.global_build_root()
build: use Dependency.get_variable instead of get_pkgconfig_variable
build: use ExternalProgram.full_path instead of path
ci: make Meson warnings fatal
tree/container: fix indentation
Update wlr_box includes
Add support for touch frame events
Fix wl_pointer.fra...
sway 1.7-rc3
Aleksei Bavshin (1): xdg-shell: use toplevel geometry to adjust the popup box Kenny Levinsen (2): meson: check: false on run_command Print deprecation notice when running SUID Kirill Chibisov (1): build: fix building with basu Simon Ser (3): Add safety assert in parse_movement_unit ci: checkout wlroots 0.15.0 build: bump version to 1.7-rc3
sway 1.7-rc2
David Rosca (1): container: Fix crash when view unmaps + maps quickly David96 (1): commands/move: Fix crash when pos_y is omitted Nathan Schulte (2): swaybar: fix tray_padding vs min-height re: scale swaybar: fix tray item icon scaling, positioning Simon Ser (2): Destroy sub-surfaces with parent layer-shell surface build: bump version to 1.7-rc2 Thomas Hebb (1): input/seat: unset has_focus when focus_stack becomes empty