Releases: swaywm/sway
Releases · swaywm/sway
1.10
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 andgrim
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...
1.10-rc4
sway 1.10-rc4 Alexander Orzechowski (2): layer_shell: Arrange exclusive zone clients first layer_shell: Restore sway 1.9 ordering Jan Palus (1): trigger container update after disabling urgent in timer Kenny Levinsen (5): 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 Simon Ser (1): build: bump version to 1.10-rc4
1.10-rc3
sway 1.10-rc3 Furkan Sahin (1): input/mouse: bugfix button2 being interpreted as trying to move the container ShootingStarDragons (1): fix: sway crashes if switch to another workspace with surface when IME popup is shown Simon Ser (1): build: bump version to 1.10-rc3
1.10-rc2
sway 1.10-rc2 Alexander Orzechowski (1): Fix alpha-modifier-v1 Kenny Levinsen (1): Re-init renderer for all outputs on lost context Simon Ser (2): release: push tags before creating GitHub release build: bump version to 1.10-rc2
1.10-rc1
Sway 1.10-rc1 contains 228 changes from 43 contributors.
This pre-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 andgrim
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
-k (2):
Add descriptions for `stacking` and `tabbed` layouts
man: Fix trailing spaces
33KK (1):
Fix `bindsym --to-code` not respecting input configs
Access (1):
text_input: Implement input-method popups
Adam Chovanec (1):
readme: update Czech translation
Aidan Dang (1):
Add `primary_selection` config option
Alan (1):
Update grimshot.1.scd
Aleksei Bavshin (3):
ipc: make `bar <bar_id> mode|hidden_state` behave as documented
xdg-shell: use toplevel geometry to adjust the popup box
xdg-activation: distinguish activation and urgency requests
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 Courtis (1):
Apply new adaptive sync value from wlr-output-management
Alexander Gramiak (1):
sway/input: don't pass possibly invalid modifiers pointer
Alexander Orzechowski (61):
view: Fix null dereference
container_floating_set_default_size: Store workspace size box on the stack
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
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
Alice Carroll (1):
Support cursor capture in grimshot
Aljaz Gantar (2):
fix type error when class_name none
refactor icon_for_window function
Andri Yngvason (2):
sway/commands/output: Add command for unplugging non-physical outputs
Implement transient seat management
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
Anna (navi) Figueiredo Gomes (2):
sway/config/output.c: fix null deref on output config
sway/commands/move.c: arrange 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 (5):
ipc: make get_deco_rect check config->hide_lone_tab
man: sway(5) move fixes
container_get_siblings: handle NULL workspace
Fix input command order (rotation_angle)
ipc: add ability to subscribe to output event
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
Bill Li (4):
Updating criteria checking with PCRE2
chase wlroots!4411
Chase wlroots!4482
ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel
Billli11 (1):
Remove wlr_presentation in sway_server struct
Birger Schacht (1):
Fix a couple of typos
Caduser2020 (1):
Simplify swaybar/swaynag scaling code
Callum Andrew (1):
criteria: allow matching for NULL string criteria
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
Christian Llupo (1):
README: Added Greek translation
Cole Mickens (1):
meson.build: require wayland-protocols 1.24
Daniel De Graaf (9):
Fix overly-wide mark textures
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
Fix SIGSEGV on output destroy
Daniel Eklöf (2):
sway: commands: exec: restore SIGPIPE before exec:ing
sway: restore SIGPIPE handler before exec:ing swaybar
Daniel Hill (1):
Fix map_to_output * turning off device
Daniel Kahn Gillmor (1):
sway-ipc(7): Escape backslashes correctly in GET_CONFIG output
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):
...
sway 1.9
Sway 1.9 contains 238 changes from 67 contributors.
This 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
Aleksei Bavshin (1):
xdg-activation: distinguish activation and urgency requests
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 (19):
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
launcher: track the seat in the launcher ctx
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 (100):
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() c...
sway 1.9-rc4
Aleksei Bavshin (1): xdg-activation: distinguish activation and urgency requests Ronan Pigott (1): launcher: track the seat in the launcher ctx Simon Ser (3): commands: make primary_selection a config-only command Fix build with wlroots DRM backend disabled build: bump version to 1.9-rc.4
sway 1.9-rc3
Simon Ser (1): build: bump version to 1.9-rc.3 Violet Purcell (1): sway/config.c: only reset primary_selection at launch
sway 1.9-rc2
Simon Ser (1): build: bump version to 1.9-rc.2 Tamino Bauknecht (1): sway/output: Improve logging of swaybg execvp failure and more checks
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...