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 recommendation about packaging
Handle present events with NULL timespec field
github: don't truncate debug logs
Remove --my-next-gpu-wont-be-nvidia
Bump RLIMIT_NOFILE
Replace wlr_headless_backend_create_with_renderer call
build: use list for sdbus dep
Delete .clang-format
Fixup headless output names
Add support for linux-dmabuf surface hints
swaynag: remove xdg-output logic
swaybar: fix errno handling in status_handle_readable
Add cairo_image_surface_create error handling
build: bump version to 1.7-rc1
Simon Zeni (4):
view: remove reference to wlr_wl_shell_surface
introduce wlr_drm_lease_v1
sway: create wlr_renderer and wlr_allocator
sway: replace noop_output by fallback_output
Tassilo Horn (1):
Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c
Tobias Langendorf (1):
remove usage of `wlr_texture_get_size`
Tobias Stoeckmann (1):
Fix crash when starting without HOME
Tudor Brindus (2):
tree/view: don't give focus to views mapped under fullscreen views
desktop/xwayland: restack surface upon activation
Vsevolod (1):
Add focused_tab_title
aajonusonline (1):
sway-ipc.7.scd: fix typo
apt-ghetto (1):
Fix IRC links in READMEs and templates
ash lea (1):
container: don't set fullscreen on children
bR3iN (2):
Add `gaps <type> <scope> toggle <px>` command
Add smart_gaps inverse_outer command
columbarius (1):
config: allow whitespaces in config path
frogtile (1):
man: update Pango font description URL
fwsmit (1):
desktop/layer_shell: fix centering for opposing anchors
grumpey (1):
Update Pango font description URL in sway.5.scd
lbonn (1):
build: subproject support for wayland-protocols
mzeinali (1):
Add persian README file
novenary (1):
Don't apply hide_edge_borders to any floating container
quinno (1):
Fix typo in sway.5.scd
sergio (1):
details-gackground typo fix
siikamiika (3):
use node_is_view
commands/focus: focus view inside container
view: add new container as a sibling of tiled view
tomKPZ (1):
Add tab dragging functionality
xdavidwu (1):
swaynag: fix pointer button events on scaled outputs