1.10-rc1
Pre-release
Pre-release
Sway 1.10-rc1 contains 228 changes from 43 contributors.
This pre-release depends on wlroots 0.18.0. See the wlroots release notes.
New features
- All of the enhancements from wlroots 0.18.
- Rewrite the renderer to leverage the wlroots scene-graph API, resulting in improved performance.
- Add GPU reset recovery for improved robustness.
- Add a command to use an ICC profile for an output.
- Improved output configuration algorithm to light up more outputs when the GPU bandwidth is constrained.
WLR_DRM_NO_MODIFIERS
shouldn't be necessary anymore to workaround black screens on Intel. - Add support for IME popups used for CJK.
- Add support for tearing-control-v1, to opt-in for tearing page-flips for gaming use-cases.
- Add support for ext-transient-seat-v1, allowing remoting apps such as wayvnc to create separate temporary seats for input events.
- Add support for ext-foreign-toplevel-list-v1, the new standard protocol to obtain information about other toplevels. This will eventually be used by taskbars, window switchers and per-toplevel screen capture.
- Add support for xdg-shell v5 with popup repositioning and hiding maximize/minimize buttons in CSD.
Changes
dmenu_run
is no longer a dependency of the default config file.- The default config file now contains keybindings with
pactl
for volume adjustment,brightnessctl
for brightness adjustment andgrim
for screenshots. - The legacy
wl_drm
protocol is now disabled by default (superseded by the standard linux-dmabuf-v1 protocol). This causes breakage in xorg-xwayland < 24.1.0, libva < 2.22.0 and amdvlk < 2024.Q4.1, and can be re-enabled manually via-Dlegacy-wl-drm
. - The
xwayland
built-time option has been removed: Xwayland support is now enabled at build-time if it was enabled for wlroots.
Full changelog
-k (2):
Add descriptions for `stacking` and `tabbed` layouts
man: Fix trailing spaces
33KK (1):
Fix `bindsym --to-code` not respecting input configs
Access (1):
text_input: Implement input-method popups
Adam Chovanec (1):
readme: update Czech translation
Aidan Dang (1):
Add `primary_selection` config option
Alan (1):
Update grimshot.1.scd
Aleksei Bavshin (3):
ipc: make `bar <bar_id> mode|hidden_state` behave as documented
xdg-shell: use toplevel geometry to adjust the popup box
xdg-activation: distinguish activation and urgency requests
Alex Maese (3):
sway: Add non-desktop-output type
sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
swaymsg: show non-desktop property when pretty printing outputs
Alexander Browne (1):
Minor update to focus_on_window_activation
Alexander Courtis (1):
Apply new adaptive sync value from wlr-output-management
Alexander Gramiak (1):
sway/input: don't pass possibly invalid modifiers pointer
Alexander Orzechowski (61):
view: Fix null dereference
container_floating_set_default_size: Store workspace size box on the stack
workspace_create: Don't allow NULL name
warp_to_constraint_cursor_hint: Handle NULL view
swaybar: Set opaque region properly
swaybar: Lift background clearing out of main rendering function
Chase wlroots!4067
xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
render: pass rendering state together in a struct
render: Don't pass matrix into render_texture
render: Use wlr_render_pass
Don't crash if there is no damage during render
gamma_control_v1: Reset dirty flag
render: Use wlroots scale filter
swaybar: Implement wp_cursor_shape_v1
swaynag: Implement wp_cursor_shape_v1
Chase wlroots!4331
Don't destroy output layout on exit
output: Destroy when output layout is destroyed
desktop: Rename layers to shell_layers
view: init function should return a success bool
scene_graph: Maintain `wlr_scene_node`s for the sway tree.
scene_graph: Use built-in linux dmabuf feedback handling
scene_graph: Introduce sway_scene_descriptor
renderer: Render scene_graph
scene_graph: Port seat drag icons
scene_graph: Port seatop_move_tiling indicators
scene_graph: Port ext_session_v1
seat: Remove dead seatop_render function
renderer: Remove in favor of scene_graph
Introduce sway_text_node
input: Query scene graph for relevant surface/node intersections
scene_graph: Port layer_shell
scene_graph: Port container server side decorations
transaction: ready signals will return success bools
scene_graph: Port xdg_shell
scene_graph: Port xwayland
xwayland: Cleanup geometry handling on commit
scene_graph: Port view saved buffers
Delete old damage tracking code
container: Don't track outputs
scene_graph: Arrange scene graph on transaction apply
scene_graph: Port opacity and filter modes
scene_graph: Implement toplevel clipping
Fix SIGSEGV on surface destroy
remove damage debug options
scene_graph: port wlr_forgein_toplevel_management output enter/leave events
layer_shell: Fix typo of return instead of continue
Ensure get_text_width() returns a positive value
layer_shell: Arrange popups even if exclusive zone doesn't change
xdg_shell: Extract struct for popup descriptor
layer_shell: Handle popups through popup descriptor
Force bilinear scaling when scaling down
sway_text_node: Allow 0 text width
transaction: Reparent all container children when disabling for scratchpad
container: Skip % char if it doesn't match a view property
text_input: Check for allocation failure
text_input: Move popup placement to own function
transaction: Allow no popup descriptor in popup list
text_input: Properly handle map/unmap events
text_input: Inline input_popup_update into input_popup_set_focus
Alice Carroll (1):
Support cursor capture in grimshot
Aljaz Gantar (2):
fix type error when class_name none
refactor icon_for_window function
Andri Yngvason (2):
sway/commands/output: Add command for unplugging non-physical outputs
Implement transient seat management
Ankit Pandey (3):
commands/move: Warp cursor after moving workspace to another output
root: Try to preserve relative positions of floating containers
root: Set inactive focus when scratchpad is moved to new workspace
Anna (navi) Figueiredo Gomes (2):
sway/config/output.c: fix null deref on output config
sway/commands/move.c: arrange new workspace
Artturin (2):
chase wlroots wlr_renderer_begin_buffer_pass change
chase wlroots 'presentation-time: add separate helper for zero-copy '
AsciiWolf (2):
Translate README to Czech
Fix typo in Czech README translation
Ashraf (1):
Translate README to Arabic
Baltazár Radics (5):
ipc: make get_deco_rect check config->hide_lone_tab
man: sway(5) move fixes
container_get_siblings: handle NULL workspace
Fix input command order (rotation_angle)
ipc: add ability to subscribe to output event
Bart Pelle (1):
docs: fix invalid release signing keys
Bartel Sielski (1):
idle_inhibit: Fix tree view after changes in commit 152a559e
Bartłomiej Burdukiewicz (1):
main: removed vc4 detection code.
Bill Doyle (1):
Only defer seat attachment during initial startup
Bill Li (4):
Updating criteria checking with PCRE2
chase wlroots!4411
Chase wlroots!4482
ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel
Billli11 (1):
Remove wlr_presentation in sway_server struct
Birger Schacht (1):
Fix a couple of typos
Caduser2020 (1):
Simplify swaybar/swaynag scaling code
Callum Andrew (1):
criteria: allow matching for NULL string criteria
Carl Smedstad (6):
Remove duplicate declarations
Add missing includes & remove duplicates
Make cmd_handler.command const
Remove redundant return statements
Replace math functions that promote float to double
Use correct length for strncmp comparison
Cedric Sodhi (1):
Added reference for event types to swaymsg manpage
Cezary Drożak (1):
input/libinput: add scroll_button_lock method
Christian Llupo (1):
README: Added Greek translation
Cole Mickens (1):
meson.build: require wayland-protocols 1.24
Daniel De Graaf (9):
Fix overly-wide mark textures
Avoid format-truncation warning
Shuffle variables to satisfy -Werror=restrict
Implement ext-session-lock-v1
Avoid inspecting a NULL view in seat_set_focus
ext-session-lock: disable direct scan-out when locked
Rework session lock keyboard focus handling
Fix focus tracking when session lock is active
Fix SIGSEGV on output destroy
Daniel Eklöf (2):
sway: commands: exec: restore SIGPIPE before exec:ing
sway: restore SIGPIPE handler before exec:ing swaybar
Daniel Hill (1):
Fix map_to_output * turning off device
Daniel Kahn Gillmor (1):
sway-ipc(7): Escape backslashes correctly in GET_CONFIG output
Daniel Otero (1):
config: Fix swaybar pango_markup inconsistency
David Rosca (4):
seatop_down: Change type of sx, sy to double in begin_seatop_down
Add `output modeline` command
xwayland: Clear wlr_xwayland_surface in handle_destroy
container: Fix crash when view unmaps + maps quickly
David96 (1):
commands/move: Fix crash when pos_y is omitted
Dominique Martinet (1):
view_destroy: fix use-after-free with subsurface_destroy
Drew DeVault (1):
config.in: change terminal emulator to foot
Dudemanguy (6):
container: ignore borders in fullscreen windows
xdg-decoration: let floating clients set borders
view: update wlr_toplevel size on client resizes
Revert "view: update wlr_toplevel size on client resizes"
xdg_shell: update wlr_toplevel size on client resizes
xdg_shell: don't update wlr_toplevel if the container has no size yet
Dylan Araps (1):
Add meson options to enable/disable swaybar and swaynag
EBADBEEF (1):
view: re-apply criteria when window gets unmapped
Elyes HAOUAS (2):
desktop/layer_shell.c: Fix misspelled "exclusive"
sway-input.5.scd: Fix spelling errors
Elyes Haouas (1):
Fix old style function definitions
Elyesa (1):
Add Turkish README
Emil Engberg (1):
Add toggle for output adaptive_sync
Eric Engestrom (2):
cmd_bind_or_unbind_switch: fix copy/paste typo error message
sway: allow IPCs on proprietary drivers
Erik Reider (5):
Added scroll_factor input variable to ipc output
Init the damage_ring bounds on output creation
Fix damage-ring bounds not being set when unplugging -> plugging in monitor
Fix layer old damage not being offset by the monitor layout coords
Add support for wlr-layer-shell ON_DEMAND keyboard interactivity
Eskil (1):
Add Swedish README
Evgeniy Khramtsov (1):
commands: Remove unused code after 1d3681f52135
Felix Pehla (1):
commands/output/color_profile: allows use of relative path for ICC profile
Ferdinand Bachmann (2):
man: document supported modifier names
input: add Super as alternative for Mod4
Ferdinand Schober (4):
allow pointer_constraints on layer_shell surfaces
check for NULL
use seat directly
Use keyboard_state.focused_surface directly
Filip Szczepański (1):
Fix crash in xdg_activation_v1.c
Florian Franzen (1):
sway: add bindgesture command
Furkan Sahin (1):
swaybar: Fix 100% cpu usage if dbus dies.
Greg Depoire--Ferrer (1):
swaynag: move close_button up to fix SIGSEGV
Hodong (1):
swaybar: remove the argument of StatusNotifierHostRegistered
Hongyi (1):
Polish the language in README.zh-CN.md & sync with English one
Hugo Osvaldo Barrera (8):
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
Avoid unecessary string copy
Reject font values that are invalid for pango
Reuse parsed PangoFontDescription
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
James Knight (1):
build: avoid git repository discovery when determining version
Jan Beich (1):
readme: Stop recommending setuid bit for non-logind systems
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
JingMatrix (1):
Add null-safety check for virtual keyboard keymaps
Joan Bruguera (2):
swaybar: Prioritize hotspot events to bar bindings
swaybar: Make hotspots block bar release bindings
Joan Bruguera Micó (1):
layer-shell: Restore interactive layer focus code
Joe Kappus (1):
build: bump wlroots dependency to 0.17.0
Johan Sköld (1):
i3 compat: Adding support for the `all` criteria
John Chadwick (1):
Improve tablet tool button handling.
Jon Wallace (2):
Use heading markdown to demarcate sections of commands Its a little tought to notice that the COMMANDS section is actually 3 sections. Use markdown to make this easier to see for the user.
use subheadings instead
Jonas Große Sundrup (3):
clarify the type of raw output
change incorrectly documented output types
cross-reference further documentation
Kenny Levinsen (55):
ci: Install libseat
meson: libseat is no longer optional
Remove usage of surface->sx|sy
desktop/render: Pass explicit clip box to render
input: Move get_current_time_msec in from util
ci: Test wlroots static linking
readme: Align Danish translation with main README
meson: check: false on run_command
Print deprecation notice when running SUID
Refuse to start when SUID is detected
seat: Avoid sending redundant keymaps on reload
seat: Set keyboard if seat keyboard is NULL
render: Apply clip to rendered texture correctly
render: Clear using wlr_output dimensions
config/output: Split apply_output_config
config/output: Introduce apply_output_configs
output/config: Add apply_all_output_configs
Use apply_all_output_configs to light up outputs
desktop/output: Use apply_output_configs for output mgmt
config/output: Remove apply_output_config
output/config: Remove reset_outputs and co.
config/output: Make merge_output_config static
output/config: Remove unused test_output_config
commands/output/toggle: Use free_output_config
config/output: Refactor handling of tiered configs
server: Use wlr_renderer_get_texture_formats
desktop/output: Fix check if config should be stored
config/output: Use all outputs for config merge
config/output: Search for output config fallbacks
config/output: Print output state during tests
config/output: Skip VRR tests when not supported
desktop/output: Debounce modesets
common/pango: Disable glyph position rounding
desktop/output: Stop repaint loop when not needed
config/output: Do not set adaptive_sync if not supported
config/output: Skip search if config has a mode
desktop/transaction: Deactivate workspace on inactive outputs
config/output: Add support for 6-bit render fmt
config/output: Stringify render format when logging it
desktop/output: Do not use commit listener to arrange
tree/output: Rely on modeset arranging root
(desktop|tree)/output: Do not use layout listener to arrange
desktop/output: Avoid duplicate output manager update
tree/output: Avoid duplicate input mapping configure
tree/arrange: Remove redundant output geometry update
tree/arrange; Skip arranging disabled outputs
config/output: Support multiple matches in find_output_config
config/output: Always start with default in find_output_config
config/output: Accept a list of output_configs to use
config/output: Rename to apply_stored_output_configs
ext-session-lock: Do not use commit listener to arrange
commands/gaps: Check config->reading instead
desktop/output: Expose request_modeset
config: Batch input/output configuration on load
desktop/output: Clear modeset timer on output manager apply
Kirill Chibisov (1):
build: fix building with basu
Kirill Primak (39):
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
swaynag: remove buffer destruction condition
chore: chase wlr_output_layout_get_box() update
Chase wlroots xdg-shell refactor
chore: chase wlroots xdg-shell update
xdg-shell: schedule a configure on maximize request
input: chase delta_discrete semantics change
ci: install hwdata
Use wlr_damage_ring
output: set damage ring bounds to pixel values
input/tablet: handle focusing NULL surface
xwayland: don't rely on event source being data
chore: chase wlroots map logic unification
lock: listen to the correct map signal
xwayland: fix mapped state check in OR handlers
chore: chase wlroots xdg-surface role rework
view: check if the buffer was uploaded on save
xdg-shell: send maximized if tiled isn't supported
xdg-shell: chase events update
layer-shell: don't try to unmap on destroy
layer-shell: wait for an initial commit before configuring
layer-shell: don't configure uninitialized surfaces
Chase wlroots!4003
Chase wlroots!4443
view: drop ext_foreign_destroy
protocols: use tablet-v2 xml from stable/
tearing: remove trailing whitespace
tearing: fix UAF on destroy
Leonardo Hernández Hernández (3):
sway/input: fix bad position of wlr_drag
sway/input: wlr_seat_keyboard() now takes wlr_keyboard
chase wlroots!4316
Lina Banik (1):
seat: Fix reloading cursor theme after change
LordRishav (1):
Add a Hindi (हिन्दी) translation to the README
Lucas Zampieri (1):
Add libinput RotationAngle
Ludvig Michaelsson (1):
swaybar: signal status command's process group
Luofan Chen (1):
input: Rename WLR_INPUT_DEVICE_TABLET_TOOL to WLR_INPUT_DEVICE_TABLET
M.Zeinali (1):
readme: use right-to-left marks in ir translation
Manuel Stoeckl (13):
commands/exec: stop truncating >4095-byte commands
Update URL to wlroots project (GitHub->GitLab)
Add 'output render_bit_depth [8|10]' command
sway/main: move constants off the stack
Use shm_open instead of mkstemp
swaynag: call swaynag_destroy on clean exit
swaybar: handle wayland-cursor failures
sway/server: Fix null pointer crash when Xwayland disabled
common: Drop unused render_background_image
common: rename load_background_image to load_image
common: move load_image to swaybar
desktop/layer_shell: provide fractional scale on creation
sway/commands/output: Add command to set color profile
Marco Rubin (1):
Translated README into Italian
Mark Bolhuis (1):
input: Move wlr_pointer_gestures_v1 to sway_input_manager
Martin Michlmayr (1):
sway-output.5: improve display of parameter
Matt Fellenz (1):
Use locale time format for default bar command
Merlin Lex (1):
ext-foreign-toplevel-list: Implement protocol
Michael Weiser (2):
Prevent use-after-free on first bar subcommand error
config: Remove unused mouse binding structure
Moon Sungjoon (1):
sway/input: destroy sway_switch properly
Muhamed Hobi (1):
Fix snprintf compiler warning
Mukundan314 (1):
swaybar: always subscribe to mode and workspace
Nathan Schulte (5):
swaybar: properly draw urgent block right border
swaybar: properly draw blocks with transparent black border
swaybar: fix cairo_font_options leak
swaybar: fix tray_padding vs min-height re: scale
swaybar: fix tray item icon scaling, positioning
NemuiBanila (1):
seat: Fix cursor theme reload for tablet tool
Nick Kipshidze (1):
Add Georgian README
Nicolas Avrutin (1):
commands/focus: fix segfault when no container is already focused.
Nihal Jere (11):
config.in: use portable hour specifier
config.in: use swaynag -B instead of -b
swaynag: die on all allocation failures
swaynag: allocate button_details with details
swaynag: statically allocate button_close, and move declaration
swaynag: remove unnecessary zero of swaynag struct
swaynag: remove redundant status variables in main
remove unnecessary strlen call
swaynag: do error checking and rename read_from_stdin
swaynag: improve robustness when loading config
swaynag: combine consecutive declaration/assignments
Norbert Bolanowski (1):
move title_format to container
Olivia Taliesin (1):
Removed destination-is-ancestor check from container_move_to_container to match i3 behaviour
Oğuz Ersen (1):
bash-completion: localize variables
Patrick Hilhorst (1):
treat fullscreen windows as 'tiled' for commands/focus
Puck Meerburg (2):
tree: support formatting null titles
criteria: allow matching on empty (NULL) titles
Radical (1):
Add Norwegian READMR
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
Ricardo Steijn (1):
Add support for tearing-control-v1
RoastVeg (1):
Handle border width and height on minimum floating sizes
Robin Jarry (1):
Allow windows in scratchpad to set the urgent flag
Ronan Pigott (35):
output: damage whole output when exiting scanout
container: retain focus position on floating enable
cmd_fullscreen: allow fullscreen on fullscreen split containers
workspace: reap empty parents when adding tiles
xdg-shell: ignore unecessary fullscreen request ouput hints
cmd_fullscreen: ignore fullscreen request on workspaces
view: commit transactions for foreign toplevel requests
layer_shell: damage previous area when a surface shrinks
command: implement split none
commands: update split none command for a047b5ee4
output: change output::destroy to output::disable
output: emit node::destroy event
cmd/swap: error on swapping a container with itself
root: move the workspace matching code to its own file
node: prettify node type names
launcher: track workspaces by node
launcher: use xdga tokens
launcher: rename pid_workspace to launcher_ctx
view: associate launch contexts with views
launcher: initialize launcher_ctxs once on startup
launcher: fudge the interface a bit
launcher: export xdga tokens and use them for workspace matching
launcher: export X startup ids and use them for workspace matching
criteria: be lenient on window_role and instance too
input: enable user xkb configs with cap_sys_nice
view: make request_activate take a seat
launcher: make launcher context seat aware
launcher: support external launcher tokens
xdg-activation: fix urgency when the client does not specify a seat
container: rehome the container_swap function into container.c
Add a .mailmap file
launcher: track the seat in the launcher ctx
commands/move: do not force focus on the moved container
view: send scale notification when the output is known
xdg-activation: launcher tokens are activation requests
Rouven Czerwinski (5):
view: handle case where map_ws is NULL
transaction: destroying nodes aren't hidden
server: request xdg-shell v2
realtime: request SCHED_RR using CAP_SYS_NICE
gamma_control_v1: handle destroyed output
Scott Dubinsky (1):
Remove unguarded double include
Sefa Eyeoglu (4):
fix: handle NULL from json_tokener_new_ex
fix: use sane value for json_tokener max_depth
refactor: use sway_abort instead
build: bump wlroots dependency to 0.16.0
Sergei Trofimovich (2):
swaynag/config.c: fix build against gcc-14 (-Walloc-size)
sway/config.c: use `memcpy()` for known buffer size
Seth Barberee (1):
[IPC] Add repeat delay/rate info to keyboard
Shaked Flur (1):
man: add --inhibited and --no-repeat to bindsym and bindcode usage
Simon Plakolb (2):
input: Use seatop_down on layer surface click
seatop_down: End if surface is destroyed or other seatop starts
Simon Ser (243):
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
swaymsg: replace if with switch in pretty_print
swaymsg: add GET_TREE pretty-printing
swaybar: fix errno handling in status_handle_readable
Add cairo_image_surface_create error handling
build: bump version to 1.8-dev
Destroy sub-surfaces with parent layer-shell surface
Add safety assert in parse_movement_unit
Upgrade for wlroots surface refactoring
commands/focus: drop trailing whitespace
build: execute wlroots subproject before finding deps
Use bools for CLI flags
readme: add link to Italian translation
readme: sort language list alphabetically
readme: use relative links for translations
xdg-shell: use wlr_xdg_toplevel in sway_view
xdg-shell: use wlr_xdg_popup in sway_xdg_popup
Remove all sprintf calls
Remove WLR_SWITCH_STATE_TOGGLE usage
swaybar: remove swaybar_output.input_region
swaybar: set opaque region
Replace strncpy with memcpy
De-duplicate IPC output descriptions
Handle NULL output make/model/serial
build: link with -pthread
ipc: remove chatty debug log messages
config/output: use wlr_output_commit_state
Remove access to wlr_input_device union
Rename dpms output command to power
ipc: add "power" to output reply
config.in: switch to `output power`
Remove internal references to DPMS
Enable single-pixel-buffer-v1
ipc: drop WLR_OUTPUT_ADAPTIVE_SYNC_UNKNOWN case
config/output: test adaptive sync
ipc: expose mode picture aspect ratio
swaymsg: show mode picture aspect ratio
build: simplify protocol paths
Fix leaks in criteria_destroy()
Add support for ext-idle-notify-v1
Use wl_signal_emit_mutable()
lock: fix crash on output destroy
input/seat: locally compute drag icon offset
Listen to the output request_state event
ipc: add view content type
Update for wlroots!3814
build: drop wayland-scanner fallback
build: unify server & client protocol generation
build: drop "server" from target name for protocol code
build: drop intermediate libraries for protocols
build: drop unused wayland-egl dependency
build: bump version to 1.9-dev
Make GLES2 optional
Make DRM backend optional
Make session optional
Make libinput backend optional
build: remove trailing newline at end of file
build: move completions to separate file
build: fix have_xwayland when xcb-icccm is not found
Chase breaking changes in wlroots!3903
ci: install Xwayland .pc file
swaynag: fix NULL font description
swaynag: drop swaynag_type.font
man: fix typo in output disable docs
tree/container: drop unnecessary check in container_get_siblings()
Send wl_surface.enter for ext-session-lock surfaces
Fix indentation in surface_is_xdg_popup()
Fix pointer events for ext-session-lock surfaces
Check return value of wlr_renderer_begin()
Switch default menu to wmenu
ipc: add support for output event
Convert to wlr_xwayland_surface_try_from_wlr_surface()
Convert to *_try_from_wlr_surface()
swaymsg: print output power status
swaymsg: s/inactive/disabled/
ci: install hwdata-dev on Alpine
Use wlr_linux_dmabuf_feedback_v1_init_with_options()
Introduce surface_{enter,leave}_output()
Add support for fractional-scale-v1
Update surface fractional scale on output change
layer-shell: enter output before surface is mapped
Adjust scale for fractional-scale-v1
Constify pixman_region32_t for rendering functions
Move output commit out of output_render()
Check for empty damage before attaching render buffer
man: deprecate seat cursor move/set/press/release
ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
Remove duplicate wlr_damage_ring_set_bounds() call
Pass version to wlr_compositor_create()
Skip direct scan-out commit when damage is empty
Set output damage during direct scan-out
Introduce output_match_name_or_id()
Use all_output_by_name_or_id() in merge_id_on_name()
Use output_match_name_or_id() in apply_output_config_to_outputs()
Use output_match_name_or_id() in workspace functions
Add format_str() and vformat_str()
pango: add printf attribute
commands/floating_minmax_size: fix error strings
commands: add printf attribute to cmd_results_new()
config: add printf attribute to config_add_swaynag_warning()
swaynag: add printf attribute to swaynag_log()
common/gesture: use format_str()
Use format_str() throughout
render: fix titlebar texture clipping
Handle gamma-control-v1 set_gamma events
desktop/output: use detached output state for page-flips
desktop/output: fix damage bitfield in wlr_output_state
Use wlr_cursor_set_xcursor()
Use wlr_cursor_unset_image()
idle-inhibit-v1: simplify with server global
Use "default" XCursor instead of "left_ptr"
Send wl_surface.preferred_buffer_scale
swaynag: handle wayland-cursor failures
Deprecate seat idle_wake
Add support for cursor-shape-v1
desktop/output: drop logic to handle backend-applied mode
desktop/output: drop handle_mode()
desktop/output: fix output manager enabled state
output: drop current_mode
Move contrib/ to separate repository
Hide xwayland_shell_v1 from regular clients
Drop support for KDE's idle protocol
input/seat: don't configure mappings for switches
input/seat: rename seat_apply_input_config
Only reconfigure input mappings on output change
input/input-manager: drop input_manager_configure_all_inputs
Apply gamma LUT when an output re-enabled
Add support for security-context-v1
Fix reference to wlr_output_event_commit.committed
Add wlr/util/transform.h includes
Pass wl_display to wlr_output_layout
desktop/xwayland: correctly handle association on o-r change
Drop fglrx detection
Detect Nvidia proprietary driver via drmGetVersion()
Detect proprietary DisplayLink drivers
input/seat: drop exclusive_client
input/{keyboard,switch}: rename input_inhibited variable to locked
input/seat: inline seat_set_exclusive_client() with NULL client
input/seat: rename seat_set_exclusive_client()
input/seat: simplify seat_is_input_allowed()
Check wlr_pointer_constraint_v1_state.cursor_hint.enabled
input: reconfigure send_events on output hotplug
readme: add swaybg as optional dep
Drop wl_drm
Mark DRM lease protocol privileged
Clarify gdk-pixbuf dependency purpose
Add debug flag to re-enable wl_drm
build: bump version to 1.10-dev
Drop old security config remnants
commands/primary_selection: drop duplicate bool parsing
commands: note how xwayland/primary_selection are reset on reload
commands: make primary_selection a config-only command
config: use format_str() instead of hand-rolled snprintf()
Fix build with wlroots DRM backend disabled
Drop unnecessary includes from sway/server.h
input/text_input: fix dangling listeners
Define _POSIX_C_SOURCE globally
Add release script
Convert to new pointer enums
config: error out on keysym translation XKB state failure
config: add fallback without env vars for keysym translation XKB keymap
Fetch input device vendor/product from libinput
xdg-shell: implement popup repositioning
xdg-shell: send WM capabilities
config/output: drop enabling flag
server: fix wlr_seat use-after-free on exit
Re-create renderer when lost
man: drop fractional scale warning
man: document that the scale might be adjusted
input: pass wlr_seat_client to wlr_seat_touch_notify_cancel()
config/output: fix NULL derefs in store_output_config()
config/output: drop fast path in store_output_config()
tree/container: ensure pixman rect is valid in container_arrange_title_bar()
build: disable wayland-protocols subproject tests by default
build: drop xwayland option
server: hide xdg_output from unprivileged clients
input/text_input: ensure keyboard is set before sending modifiers
Drop server.h include from input/input-manager.h
Set color transform when calling wlr_scene_output_build_state()
tree/view: set default min size to 1×1
tree/view: ensure content_{width,height} is positive
desktop/output: unify page-flip codepath
tree/container: drop decl for container_update_textures_recursive()
sway_text_node: avoid unnecessary redraws
ci: pin wlroots to v0.18.x
desktop/xwayland: don't restack when marking window as inactive
Bind a few utilities to special keys in default config
Switch default config to wmenu-run
Add support for alpha-modifier-v1
build: bump version to 1.10-rc1
Simon Zeni (13):
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
sway/commands: add missing wlr_keyboard interface include in xkb_switch_layout
sway/input: use wlr_input_device from input device base
sway/input/cursor: take device mm size from wlr_tablet
sway/input/seat: take output name from specialized input device
sway/input: follow up wlroots input device events renaming
sway/server: specify wlr-layer-shell version on creation
sway/desktop/output: listen to output mode in commit handle
sway/lock: handle mode in output commit handler
ci: add libdisplay-info dependency
Stacy Harper (1):
Implement seatop_touch
Stanislav Ochotnický (1):
man: add warning for hide_cursor configuration
Steffen Dirkwinkel (1):
config/output: support DRM_FORMAT_ARGB8888
Tamino Bauknecht (4):
gitignore: Ignore clangd-generated directory .cache/
config/output: Allow approximation of output refresh rate
sway: raise error on non-accessible background file
sway/output: Improve logging of swaybg execvp failure and more checks
Tarcísio Eduardo Moreira Crocomo (2):
Implement clickfinger_button_map support.
build: bump libinput version required
Tassilo Horn (1):
Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c
Thomas Hebb (4):
input/seat: unset has_focus when focus_stack becomes empty
Remove some erroneous apostrophes in comments
Don't enter seatop_move_floating when fullscreen
layer_shell: keep output non-NULL wherever possible
Thomas Jost (1):
Strip quotes in bindsym --input-device=...
Tobias Bengfort (2):
tray: do not render passive items
focus_on_window_activation: raise if floating
Tobias Langendorf (1):
remove usage of `wlr_texture_get_size`
Tobias Predel (1):
root: free non_desktop_outputs list on root_destroy
Tobias Stoeckmann (1):
Fix crash when starting without HOME
Tudor Brindus (8):
tree/view: don't give focus to views mapped under fullscreen views
desktop/xwayland: restack surface upon activation
input/cursor: count pointer gestures as idle activity
input/cursor: treat swipe begin as idle activity too
input/cursor: pass through pointer hold gestures
input: focus floating container when clicked on border
input: focus container when scrolling on titlebar
input: tweak focus behavior to allow focusing parent containers
Tuomas Yrjölä (1):
xwayland: listen to `request_activate` event
Victor Makarov (1):
xkb_switch_layout: fix relative layout switches
Violet Purcell (2):
sway/config.c: only reset primary_selection at launch
Update for versioned wlroots files
Vsevolod (1):
Add focused_tab_title
Yaroslav de la Peña Smirnov (1):
Fix keymap being NULL and segfaulting on dev add
Yasin Silavi (1):
Fix farsi label
aajonusonline (1):
sway-ipc.7.scd: fix typo
apreiml (1):
Update README.de.md to match the EN one
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
bretello (3):
fix crash when resizing tiled scratchpad windows
fix crash when setting urgency on an hidden scratchpad container
prevent workspace_find_container from crashing with NULL workspaces
columbarius (1):
config: allow whitespaces in config path
cparm (1):
Avoid double free in criteria_destroy()
denppa (1):
build: fix build with wayland-scanner subproject
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
hrdl (3):
Add support for touch cancel events
handle_touch_cancel: fix begin default
seatop_down: Call seatop_begin_default after sending touch events
iff (2):
commands/input/map_from_region: don't treat 0x prefix as hex identifier
Update sway-input.5.scd
kraftwerk28 (2):
Chase wlroots X11 hints update
Allocate enough space for `cmd_results->error`
lbonn (1):
build: subproject support for wayland-protocols
llyyr (17):
swaymsg: fix floating_nodes being ignored
grimshot: fix tilde expansion within quotes
sway{,bar}: use default font hint style
swaybar: don't set current workspace as not visible
meson: bump wlroots version after 0.17.0 release
Chase wlroots!4440
input/text_input: parent wlr_box may be uninitialized
text_input: don't destroy scene_node twice
ipc: add `floating` property to GET_TREE
ipc: add `scratchpad_state` property to GET_TREE
input/keyboard: don't send key release if we don't have focused surface
input/seat: don't send redundant leave/enter on device creation
input/keyboard: refactor into sway_keyboard_set_layout
input/keyboard: don't set layout for virtual keyboard device
xdg_shell: don't send configure events to uninitialized surfaces
sway/tree/container: don't trunc coords in `floating_fix_coordinates`
sway/input/keyboard: always set active keyboard if there is none
luzpaz (1):
Fix typo
mrusme (1):
Update sway.5.scd
mzeinali (1):
Add persian README file
ndren (1):
Replace pcre with pcre2
nerdopolis (1):
Fix build on Debian Stable
novenary (4):
Don't apply hide_edge_borders to any floating container
Disable direct scanout for surfaces with popups
transaction: fix missing top border with hide_lone_tab
ipc: properly check for titlebars
nukoseer (1):
Calculate tiled resize amount relative to parent container
ohno418 (1):
Improve Japanese translation
ookami (1):
Rebase all cursors in handle_surface_map
pudiva chip líquida (1):
Support libinput's 1.21 new dwtp option
quinno (1):
Fix typo in sway.5.scd
rj1 (1):
fix typo
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
thal (1):
tree/view: Do not clip to geometry if using CSD
tomKPZ (1):
Add tab dragging functionality
xdavidwu (1):
swaynag: fix pointer button events on scaled outputs
zkldi (1):
fix: remove redundant empty statement in main.c
Łukasz Adamczak (2):
Correct window_rect.y with hide_edge_borders
Clarify documentation for window_rect
マリウス (1):
man: Add XWayland information