Releases: swaywm/sway
sway 1.5.1
Note: the PGP signing key has changed to 34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48.
This is a bugfix release which adds support for wlroots 0.12.0.
Simon Ser (2):
build: bump wlroots dependency to 0.12.0
build: bump version to 1.5.1
sway 1.5
Sway 1.5 contains 284 changes from 78 contributors. This release introduces a lot of new features, but also contains numerous bug fixes.
The recommended wlroots version to use with this release is 0.11.0.
New features
- Headless outputs can now be created dynamically via the
create_output
command, and can be used with WayVNC - Input method editors (IME) are now supported via the input-method and
text-input protocols - Adaptive synchronization (aka. variable refresh rate, VRR) can be enabled
to reduce stuttering in games - Support for the viewporter protocol, allowing older X11 games to work
better and improve performance - Allow virtualization and remote desktop software to inhibit keyboard
shortcuts - Support for the wlr-foreign-toplevel-management protocol, allowing
custom docks and window switchers
Full changelog
Adam Kürthy (2):
Take window borders into account when resizing floating windows
Really fix floating window border resize problems
Aleksei Bavshin (1):
Adjust focus order to match rendering order of layer shell popups.
Alex Maese (2):
Add ability to remove the floating modifier
Add documentation for floating_modifier
Anders (1):
criteria: match containers without view
Andri Yngvason (6):
input: Assign virtual input devices to their selected seats
swaynag: Add multi-seat support
swaybar: Fix input device removal
input: Map virtual-pointer to the requested output
input: Mark virtual devices as such
input: keyboard: Never group virtual keyboards.
Bill Doyle (1):
Only destroy swaybar surface via ipc when needed
Bor Grošelj Simić (1):
input: implement cycling through keyboard layout list
Brian Ashworth (20):
render: do not render indicator on floating views
input/cursor: handle image surface destroy
input/cursor: handle setting a NULL image surface
view: remove workspace pid mapping for assigns
container: add inactive fullscreen to focus stack
desktop/output: fix mem leak in handle_new_output
output: apply oc to outputs using wl_for_each_safe
container_at_{tabbed,stacked}: check x-axis bounds
config: fix validation exit code and log level
cmd_swap: fix test_mark condition
output: fix updating output manager config
tree/view: do not attempt enter on hidden child
input_cmd_events: add support for input types
Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"
sway.5: correct description of workspace [number]
ISSUE_TEMPLATE: note debug logs should be from TTY
input: reset keyboard groups keyboard on reset all
input: fix reloading crash due to keyboard group configuring
seat_cmd_cursor: emit frame events
input/keyboard: wlr_keyboard_group enter and leave
Campbell Vertesi (1):
Add note on quoting to swaymsg manpage
Cassandra McCarthy (1):
integer scaling, not integral
Cyril Levis (2):
Add the possibility to capture only one screen if several screens are use.
Change wording
Damien Tardy-Panis (1):
Add views idle inhibition status in get_tree output
David Arnold (2):
grimshot: Unary operator expected
grimshot: fix POSIX compliance
David96 (4):
Render layer shell popups over the top layer
Don't transfer focus to NULL node on touch
Don't unhide cursor on touch events
Implement pointer simulation if client hasn't bound to touch
Dennis Schridde (1):
Document input selector precedence
Di Ma (4):
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Dominique Martinet (3):
swaynag: fix segfault on exit when arguments are not correct
swaynag: exit on wl_display_roundtrip error
build: make completions respect install prefixes
Drew DeVault (4):
Update wlroots version
Update version to 1.4
Implement wlr-foreign-toplevel-management-v1
Update version to v1.5-rc2
Ejez (1):
Correct typo in sway-output.5.scd
Eli Schwartz (3):
meson: use join_paths to build paths, instead of string concat
completion: use pkg-config to get install location for bash/fish
fish-completion: use the correct fallback directory
Eric Engestrom (1):
bash completion: swaymsg accepts --version, not --verbose
Geoffrey Casper (1):
Reload command now matches i3's implementation
Graham Christensen (1):
swaynag: allow specifying more buttons which execute and dismiss
Hristo Venev (2):
Do not truncate pointer coordinates to int.
swaybar: fix i3bar relative coordinates when scaling is used
Hugo Osvaldo Barrera (7):
grimshot: Allow configuring default directory
grimshot: Avoid screenshots overwriting each other
grimshot: Show usage when on invalid command
grimshot: Allow manually picking a window
grimshot: Add a separate flag for notifications
grimshot: Add a man page
grimshot: Skip creating a temp file when copying
Ian Fan (6):
ipc: add missing required properties
swaybar: fix memory leaks
tray: better errors when parsing index.theme
tray: allow themes to inherit from multiple themes
tray: tidy code
tray: track SNI callbacks
Ian Huang (1):
interpret "subpixel none" as CAIRO_ANTIALIAS_GRAY
Ihor Kalnytskyi (1):
scdoc: unbindcode --input-device, not input-device
Isaac Freund (1):
output: simplify loop over layer surfaces
JR Boyens (1):
Use transparency arg in the window focus event
Jamelly Ferreira (2):
Adding a version of README.md in Portuguese
Adding the link to the Portuguese on the English version of README.md
James Mills (1):
Fix typo in swaybar-protocol.7.scd
Jan Beich (2):
common/log: bump POSIX version used after e81d9fde667e
protocols: sync wlr-layer-shell-unstable-v1 with wlroots
Jason (2):
Docs: explain why menu command should be passed to sway
Update fish completions
Jason Nader (12):
Amend typo
commands/move: Fix crash when required args not provided
Check argc>0 before strcasecmp. Should shortcircuit
Docs: Add marks field to get_tree response
i3compat: add `window_type` to IPC response
i3compat: add `window_type` to IPC response
ipc-server: improve error message
Limit workspace numbers within 0..INT32_MAX
commands/bind.c: remove unnecessary check
sway/input/cursor.c: move NULL check to where it should be
sway/input/cursor.c: fix undefined behaviour when event is NULL
i3-compat: add GET_BINDING_STATE IPC command
Johan Bjäreholt (1):
tree/view: Make foreign-toplevel app_id fallback to class
Jonas Große Sundrup (1):
rephrase swayidle-timout example to improve readability
Josh Shone (1):
Fix hit test for floaters that cross outputs
Kalyan Sriram (1):
Save transform during transaction
Kenny Levinsen (9):
Simplify repaint scheduling documentation
view: Save all buffers associated with view
view: update_size should only update pending size
transaction: Account for full size when centering content
transaction: Improve transaction commentary
container: Remove useless surface dimensions
shells: Resize on commit if geometry x/y changes
transaction: Mark client resize immediately ready
seat: Refocus seat when wlr_drag is destroyed
Leo (2):
Fix redundant call to seat_send_focus()
im: Fix crash when im destorying and no focused surface exists
Leon Plickat (1):
change apply_exclusive() to closer match layer shell protocol
Linus Heckemann (1):
add --no-repeat option for bindings
Lucas M. Dutra (1):
fix typo
Luke Drummond (2):
swaynag: sway_abort on failure to properly register
swaybar: ensure correct init order for status_line
Martin Dørum (1):
swaybar: Fix scrolling with precise trackpads
Martin Michlmayr (2):
sway.5: make formatting more consistent
Fix typos in comments
Michael Weiser (5):
config: Fix typo in reload bindsym flag bitmask
input: Add support for keyboard shortcuts inhibit
commands: Add shortcuts_inhibitor command
commands: Adjust style in cursors command
commands: Add per-view shortcuts_inhibitor command
Milkey Mouse (1):
swaybar: add NULL check when listing workspaces
Nathan Rossi (1):
ipc: Handle unsupported binding event types
Nick Diego Yamane (1):
input/seatop_default: properly notify pointer leave
Olivier Fourdan (1):
input: Avoid creating the PAD device multiple times
Paul Ouellette (1):
Fix some mistakes in grimshot docs
Pedro Côrte-Real (3):
Avoid numerical instability in resize
Make sure we don't calculate fractional pixel gaps
Make all the container dimensions integers
Ronan Pigott (9):
commands/split: Fix error message typos
ipc-json: Remove unnecessary dereference
sway-input.5: Document repeat_delay and repeat_rate only once
sway.5: Document missing bindsym flags for unbindsym
Fix crash when showing scratchpad hidden split containers
cmd_move: Fix crash when moving to scratchpad hidden split containers
cmd_split: Refuse to split scratchpad hidden split containers
view: fix surface_new_subsurface use-after-free
xdg_shell: schedule configure on maximize requests
Ross Schulman (1):
Fix small typo in sway-input(5)
Rouven Czerwinski (3):...
sway 1.5-rc2
Sway 1.5-rc2 contains 6 changes from 4 contributors.
Isaac Freund (1):
output: simplify loop over layer surfaces
Johan Bjäreholt (1):
tree/view: Make foreign-toplevel app_id fallback to class
Kenny Levinsen (2):
transaction: Mark client resize immediately ready
seat: Refocus seat when wlr_drag is destroyed
Tudor Brindus (2):
input/pointer: correctly handle bindings for synthetic events
tree/view: fix smart borders with tabbed/stacked ancestor
The recommended wlroots version to use with this release is swaywm/wlroots@a54ed85.
sway 1.5-rc1
sway 1.5-rc1
Sway 1.5-rc1 contains 258 changes from 76 contributors. This release introduces a lot of new features, but also contains numerous bug fixes.
The recommended wlroots version to use with this release is swaywm/wlroots@4a4da25.
New features
- Headless outputs can now be created dynamically via the
create_output
command, and can be used with WayVNC - Input method editors (IME) are now supported via the input-method and
text-input protocols - Adaptive synchronization (aka. variable refresh rate, VRR) can be enabled
to reduce stuttering in games - Support for the viewporter protocol, allowing older X11 games to work
better and improve performance - Allow virtualization and remote desktop software to inhibit keyboard
shortcuts - Support for the wlr-foreign-toplevel-management protocol, allowing
custom docks and window switchers
Full changelog
Adam Kürthy (2):
Take window borders into account when resizing floating windows
Really fix floating window border resize problems
Aleksei Bavshin (1):
Adjust focus order to match rendering order of layer shell popups.
Alex Maese (2):
Add ability to remove the floating modifier
Add documentation for floating_modifier
Anders (1):
criteria: match containers without view
Andri Yngvason (6):
input: Assign virtual input devices to their selected seats
swaynag: Add multi-seat support
swaybar: Fix input device removal
input: Map virtual-pointer to the requested output
input: Mark virtual devices as such
input: keyboard: Never group virtual keyboards.
Bill Doyle (1):
Only destroy swaybar surface via ipc when needed
Bor Grošelj Simić (1):
input: implement cycling through keyboard layout list
Brian Ashworth (20):
render: do not render indicator on floating views
input/cursor: handle image surface destroy
input/cursor: handle setting a NULL image surface
view: remove workspace pid mapping for assigns
container: add inactive fullscreen to focus stack
desktop/output: fix mem leak in handle_new_output
output: apply oc to outputs using wl_for_each_safe
container_at_{tabbed,stacked}: check x-axis bounds
config: fix validation exit code and log level
cmd_swap: fix test_mark condition
output: fix updating output manager config
tree/view: do not attempt enter on hidden child
input_cmd_events: add support for input types
Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"
sway.5: correct description of workspace [number]
ISSUE_TEMPLATE: note debug logs should be from TTY
input: reset keyboard groups keyboard on reset all
input: fix reloading crash due to keyboard group configuring
seat_cmd_cursor: emit frame events
input/keyboard: wlr_keyboard_group enter and leave
Cassandra McCarthy (1):
integer scaling, not integral
Cyril Levis (2):
Add the possibility to capture only one screen if several screens are use.
Change wording
Damien Tardy-Panis (1):
Add views idle inhibition status in get_tree output
David Arnold (2):
grimshot: Unary operator expected
grimshot: fix POSIX compliance
David96 (4):
Render layer shell popups over the top layer
Don't transfer focus to NULL node on touch
Don't unhide cursor on touch events
Implement pointer simulation if client hasn't bound to touch
Dennis Schridde (1):
Document input selector precedence
Di Ma (4):
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Fix a use-after-free error in switch binding
Dominique Martinet (3):
swaynag: fix segfault on exit when arguments are not correct
swaynag: exit on wl_display_roundtrip error
build: make completions respect install prefixes
Drew DeVault (3):
Update wlroots version
Update version to 1.4
Implement wlr-foreign-toplevel-management-v1
Ejez (1):
Correct typo in sway-output.5.scd
Eli Schwartz (3):
meson: use join_paths to build paths, instead of string concat
completion: use pkg-config to get install location for bash/fish
fish-completion: use the correct fallback directory
Eric Engestrom (1):
bash completion: swaymsg accepts --version, not --verbose
Graham Christensen (1):
swaynag: allow specifying more buttons which execute and dismiss
Hristo Venev (2):
Do not truncate pointer coordinates to int.
swaybar: fix i3bar relative coordinates when scaling is used
Hugo Osvaldo Barrera (7):
grimshot: Allow configuring default directory
grimshot: Avoid screenshots overwriting each other
grimshot: Show usage when on invalid command
grimshot: Allow manually picking a window
grimshot: Add a separate flag for notifications
grimshot: Add a man page
grimshot: Skip creating a temp file when copying
Ian Fan (6):
ipc: add missing required properties
swaybar: fix memory leaks
tray: better errors when parsing index.theme
tray: allow themes to inherit from multiple themes
tray: tidy code
tray: track SNI callbacks
Ian Huang (1):
interpret "subpixel none" as CAIRO_ANTIALIAS_GRAY
Ihor Kalnytskyi (1):
scdoc: unbindcode --input-device, not input-device
JR Boyens (1):
Use transparency arg in the window focus event
Jamelly Ferreira (2):
Adding a version of README.md in Portuguese
Adding the link to the Portuguese on the English version of README.md
James Mills (1):
Fix typo in swaybar-protocol.7.scd
Jan Beich (1):
common/log: bump POSIX version used after e81d9fde667e
Jason (2):
Docs: explain why menu command should be passed to sway
Update fish completions
Jason Nader (12):
Amend typo
commands/move: Fix crash when required args not provided
Check argc>0 before strcasecmp. Should shortcircuit
Docs: Add marks field to get_tree response
i3compat: add `window_type` to IPC response
i3compat: add `window_type` to IPC response
ipc-server: improve error message
Limit workspace numbers within 0..INT32_MAX
commands/bind.c: remove unnecessary check
sway/input/cursor.c: move NULL check to where it should be
sway/input/cursor.c: fix undefined behaviour when event is NULL
i3-compat: add GET_BINDING_STATE IPC command
Josh Shone (1):
Fix hit test for floaters that cross outputs
Kalyan Sriram (1):
Save transform during transaction
Kenny Levinsen (7):
Simplify repaint scheduling documentation
view: Save all buffers associated with view
view: update_size should only update pending size
transaction: Account for full size when centering content
transaction: Improve transaction commentary
container: Remove useless surface dimensions
shells: Resize on commit if geometry x/y changes
Leo (2):
Fix redundant call to seat_send_focus()
im: Fix crash when im destorying and no focused surface exists
Leon Plickat (1):
change apply_exclusive() to closer match layer shell protocol
Linus Heckemann (1):
add --no-repeat option for bindings
Lucas M. Dutra (1):
fix typo
Luke Drummond (2):
swaynag: sway_abort on failure to properly register
swaybar: ensure correct init order for status_line
Martin Dørum (1):
swaybar: Fix scrolling with precise trackpads
Martin Michlmayr (2):
sway.5: make formatting more consistent
Fix typos in comments
Michael Weiser (5):
config: Fix typo in reload bindsym flag bitmask
input: Add support for keyboard shortcuts inhibit
commands: Add shortcuts_inhibitor command
commands: Adjust style in cursors command
commands: Add per-view shortcuts_inhibitor command
Milkey Mouse (1):
swaybar: add NULL check when listing workspaces
Nathan Rossi (1):
ipc: Handle unsupported binding event types
Nick Diego Yamane (1):
input/seatop_default: properly notify pointer leave
Olivier Fourdan (1):
input: Avoid creating the PAD device multiple times
Paul Ouellette (1):
Fix some mistakes in grimshot docs
Pedro Côrte-Real (3):
Avoid numerical instability in resize
Make sure we don't calculate fractional pixel gaps
Make all the container dimensions integers
Ronan Pigott (8):
commands/split: Fix error message typos
ipc-json: Remove unnecessary dereference
sway-input.5: Document repeat_delay and repeat_rate only once
sway.5: Document missing bindsym flags for unbindsym
Fix crash when showing scratchpad hidden split containers
cmd_move: Fix crash when moving to scratchpad hidden split containers
cmd_split: Refuse to split scratchpad hidden split containers
view: fix surface_new_subsurface use-after-free
Ross Schulman (1):
Fix small typo in sway-input(5)
Rouven Czerwinski (3):
xwayland: handle size_hints == NULL
output: remove damage listeners in damage destroy
input/seatop_default: release on empty workspace
Ryan Dwyer (1):
Introduce pid criteria token
Simon Ser (44):
Fix unreliable scaling filter
Revert "Make all the container dimensions integers"
Fix seat_set_focus_layer crash when disabling output
Fix output scale auto-detection
Call apply_output_config instead of output_enable
Stop calling apply_output_config from output_enable
Apply the output sc...
sway 1.4
sway 1.4 contains 190 changes from 52 contributors. Highlights include:
- Support for VNC via wayvnc. The wlroots RDP backend has been removed.
- Partial support for the MATE panel
- Configurable input latency controls, see
max_render_time
insway(5)
andsway-output(5)
- Keyboard grouping (useful for certain niche keyboard designs)
- Support for xdg-shell v6 unstable has been removed
The recommended terminal emulator in the default configuration file is now alacritty.
Note: due to a release error, we skipped version 1.3.
Full changelog
sway 1.4
A. M. Joseph (1):
xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.
Aleksis (1):
remove unused layer shell surface variable
Andri Yngvason (2):
input: Assign virtual input devices to their selected seats
swaybar: Fix input device removal
Antonin Décimo (5):
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Arkadiusz Hiler (1):
Fix syntax in examples in sway-output(5)
Ben Brown (2):
Fix typo for the force/immediate option in xwayland_mode enum
Add icon_theme_path to find_icon() search if set
Benjamin Cheng (2):
input/cursor: pass gesture events to clients
input/cursor: remove gesture listeners in destroy
Brian Ashworth (42):
workspace: prefer identifiers for output priority
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
input/keyboard: send released only if pressed sent
cmd_xwayland: add force for immediate launch
sway.5: remove mention of floating_scroll
cmd_move: fix move to scratchpad hidden container
cmd_mode: don't reset to default after subcommand
seatop_default: only focus container on press
swaybar: complete barconfig_update event handling
sway.5: clarify that a marks are unqiue
view: always populate pid
input/keyboard: cleanup xkb_file error handing
input_cmd_xkb_file: allow shell path expansion
Add support for wlr_keyboard_group
input/keyboard: check keyboard group before remove
config: improvements to the reload validation
input/keyboard: reset seat keyboard on destroy
config: apply input type configs on reload
layer-shell: unfocus output-less layer on unmap
input/keyboard: remove group listeners on destroy
input/keyboard: defer wlr_keyboard_group destroy
config/input: set type for new identifier configs
root_scratchpad_hide: disable fullscreen descendants
input/seatop_default: fix focusing floating titles
seat_cmd_keyboard_grouping: change keymap to smart
layer-shell: refocus if keyboard interactive lost
parse_color: return success + drop fallback color
cmd_client_*: refactor duplicated code
bar_cmd_colors: remove add_color
cmd_client_*: support optional args for i3 compat
input/cursor: handle image surface destroy
input/cursor: handle setting a NULL image surface
view: remove workspace pid mapping for assigns
container: add inactive fullscreen to focus stack
desktop/output: fix mem leak in handle_new_output
output: apply oc to outputs using wl_for_each_safe
Cassandra McCarthy (1):
integer scaling, not integral
Danilo Spinella (1):
Fix refresh rate scale of output
Dark (1):
Update titlebar borders to match i3's current behavior.
Drew DeVault (12):
layer-shell: add support for popups
Add _incr_version to contrib/
chmod +x contrib/_incr_version
config.in: set default term to alacritty
Update .github/FUNDING.yml
Update version to 1.2
Updates per wlroots layer shell changes
Add seat <seat> idle_{inhibit,wake} <sources...>
License wallpapers as CC-0
_incr_version: prompt for target wlroots release
_incr_version: always overwrite old version number
Update version to 1.3-rc1
Eli Schwartz (3):
meson: use join_paths to build paths, instead of string concat
completion: use pkg-config to get install location for bash/fish
fish-completion: use the correct fallback directory
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Ivan Molodetskikh (9):
Add Russian translation of the README
render: set surface as sampled for presentation
output: add max_render_time
Add sway_surface
view: add max_render_time
Add max_render_time to output JSON
Add max_render_time to view JSON
output: check wlr_output in repaint handler
Add note about backends to output max_render_time
JR Boyens (1):
Use transparency arg in the window focus event
Jason (2):
Amend typos
Docs: explain why menu command should be passed to sway
Jason Nader (3):
Amend typo
commands/move: Fix crash when required args not provided
Check argc>0 before strcasecmp. Should shortcircuit
Jayce Fayne (1):
Revert "fix bar_state_update/input event"
John Chadwick (1):
input: Add support for tablet protocol.
Josef Gajdusek (1):
Add virtual pointer protocol
Kenny Levinsen (5):
Ensure that seat->focused_layer is cleared on unmap
output: Ensure that frame_done is delayed on max_render_time
output: Replace block_idle_frame with frame_pending
output: Schedule idle frames if we do not render
output: Restore previous max_render_time behavior
Kirill Chibisov (1):
Fix tiled containers resize with mouse
Konstantin Pospelov (2):
swaybar: do not retry search for tray icons
swaybar: fix typo in the loop over pixmaps
Laurent Bonnans (1):
ipc: collapse multi-container command results
Lauri (1):
Grimshot: a helper for screenshots within sway
Manuel Mendez (1):
grimshot: fix branching on command exit status
Manuel Stoeckl (1):
desktop/surface: Fix crash when timer is NULL
Martin Michlmayr (4):
Fix markup syntax in man pages
swaymsg.1: fix description of --pretty
sway-output.5: fix variable name
swaymsg.1: fix typos
Michael Aquilina (1):
Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed
NightFeather (1):
Add Chinese (zh-TW) translation of README
Nils ANDRÉ-CHANG (1):
Fix type (an -> and)
Paul Riou (2):
input: seat: Fix seat device list not initialised before use
Fix sway_log using non initialised output_config pointer
Pedro Côrte-Real (3):
Avoid numerical instability in resize
Make sure we don't calculate fractional pixel gaps
Make all the container dimensions integers
Rex Hackbro (2):
Rename 'node' to 'nodes' in swayipc doc
fix bar_state_update/input event
Robert Günzler (1):
Skip line continuation when it is a comment
Ronan Pigott (19):
view: create container before selecting workspace
focus: support focus prev|next [sibling]
criteria: make literal comparison for __focused__ values
focus: do nothing on focus prev|next for workspaces
seatop_move_floating: make container respect pointer constraint
seatop_default: handle focus for xwayland_unmanaged views
smart_borders: separate smartness from edge types
Prefer higher refresh rate default modes
seatop_default: handle focus for unmanaged xwayland windows last
add scale_filter output config option
Fix lingering workspace with scratchpad show
config/output: apply scale_filter even when scale has not changed
commands/split: Fix error message typos
ipc-json: Remove unnecessary dereference
sway-input.5: Document repeat_delay and repeat_rate only once
sway.5: Document missing bindsym flags for unbindsym
Fix crash when showing scratchpad hidden split containers
cmd_move: Fix crash when moving to scratchpad hidden split containers
cmd_split: Refuse to split scratchpad hidden split containers
Ross Schulman (1):
Fix small typo in sway-input(5)
Rouven Czerwinski (3):
sway(5): move workspace_layout to config only
xwayland: get_constraints using size hints
xwayland: handle size_hints == NULL
Sebastian Krzyszkowiak (2):
layer_shell: Guard against negative exclusive zone
layer-shell: Fix damage tracking of nested popups
Sheena Artrip (1):
Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.
Simon Ser (22):
Remove xdg-shell v6 support
layer-shell: don't give focus to unmapped layer surfaces
man: document how to specify multiple xkb layouts and options
Error out on unknown debug flag
build: update wlroots version, be more strict
Add support for fullscreen view direct scan-out
Fix direct scan-out flickering
build: bump wlroots version to 0.8.1
build: always use the project version
Fix apply_output_config return value when enabling output
Fix segfault in wlr_output_manager_v1_set_configuration
Handle layer changes for layer shell surfaces
Fix presentation feedback when scanning out fullscreen view
Add --custom to ...
1.3-rc3
sway 1.3-rc3 Brian Ashworth (2): view: remove workspace pid mapping for assigns container: add inactive fullscreen to focus stack Cassandra McCarthy (1): integer scaling, not integral JR Boyens (1): Use transparency arg in the window focus event Jason (1): Docs: explain why menu command should be passed to sway Jason Nader (1): Amend typo Simon Ser (2): Fix unreliable scaling filter Revert "Make all the container dimensions integers"
1.3-rc2
sway 1.3-rc2
Andri Yngvason (2):
input: Assign virtual input devices to their selected seats
swaybar: Fix input device removal
Brian Ashworth (2):
input/cursor: handle image surface destroy
input/cursor: handle setting a NULL image surface
Pedro Côrte-Real (3):
Avoid numerical instability in resize
Make sure we don't calculate fractional pixel gaps
Make all the container dimensions integers
Ross Schulman (1):
Fix small typo in sway-input(5)
Rouven Czerwinski (1):
xwayland: handle size_hints == NULL
Thayne McCombs (1):
Add missing items to documentation for GET_TREE response in ipc.
sway 1.3-rc1
Sway 1.3-rc1 includes 156 changes from 44 contributors.
A. M. Joseph (1):
xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.
Aleksis (1):
remove unused layer shell surface variable
Antonin Décimo (5):
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Arkadiusz Hiler (1):
Fix syntax in examples in sway-output(5)
Ben Brown (2):
Fix typo for the force/immediate option in xwayland_mode enum
Add icon_theme_path to find_icon() search if set
Benjamin Cheng (2):
input/cursor: pass gesture events to clients
input/cursor: remove gesture listeners in destroy
Brian Ashworth (36):
workspace: prefer identifiers for output priority
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
input/keyboard: send released only if pressed sent
cmd_xwayland: add force for immediate launch
sway.5: remove mention of floating_scroll
cmd_move: fix move to scratchpad hidden container
cmd_mode: don't reset to default after subcommand
seatop_default: only focus container on press
swaybar: complete barconfig_update event handling
sway.5: clarify that a marks are unqiue
view: always populate pid
input/keyboard: cleanup xkb_file error handing
input_cmd_xkb_file: allow shell path expansion
Add support for wlr_keyboard_group
input/keyboard: check keyboard group before remove
config: improvements to the reload validation
input/keyboard: reset seat keyboard on destroy
config: apply input type configs on reload
layer-shell: unfocus output-less layer on unmap
input/keyboard: remove group listeners on destroy
input/keyboard: defer wlr_keyboard_group destroy
config/input: set type for new identifier configs
root_scratchpad_hide: disable fullscreen descendants
input/seatop_default: fix focusing floating titles
seat_cmd_keyboard_grouping: chang* Compositors now need to call `wlr_output_commit` after `wlr_output_enable`, `wlr_output_set_mode`, `wlr_output_set_custom_mode`, `wlr_output_set_transform` or `wlr_output_set_scale`
* `wlr_output_set_mode` no longer implicitly enables the output, compositors need to call `wlr_output_enable` as well
* Compositors now need to call `wlr_output_rollback` after `wlr_output_attach_render` if they decide not to rendere keymap to smart
layer-shell: refocus if keyboard interactive lost
parse_color: return success + drop fallback color
cmd_client_*: refactor duplicated code
bar_cmd_colors: remove add_color
cmd_client_*: support optional args for i3 compat
Danilo Spinella (1):
Fix refresh rate scale of output
Dark (1):
Update titlebar borders to match i3's current behavior.
Drew DeVault (11):
layer-shell: add support for popups
Add _incr_version to contrib/
chmod +x contrib/_incr_version
config.in: set default term to alacritty
Update .github/FUNDING.yml
Update version to 1.2
Updates per wlroots layer shell changes
Add seat <seat> idle_{inhibit,wake} <sources...>
License wallpapers as CC-0
_incr_version: prompt for target wlroots release
_incr_version: always overwrite old version number
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Ivan Molodetskikh (9):
Add Russian translation of the README
render: set surface as sampled for presentation
output: add max_render_time
Add sway_surface
view: add max_render_time
Add max_render_time to output JSON
Add max_render_time to view JSON
output: check wlr_output in repaint handler
Add note about backends to output max_render_time
Jason (1):
Amend typos
Jayce Fayne (1):
Revert "fix bar_state_update/input event"
John Chadwick (1):
input: Add support for tablet protocol.
Josef Gajdusek (1):
Add virtual pointer protocol
Kenny Levinsen (5):
Ensure that seat->focused_layer is cleared on unmap
output: Ensure that frame_done is delayed on max_render_time
output: Replace block_idle_frame with frame_pending
output: Schedule idle frames if we do not render
output: Restore previous max_render_time behavior
Kirill Chibisov (1):
Fix tiled containers resize with mouse
Konstantin Pospelov (2):
swaybar: do not retry search for tray icons
swaybar: fix typo in the loop over pixmaps
Laurent Bonnans (1):
ipc: collapse multi-container command results
Lauri (1):
Grimshot: a helper for screenshots within sway
Manuel Mendez (1):
grimshot: fix branching on command exit status
Manuel Stoeckl (1):
desktop/surface: Fix crash when timer is NULL
Martin Michlmayr (4):
Fix markup syntax in man pages
swaymsg.1: fix description of --pretty
sway-output.5: fix variable name
swaymsg.1: fix typos
Michael Aquilina (1):
Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed
NightFeather (1):
Add Chinese (zh-TW) translation of README
Nils ANDRÉ-CHANG (1):
Fix type (an -> and)
Paul Riou (2):
input: seat: Fix seat device list not initialised before use
Fix sway_log using non initialised output_config pointer
Rex Hackbro (2):
Rename 'node' to 'nodes' in swayipc doc
fix bar_state_update/input event
Robert Günzler (1):
Skip line continuation when it is a comment
Ronan Pigott (12):
view: create container before selecting workspace
focus: support focus prev|next [sibling]
criteria: make literal comparison for __focused__ values
focus: do nothing on focus prev|next for workspaces
seatop_move_floating: make container respect pointer constraint
seatop_default: handle focus for xwayland_unmanaged views
smart_borders: separate smartness from edge types
Prefer higher refresh rate default modes
seatop_default: handle focus for unmanaged xwayland windows last
add scale_filter output config option
Fix lingering workspace with scratchpad show
config/output: apply scale_filter even when scale has not changed
Rouven Czerwinski (2):
sway(5): move workspace_layout to config only
xwayland: get_constraints using size hints
Sebastian Krzyszkowiak (2):
layer_shell: Guard against negative exclusive zone
layer-shell: Fix damage tracking of nested popups
Sheena Artrip (1):
Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.
Simon Ser (20):
Remove xdg-shell v6 support
layer-shell: don't give focus to unmapped layer surfaces
man: document how to specify multiple xkb layouts and options
Error out on unknown debug flag
build: update wlroots version, be more strict
Add support for fullscreen view direct scan-out
Fix direct scan-out flickering
build: bump wlroots version to 0.8.1
build: always use the project version
Fix apply_output_config return value when enabling output
Fix segfault in wlr_output_manager_v1_set_configuration
Handle layer changes for layer shell surfaces
Fix presentation feedback when scanning out fullscreen view
Add --custom to `output mode` command
Fix segfault in set_mode
Use wlr_output_preferred_mode instead of the last mode
Add -Wno-missing-braces
Use new presentation-time helper
Auto-detect output scale
Re-add support for wlr_output's atomic API
Tadeo Kondrak (3):
build: remove rootston from wlroots subproject
Implement input map_to_region command
Use an enum instead of a marker string for map_to_
Thorben Günther (2):
Improve transparency script
A Script to change sway workspace name.
Versus Void (1):
Do not search for edges on subsurfaces, fix #4381
Whemoon Jang (1):
Fix typo in swaybar-protocol.7.scd
Wieland Hoffmann (2):
sway(5): Add a missing verb
sway(5): Highlight valid values in the description of tiling_drag
asdfjkluiop (1):
A layer-shell will only be focused if it is non-null
lbonn (6):
Allow moving a container hidden in scratchpad
focus: support focus_wrapping workspace
seat: simplify a strdup
Fix various memory leaks
Fix potential NULL reference on cleanup
focus: add a NULL check in `focus <direction>`
xPMo (1):
Fix bar_state_update docs
xdavidwu (3):
seat: avoid unneeded reloading xcursor theme
seat: set cursor image only if no pointer cap previously
swaybar: make status block text render in the same way as others
sway 1.2
sway 1.2 includes 128 changes from 37 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.
Abdelhakim Qbaich (1):
Add the missing constant for the switch input type
Aidan Harris (1):
Fix segfault with "xwayland false" (#4228)
Alex Maese (1):
Unhide cursor on cursor activity after touch
Alyssa Ross (2):
bar: fix segfault with missing or invalid bar id
commands/bar: improve error for invalid subcommand
Antonin Décimo (7):
Allocator sizeof operand mismatch
Remove unused variable
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Ashkan Kiani (1):
Avoid adding duplicate criteria for no_focus and command
Brian Ashworth (52):
Destroy swaybg client on reload
config/output: fix typo in merge_id_on_name
Spawn swaybar as a wayland client
input/keyboard: attempt default keymap on failure
commands/bar: fix mode and hidden_state at runtime
input/switch: fix indentation of file
common/ipc-client: remove ipc recv timeout log
bindings: allow unlocked and locked bindings
Add swaybar protocol documentation
cmd_hide_edge_borders: add missing arg count check
criteria: reset on semicolon separation
commands/input: perform basic keymap validation
config/input: validate xkb keymap before storing
bindings: defer while initiailizing
config/xwayland: retain xwayland status on reload
config: fix find_handler logic
cmd_seat: split action and config handlers
cmd_mode: allow runtime creation and modification
ws-output-priority: fix logic issue in find_output
swaybar-protocol.7: fix block border descriptions
cmd_bindswitch: add option to execute on reload
input/libinput: only reset supported options
config/output: correctly set width/height in apply
cmd_layout: toggle split for tabbed/stack default
cmd_split: fix toggle split for non-split layouts
cmd_output: support current output alias
input_cmd_xkb_switch_layout: support input types
ipc: add an input event
ipc: add input::libinput_config event
arrange: remove gaps for workspace location deltas
input/libinput: fix typo in set_middle_emulation
libinput: fix set_send_events
input/keyboard: don't reset layout for same keymap
bindsym/code: add group support
input/libinput: typo fixes (get -> get_default)
cmd_swap: add floating support
input/cursor: do not hide when buttons are pressed
swaymsg: return 2 for sway errors
cmd_mode: make modes case sensitive
config/output: rebase cursors after config applied
sway.5: explain how to enable pango markup in font
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
input/keyboard: send released only if pressed sent
sway.5: remove mention of floating_scroll
cmd_move: fix move to scratchpad hidden container
cmd_mode: don't reset to default after subcommand
Daniel Eklöf (3):
add seat sub command 'xcursor_theme'
swaybar/nag: use xcursor theme defined by XCURSOR_THEME/SIZE
check for empty string before calling strtoul() and check errno
Dark (1):
Update titlebar borders to match i3's current behavior.
Drew DeVault (9):
Add Firefox note to ISSUE_TEMPALTE.md
Create FUNDING.yml
Bump meson version to 1.1
Remove rootston from build manifests
layer-shell: add support for popups
Add _incr_version to contrib/
chmod +x contrib/_incr_version
Further refinements to _incr_version script
Update version to 1.2
Ed Younis (2):
Implement input_cmd_xkb_file (#3999)
input_cmd_xkb_*: cleanup includes
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Jeff Peeler (1):
cmd_opacity: add relative opacity changes
Josef Gajdusek (4):
Implement wlr-output-management-v1
Update output manager config on all output events
Provide current DPMS state in GET_OUTPUTS
Update output manager on layout change
Kenny Levinsen (1):
Use parent get_root_coords in subsurfaces
Laurent Bonnans (1):
ipc: collapse multi-container command results
Manuel Stoeckl (2):
Replace meson generator with custom_target
Use -fmacro-prefix-map to strip build path
Matt Coffin (1):
Fix segfaults caused by faulty command parsing
Michael Aquilina (1):
Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed
Moelf (1):
Implement output toggle
Nick Paladino (1):
Make comment casing consistient
Nomeji (1):
Add infos to help using for_window to man 5
Paul Ouellette (1):
Fix typo in sway(5) manpage
Pedro Côrte-Real (7):
Layout correctly with several new windows
Layout tiled using a width/height fraction
Rework gaps code to be simpler and correct
Sanity check gaps between tiled containers
Avoid negative outer gaps
Sanity check gaps on the outside of the workspace
Fix resize sibling amount calculations
Robert Sacks (1):
Add missing underscore in bindswitch documentation
Rouven Czerwinski (3):
desktop: output: fix use-after-free in destroy
Fix sway crashes for scratchpad layouts
Revert "Add support for wlr_output's atomic API"
Sauyon Lee (1):
Make fullscreen check for fullscreen parents
Sebastian Krzyszkowiak (1):
layer_shell: Guard against negative exclusive zone
Sebastian Parborg (1):
Make mouse drag in tiled mode swap containers if no edge is selected
Sergei Dolgov (4):
Add calibration_matrix config option
Use isnan
calibration_matrix: add the current matrix to the IPC description for libinput devices
calibration_matrix: expect 6 individual values
Simon Ser (8):
Fix xdg-decoration unconfigured if set before first commit
Remove orbital gamma-control protocol
ipc: add xkb_layout_names and xkb_active_layout_index
Add a new xkb_switch_layout command
Add missing docs for xkb_switch_layout
Add docs for new IPC keyboard properties
Remove all wayland-server.h includes
Add support for wlr_output's atomic API
asdfjkluiop (1):
A layer-shell will only be focused if it is non-null
jasperro (1):
Added Dutch translation of README
lbonn (1):
Allow moving a container hidden in scratchpad
murray (1):
use surface coordinates for damaging buffers
random human (1):
tree: set correct border value before creating floater
rpigott (1):
Add missing description for focus_on_window_activation command in docs.
1.2-rc2
sway 1.2 includes 126 changes from 32 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.
Additionally, this release adds support for layer-shell popups, making the MATE panel usable on Sway, among other useful tools. This release also recommends the use of wlroots 0.7.0 (note: not released until the final sway release), and adds support for tools like wdisplays, a GTK+ GUI for configuring displays on supported compositors.
Antonin Décimo (5):
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Brian Ashworth (7):
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
Drew DeVault (1):
layer-shell: add support for popups
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Sebastian Krzyszkowiak (1):
layer_shell: Guard against negative exclusive zone