Releases: swaywm/sway
sway 1.7-rc1
Sway 1.7-rc1 contains 191 changes from 73 contributors.
This pre-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 (1):
ipc: make `bar <bar_id> mode|hidden_state` behave as documented
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 (3):
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
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 (7):
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
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 (3):
swaybar: properly draw urgent block right border
swaybar: properly draw blocks with transparent black border
swaybar: fix cairo_font_options leak
Nihal Jere (2):
config.in: use portable hour specifier
config.in: use swaynag -B instead of -b
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 (12):
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
Rouven Czerwinski (1):
view: handle case where map_ws is NULL
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 (57):
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.frame not sent on touch emulation
swaybar: exit cleanly when disconnected from IPC
swaybar: log Wayland display errors
Document view_map
Fallback to other output modes if preferred mode fails
layer-shell: replace close() with destroy()
readme: switch to Libera Chat for ir
readme: link to gamja for IRC
Rename pango_printf to render_text
readme: mention seatd
build: remove scdoc stdin/stdout hack
Add -Dnoscanout debug option
readme: add missing space
Add support for DRM panel orientation
Chase wlr_xdg_surface breaking changes
readme: drop reco...
sway 1.6.1
This new release adds compatibility with wlroots 0.14, and contains
a few bug fixes.
Full changelog
Bill Doyle (1):
Only defer seat attachment during initial startup
Dominique Martinet (1):
view_destroy: fix use-after-free with subsurface_destroy
Issam E. Maghni (1):
cairo: Replace <cairo/cairo.h> by <cairo.h>
Kenny Levinsen (6):
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
Michael Weiser (1):
Prevent use-after-free on first bar subcommand error
Ronan Pigott (2):
workspace: reap empty parents when adding tiles
view: commit transactions for foreign toplevel requests
Rouven Czerwinski (1):
view: handle case where map_ws is NULL
Simon Ser (9):
build: update wlroots dependency version to 0.14.x
build: stop checking for logind
Remove WLR_HAS_XDG_FOREIGN checks
Log wlroots version on startup
Iterate over subsurfaces below the parent surface
ci: stick to wlroots 0.14.0
Avoid creating zero-sized textures for titlebars
Avoid creating zero-sized textures for marks
build: bump version to 1.6.1
Tobias Langendorf (1):
remove usage of `wlr_texture_get_size`
Tudor Brindus (1):
tree/view: don't give focus to views mapped under fullscreen views
fwsmit (1):
desktop/layer_shell: fix centering for opposing anchors
sway 1.6
Sway 1.6 contains 231 changes from 69 contributors. It contains an assortment of new features, as well as a lot of bug fixes.
The recommended wlroots version to use with this release is 0.13.0.
New features
- Input method editor (IME) improvements: better support for CJK IMEs, allow IMEs to work on desktop UIs (such as panels and lockscreens)
- Smoother interactive move/resize operations
- Allow Flatpak and snap applications to better integrate with the system via the xdg-foreign protocol
- Improved i3 compatibility for commands changing the window layout
- Add an option to hide the cursor when typing
- Add tray icon support to systems without systemd/elogind
- X11 clipboard reliability improvements
Full changelog
Aleksei Bavshin (1):
xdg-foreign: add v1 and v2 implementations
Andri Yngvason (4):
desktop: output: Scale custom output refresh rate
input: Clean up input_method_relay in seat_destoy()
input/seat: Clean up focus_stack in seat_destroy()
input/seat: Reset command handler context in seat_destroy()
Antonin Décimo (6):
Fix typos in man page.
ipc: fix aligment issue of data buffer
cmd/bar/colors: fix dereference of null pointer
Log empty value if envvar is not defined
Fix incorrect format specifiers
common/loop: check return of realloc
Arav K (1):
Fix swaybar tray for non-systemd
BrassyPanache (2):
Re-focus on parent surface if it is available
Adhere to ICCCM focus specification
Brian Ashworth (3):
ISSUE_TEMPLATE: Use the newer issue templates
input/libinput: remove input type property bias
input/keyboard: fix Group# bindings for keyboard groups
Campbell Vertesi (1):
Add note on quoting to swaymsg manpage
Charmander (1):
swaybar: allow status line cleanup to proceed when hidden
Daniel De Graaf (1):
commands/resize: don't consider 1px resizes to be invalid
Daniil (1):
Update Russian translation
David96 (2):
Make focus_follows_mouse work when hovering a layer-shell surface on another output
Add missing transaction commits to seatop_default
Dimitris Triantafyllidis (3):
Smart borders fix: always show borders for floating containers
In container_split, set a floating container's view to tiled
Fix #5643, #5064: rounding issues in floating-point -> integer conversions
Drew DeVault (3):
Remove .github/FUNDING.yml
Remove Patreon links from README.*.md
CONTRIBUTING.md: Add note on sway's scope
Falke Carlsen (1):
Fix typo in README.dk.md
Fenveireth (1):
swaybar: use text subpixel antialias only where it would look good
Geoffrey Casper (2):
Reload command now matches i3's implementation
server: Avoid using "wayland-0" as WAYLAND_DISPLAY See https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/486
Hubert Hirtz (1):
Document required '\n' in swaybar-protocol
Isaac Freund (1):
Drop gtk-primary-selection support
Jan Beich (2):
protocols: sync wlr-layer-shell-unstable-v1 with wlroots
ci: enable basu on freebsd
Jan Palus (1):
Align ordering of core node properties with i3
John Mako (1):
check parent surface before it is destroyed
Jonas Große Sundrup (1):
rephrase swayidle-timout example to improve readability
Jonas Hohmann (1):
Fix minor typos in German README
Kenny Levinsen (28):
desktop/output: Disable head if mode is NULL
swaynag: Use position from wl_pointer.enter
view: Save surface x and y on saved buffers
transaction: Move centering to view_center_surface
shells: Only center tiled views on size change
shells: Align geometry change commit handling
view: Read geometry directly in view_update_size
input: Only commit transactions when necessary
input: Commit transactions in seatop_default
transaction: Only wait for ack from visible views
transactions: Amend pending transactions
container: Move pending state to state struct
render: Use current instead of pending fullscreen
container: Add container_is_current_floating
view: Recursively check mapped of view_child tree
view: Mark subchildren as unmapped in view_child_destroy
view: Set parent for view_child subsurfaces on init
transaction: Note if instructions are server requests
transaction: Remove unused ready_immediately
shells: Update comment about size change on commit
render: Clip surfaces to container bounds
container: Limit tiled focus to container geometry
container: Add view_container_content_at
swaybar: Use position from wl_pointer.enter
ci: Update alpine xwayland package name
view: Handle NULL role object when role is set
idle_inhibit: Store wlr inhibitor instead of view
view: subsurface NULL check in view_from_wlr_surface
Konstantin Pospelov (2):
exec: fix validation during config reload
Check the output state for recorded workspaces
Ludvig Michaelsson (1):
swaybar: don't expand separator_block_width if separator is false
Manuel Stoeckl (4):
desktop/layer_shell: Fix allocation type mismatch
Declare all struct cmd_handler arrays const
Make Wayland request listeners static const when possible
Make command line option lists const
Mark Stosberg (2):
swaymsg.1: correct typo
grimshot: document support for piping to STDOUT.
Martin Michlmayr (1):
Fix typo in bug reporting template
Michael Weiss (2):
meson.build: Fix the version format
contrib/_incr_version: Disallow the "v"-prefixed version format
Michaël Defferrard (1):
readme: link to the development doc
Mukundan314 (1):
Fix #5940
Mustafa Abdul-Kader (1):
swaynag: add details background option
Nick Diego Yamane (1):
seat/dnd: support null drag icon surfaces
Nils Schulte (2):
moved and renamed movement-unit parsing to common
added ppt unit to move position command
Paul Riou (2):
common: make 'lenient_strcmp' arguments const
criteria: fix crash when comparing NULL properties
Pi-Yueh Chuang (1):
swaybar: silence missing IconThemePath message
Pierre-Albéric TROUPLIN (1):
Prevent inactive-windows-transparency.py to crash on lockscreen
Quantum (2):
render: scale titlebars correctly when straddling outputs
render: handle containers without output when rendering titles
Rex Hackbro (4):
fix typos
fix force_display_urgency_hint parsing
document force_display_urgency_hint
document parse_error
Ronan Pigott (28):
input: implement xdg_toplevel interactive resize hints
xdg_shell: schedule configure on maximize requests
sway.5: add missing underscore
view: display scratchpad hidden containers when activated by ftm
commands: disallow runtime include
view: implement foreign toplevel fullscreen indicator
view: implement foreign toplevel fullscreen request
view: remove foreign toplevel listeners on destroy
seat: use default output mapping if there is no input config
tiling_drag: emit window move ipc events
tiling_resize: abandon resize if a sibling con dies
commands/move: fix crash when moving sphsc child
xdg_shell: allow views to change geometry anytime
ci: fix archlinux builds
container: don't split single children
commands/layout: don't change the layout of workspaces with children
Revert "commands/move: maintain workspace_layout when moving"
Change workspace_layout to match i3 behavior
commands/move: rework container_move_in_direction
introduce workspace_squash
commands/move: squash workspace after directional con move
commands/move: reset geometry of promoted containers
workspace: rework workspace prev|next like i3
container: set fullscreen mode before attempting focus
cmd_move: update container representation in sibling swaps
swaymsg: use 3 digits for fractional part of the refresh rate
config/output: correct refresh rate rounding error
output: damage whole output when exiting scanout
Rouven Czerwinski (4):
input/cursor: reset event source after unhide
cursor: arm cursor hide timer immediately
cursor: update hide timer during config apply
ISSUE_TEMPLATE: the wiki is community maintained
Simon Ser (46):
seat: fix segfault in sway_input_method_relay_set_focus
Don't set xwayland cursor when wlr_xwayland failed
Unset DISPLAY when wlr_xwayland fails
tree/view: fix segfault in view_update_title
config/output: don't change output state before commit
Assert output is found before removing from list
Bump wlroots dependency to 0.11.0
Bump version to 1.5
Handle SIGINT
Use wlr_output_event_commit
build: bump wlroots dependency to 0.12.0
Replace wlr_key_state with wl_keyboard_key_state
Add missing includes for wlr_input_device.h
Log which output is using direct scan-out
Handle secondary headless backend failures
build: use WLR_HAS_* to decide whether suid is required
build: introduce sd-bus-provider option
build: add basu as sd-bus provider
Route wlroots logs into Sway logging infrastructure
common/log: write log importance
readme: releases are signed with E88F5E48
readme: remove link to non-existing wiki page
readme: use references for links
Test output before direct scan-out
Remove create_renderer_func argument
Remove call fo...
sway 1.6-rc3
Sway 1.6-rc3 contains 3 changes from 2 contributors. It also contains an X11 focus fix in wlroots.
The recommended wlroots version to use with this release is swaywm/wlroots@7709a96.
Simon Ser (2):
ci: add xcb-util-wm dependency for wlroots
build: bump to version v1.6-rc3
columbarius (1):
config: allow whitespaces in config path
sway 1.6-rc2
Sway 1.6-rc2 contains 9 changes from 4 contributors.
The recommended wlroots version to use with this release is swaywm/wlroots@d9cae04.
Kenny Levinsen (5):
swaybar: Use position from wl_pointer.enter
ci: Update alpine xwayland package name
view: Handle NULL role object when role is set
idle_inhibit: Store wlr inhibitor instead of view
view: subsurface NULL check in view_from_wlr_surface
Pi-Yueh Chuang (1):
swaybar: silence missing IconThemePath message
Simon Ser (1):
build: update version to v1.6-rc2
Tudor Brindus (2):
swaybar: use INT_MAX max JSON depth when parsing IPC response
swaybar: fail gracefully on tokener creation fail
sway 1.6-rc1
Sway 1.6-rc1 contains 221 changes from 65 contributors. It contains an assortment of new features, as well as a lot of bug fixes.
The recommended wlroots version to use with this release is swaywm/wlroots@c740fcc.
New features
- Input method editor (IME) improvements: support for CJK IMEs, allow IMEs to
work on desktop UI components (like lockscreens) - Smoother interactive move/resize operations
- Allow Flatpak and snap applications to better integrate with the system via
the xdg-foreign protocol - Improved i3 compatibility for commands changing the window layout
- Add an option to hide the cursor when typing
- Add tray icon support to systems without systemd/elogind
Full changelog
Aleksei Bavshin (1):
xdg-foreign: add v1 and v2 implementations
Andri Yngvason (4):
desktop: output: Scale custom output refresh rate
input: Clean up input_method_relay in seat_destoy()
input/seat: Clean up focus_stack in seat_destroy()
input/seat: Reset command handler context in seat_destroy()
Antonin Décimo (6):
Fix typos in man page.
ipc: fix aligment issue of data buffer
cmd/bar/colors: fix dereference of null pointer
Log empty value if envvar is not defined
Fix incorrect format specifiers
common/loop: check return of realloc
Arav K (1):
Fix swaybar tray for non-systemd
BrassyPanache (2):
Re-focus on parent surface if it is available
Adhere to ICCCM focus specification
Brian Ashworth (3):
ISSUE_TEMPLATE: Use the newer issue templates
input/libinput: remove input type property bias
input/keyboard: fix Group# bindings for keyboard groups
Campbell Vertesi (1):
Add note on quoting to swaymsg manpage
Charmander (1):
swaybar: allow status line cleanup to proceed when hidden
Daniel De Graaf (1):
commands/resize: don't consider 1px resizes to be invalid
Daniil (1):
Update Russian translation
David96 (2):
Make focus_follows_mouse work when hovering a layer-shell surface on another output
Add missing transaction commits to seatop_default
Dimitris Triantafyllidis (3):
Smart borders fix: always show borders for floating containers
In container_split, set a floating container's view to tiled
Fix #5643, #5064: rounding issues in floating-point -> integer conversions
Drew DeVault (4):
Update version to v1.5-rc2
Remove .github/FUNDING.yml
Remove Patreon links from README.*.md
CONTRIBUTING.md: Add note on sway's scope
Falke Carlsen (1):
Fix typo in README.dk.md
Fenveireth (1):
swaybar: use text subpixel antialias only where it would look good
Geoffrey Casper (2):
Reload command now matches i3's implementation
server: Avoid using "wayland-0" as WAYLAND_DISPLAY See https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/486
Hubert Hirtz (1):
Document required '\n' in swaybar-protocol
Isaac Freund (2):
output: simplify loop over layer surfaces
Drop gtk-primary-selection support
Jan Beich (2):
protocols: sync wlr-layer-shell-unstable-v1 with wlroots
ci: enable basu on freebsd
Jan Palus (1):
Align ordering of core node properties with i3
Johan Bjäreholt (1):
tree/view: Make foreign-toplevel app_id fallback to class
John Mako (1):
check parent surface before it is destroyed
Jonas Große Sundrup (1):
rephrase swayidle-timout example to improve readability
Jonas Hohmann (1):
Fix minor typos in German README
Kenny Levinsen (25):
transaction: Mark client resize immediately ready
seat: Refocus seat when wlr_drag is destroyed
desktop/output: Disable head if mode is NULL
swaynag: Use position from wl_pointer.enter
view: Save surface x and y on saved buffers
transaction: Move centering to view_center_surface
shells: Only center tiled views on size change
shells: Align geometry change commit handling
view: Read geometry directly in view_update_size
input: Only commit transactions when necessary
input: Commit transactions in seatop_default
transaction: Only wait for ack from visible views
transactions: Amend pending transactions
container: Move pending state to state struct
render: Use current instead of pending fullscreen
container: Add container_is_current_floating
view: Recursively check mapped of view_child tree
view: Mark subchildren as unmapped in view_child_destroy
view: Set parent for view_child subsurfaces on init
transaction: Note if instructions are server requests
transaction: Remove unused ready_immediately
shells: Update comment about size change on commit
render: Clip surfaces to container bounds
container: Limit tiled focus to container geometry
container: Add view_container_content_at
Konstantin Pospelov (2):
exec: fix validation during config reload
Check the output state for recorded workspaces
Ludvig Michaelsson (1):
swaybar: don't expand separator_block_width if separator is false
Manuel Stoeckl (4):
desktop/layer_shell: Fix allocation type mismatch
Declare all struct cmd_handler arrays const
Make Wayland request listeners static const when possible
Make command line option lists const
Mark Stosberg (2):
swaymsg.1: correct typo
grimshot: document support for piping to STDOUT.
Martin Michlmayr (1):
Fix typo in bug reporting template
Michael Weiss (2):
meson.build: Fix the version format
contrib/_incr_version: Disallow the "v"-prefixed version format
Michaël Defferrard (1):
readme: link to the development doc
Mukundan314 (1):
Fix #5940
Mustafa Abdul-Kader (1):
swaynag: add details background option
Nick Diego Yamane (1):
seat/dnd: support null drag icon surfaces
Nils Schulte (2):
moved and renamed movement-unit parsing to common
added ppt unit to move position command
Paul Riou (2):
common: make 'lenient_strcmp' arguments const
criteria: fix crash when comparing NULL properties
Pierre-Albéric TROUPLIN (1):
Prevent inactive-windows-transparency.py to crash on lockscreen
Quantum (2):
render: scale titlebars correctly when straddling outputs
render: handle containers without output when rendering titles
Rex Hackbro (4):
fix typos
fix force_display_urgency_hint parsing
document force_display_urgency_hint
document parse_error
Ronan Pigott (27):
input: implement xdg_toplevel interactive resize hints
xdg_shell: schedule configure on maximize requests
sway.5: add missing underscore
view: display scratchpad hidden containers when activated by ftm
commands: disallow runtime include
view: implement foreign toplevel fullscreen indicator
view: implement foreign toplevel fullscreen request
view: remove foreign toplevel listeners on destroy
seat: use default output mapping if there is no input config
tiling_drag: emit window move ipc events
tiling_resize: abandon resize if a sibling con dies
commands/move: fix crash when moving sphsc child
xdg_shell: allow views to change geometry anytime
ci: fix archlinux builds
container: don't split single children
commands/layout: don't change the layout of workspaces with children
Revert "commands/move: maintain workspace_layout when moving"
Change workspace_layout to match i3 behavior
commands/move: rework container_move_in_direction
introduce workspace_squash
commands/move: squash workspace after directional con move
commands/move: reset geometry of promoted containers
workspace: rework workspace prev|next like i3
container: set fullscreen mode before attempting focus
cmd_move: update container representation in sibling swaps
swaymsg: use 3 digits for fractional part of the refresh rate
config/output: correct refresh rate rounding error
Rouven Czerwinski (4):
input/cursor: reset event source after unhide
cursor: arm cursor hide timer immediately
cursor: update hide timer during config apply
ISSUE_TEMPLATE: the wiki is community maintained
Simon Ser (41):
seat: fix segfault in sway_input_method_relay_set_focus
Don't set xwayland cursor when wlr_xwayland failed
Unset DISPLAY when wlr_xwayland fails
tree/view: fix segfault in view_update_title
config/output: don't change output state before commit
Assert output is found before removing from list
Bump wlroots dependency to 0.11.0
Bump version to 1.5
Handle SIGINT
Use wlr_output_event_commit
build: bump wlroots dependency to 0.12.0
Replace wlr_key_state with wl_keyboard_key_state
Add missing includes for wlr_input_device.h
Log which output is using direct scan-out
Handle secondary headless backend failures
build: use WLR_HAS_* to decide whether suid is required
build: introduce sd-bus-provider option
build: add basu as sd-bus provider
Route wlroots logs into Sway logging infrastructure
common/log: write log importance
readme: releases are signed with E88F5E48
readme: remove link to non-existing wiki page
readme: use references for links
Test output before direct scan-out
Remove create_renderer_func argument
Remove call for action from WM enhancement issue template
readme: remove unused ref
man: update maintainer
desktop/xwayland: use index con...
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...