Sway Versions Save

i3-compatible Wayland compositor

1.9

2 months ago

Sway 1.9 contains 238 changes from 67 contributors.

This release depends on wlroots 0.17.0. See the wlroots release notes.

New features

  • All of the enhancements from wlroots 0.17, including support for the new content-type-v1, xwayland-shell-v1, wp-fractional-scale-v1, security-context-v1 and cursor-shape-v1 protocols
  • Improved xdg-activation-v1 support with workspace tracking and multi-seat
  • The rendering code has been ported to the new wlroots rendering API, yielding better performance
  • A new config option to disable primary selection
  • A new input commands to set libinput's rotation angle and scroll button lock
  • Tablet tool buttons can now be used for floating mode resize
  • The IPC output event is now supported
  • Add support for layer-shell's on-demand keyboard interactivity

Changes

  • The default menu has been changed to wmenu: #7384
  • The KDE idle protocol is no longer supported (superseded by the standard idle-notify-v1 protocol)
Full changelog
33KK (1):
      Fix `bindsym --to-code` not respecting input configs

Aidan Dang (1):
      Add `primary_selection` config option

Aleksei Bavshin (1):
      xdg-activation: distinguish activation and urgency requests

Alexander Courtis (1):
      Apply new adaptive sync value from wlr-output-management

Alexander Orzechowski (16):
      workspace_create: Don't allow NULL name
      warp_to_constraint_cursor_hint: Handle NULL view
      swaybar: Set opaque region properly
      swaybar: Lift background clearing out of main rendering function
      Chase wlroots!4067
      xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
      render: pass rendering state together in a struct
      render: Don't pass matrix into render_texture
      render: Use wlr_render_pass
      Don't crash if there is no damage during render
      gamma_control_v1: Reset dirty flag
      render: Use wlroots scale filter
      swaybar: Implement wp_cursor_shape_v1
      swaynag: Implement wp_cursor_shape_v1
      Chase wlroots!4331
      output: Destroy when output layout is destroyed

Ankit Pandey (3):
      commands/move: Warp cursor after moving workspace to another output
      root: Try to preserve relative positions of floating containers
      root: Set inactive focus when scratchpad is moved to new workspace

Artturin (2):
      chase wlroots wlr_renderer_begin_buffer_pass change
      chase wlroots 'presentation-time: add separate helper for zero-copy '

AsciiWolf (2):
      Translate README to Czech
      Fix typo in Czech README translation

Ashraf (1):
      Translate README to Arabic

Baltazár Radics (2):
      Fix input command order (rotation_angle)
      ipc: add ability to subscribe to output event

Bill Li (1):
      chase wlroots!4411

Carl Smedstad (6):
      Remove duplicate declarations
      Add missing includes & remove duplicates
      Make cmd_handler.command const
      Remove redundant return statements
      Replace math functions that promote float to double
      Use correct length for strncmp comparison

Cedric Sodhi (1):
      Added reference for event types to swaymsg manpage

Cezary Drożak (1):
      input/libinput: add scroll_button_lock method

Daniel Hill (1):
      Fix map_to_output * turning off device

Dudemanguy (4):
      view: update wlr_toplevel size on client resizes
      Revert "view: update wlr_toplevel size on client resizes"
      xdg_shell: update wlr_toplevel size on client resizes
      xdg_shell: don't update wlr_toplevel if the container has no size yet

EBADBEEF (1):
      view: re-apply criteria when window gets unmapped

Elyes Haouas (1):
      Fix old style function definitions

Erik Reider (4):
      Init the damage_ring bounds on output creation
      Fix damage-ring bounds not being set when unplugging -> plugging in monitor
      Fix layer old damage not being offset by the monitor layout coords
      Add support for wlr-layer-shell ON_DEMAND keyboard interactivity

Hodong (1):
      swaybar: remove the argument of StatusNotifierHostRegistered

Jan Beich (1):
      readme: Stop recommending setuid bit for non-logind systems

Joan Bruguera (2):
      swaybar: Prioritize hotspot events to bar bindings
      swaybar: Make hotspots block bar release bindings

Joe Kappus (1):
      build: bump wlroots dependency to 0.17.0

Johan Sköld (1):
      i3 compat: Adding support for the `all` criteria

John Chadwick (1):
      Improve tablet tool button handling.

Kenny Levinsen (4):
      seat: Avoid sending redundant keymaps on reload
      seat: Set keyboard if seat keyboard is NULL
      render: Apply clip to rendered texture correctly
      render: Clear using wlr_output dimensions

Kirill Primak (9):
      output: set damage ring bounds to pixel values
      input/tablet: handle focusing NULL surface
      xwayland: don't rely on event source being data
      chore: chase wlroots map logic unification
      lock: listen to the correct map signal
      xwayland: fix mapped state check in OR handlers
      chore: chase wlroots xdg-surface role rework
      view: check if the buffer was uploaded on save
      xdg-shell: send maximized if tiled isn't supported

Leonardo Hernández Hernández (1):
      chase wlroots!4316

Lina Banik (1):
      seat: Fix reloading cursor theme after change

Lucas Zampieri (1):
      Add libinput RotationAngle

Manuel Stoeckl (4):
      Use shm_open instead of mkstemp
      swaynag: call swaynag_destroy on clean exit
      swaybar: handle wayland-cursor failures
      sway/server: Fix null pointer crash when Xwayland disabled

Mark Bolhuis (1):
      input: Move wlr_pointer_gestures_v1 to sway_input_manager

Matt Fellenz (1):
      Use locale time format for default bar command

Mukundan314 (1):
      swaybar: always subscribe to mode and workspace

NemuiBanila (1):
      seat: Fix cursor theme reload for tablet tool

Nick Kipshidze (1):
      Add Georgian README

Radical (1):
      Add Norwegian READMR

Robin Jarry (1):
      Allow windows in scratchpad to set the urgent flag

Ronan Pigott (19):
      root: move the workspace matching code to its own file
      node: prettify node type names
      launcher: track workspaces by node
      launcher: use xdga tokens
      launcher: rename pid_workspace to launcher_ctx
      view: associate launch contexts with views
      launcher: initialize launcher_ctxs once on startup
      launcher: fudge the interface a bit
      launcher: export xdga tokens and use them for workspace matching
      launcher: export X startup ids and use them for workspace matching
      criteria: be lenient on window_role and instance too
      input: enable user xkb configs with cap_sys_nice
      view: make request_activate take a seat
      launcher: make launcher context seat aware
      launcher: support external launcher tokens
      xdg-activation: fix urgency when the client does not specify a seat
      container: rehome the container_swap function into container.c
      Add a .mailmap file
      launcher: track the seat in the launcher ctx

Rouven Czerwinski (1):
      gamma_control_v1: handle destroyed output

Sergei Trofimovich (2):
      swaynag/config.c: fix build against gcc-14 (-Walloc-size)
      sway/config.c: use `memcpy()` for known buffer size

Shaked Flur (1):
      man: add --inhibited and --no-repeat to bindsym and bindcode usage

Simon Ser (100):
      input/seat: locally compute drag icon offset
      Listen to the output request_state event
      ipc: add view content type
      Update for wlroots!3814
      build: drop wayland-scanner fallback
      build: unify server & client protocol generation
      build: drop "server" from target name for protocol code
      build: drop intermediate libraries for protocols
      build: drop unused wayland-egl dependency
      build: bump version to 1.9-dev
      Make GLES2 optional
      Make DRM backend optional
      Make session optional
      Make libinput backend optional
      build: remove trailing newline at end of file
      build: move completions to separate file
      build: fix have_xwayland when xcb-icccm is not found
      Chase breaking changes in wlroots!3903
      ci: install Xwayland .pc file
      swaynag: fix NULL font description
      swaynag: drop swaynag_type.font
      man: fix typo in output disable docs
      tree/container: drop unnecessary check in container_get_siblings()
      Send wl_surface.enter for ext-session-lock surfaces
      Fix indentation in surface_is_xdg_popup()
      Fix pointer events for ext-session-lock surfaces
      Check return value of wlr_renderer_begin()
      Switch default menu to wmenu
      ipc: add support for output event
      Convert to wlr_xwayland_surface_try_from_wlr_surface()
      Convert to *_try_from_wlr_surface()
      swaymsg: print output power status
      swaymsg: s/inactive/disabled/
      ci: install hwdata-dev on Alpine
      Use wlr_linux_dmabuf_feedback_v1_init_with_options()
      Introduce surface_{enter,leave}_output()
      Add support for fractional-scale-v1
      Update surface fractional scale on output change
      layer-shell: enter output before surface is mapped
      Adjust scale for fractional-scale-v1
      Constify pixman_region32_t for rendering functions
      Move output commit out of output_render()
      Check for empty damage before attaching render buffer
      man: deprecate seat cursor move/set/press/release
      ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
      Remove duplicate wlr_damage_ring_set_bounds() 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
      ci: checkout wlroots 0.17
      desktop/xwayland: correctly handle association on o-r change
      input: reconfigure send_events on output hotplug
      readme: add swaybg as optional dep
      Mark DRM lease protocol privileged
      Clarify gdk-pixbuf dependency purpose
      build: bump version to 1.9-rc.1
      build: bump version to 1.9-rc.2
      build: bump version to 1.9-rc.3
      commands: make primary_selection a config-only command
      Fix build with wlroots DRM backend disabled
      build: bump version to 1.9-rc.4
      build: bump version to 1.9

Simon Zeni (4):
      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

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

Tobias Bengfort (1):
      focus_on_window_activation: raise if floating

Tobias Predel (1):
      root: free non_desktop_outputs list on root_destroy

Violet Purcell (1):
      sway/config.c: only reset primary_selection at launch

bretello (1):
      fix crash when resizing tiled scratchpad windows

denppa (1):
      build: fix build with wayland-scanner subproject

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

llyyr (2):
      sway{,bar}: use default font hint style
      swaybar: don't set current workspace as not visible

luzpaz (1):
      Fix typo

mrusme (1):
      Update sway.5.scd

nerdopolis (1):
      Fix build on Debian Stable

novenary (1):
      Disable direct scanout for surfaces with popups

nukoseer (1):
      Calculate tiled resize amount relative to parent container

ookami (1):
      Rebase all cursors in handle_surface_map

rj1 (1):
      fix typo

Łukasz Adamczak (2):
      Correct window_rect.y with hide_edge_borders
      Clarify documentation for window_rect

1.9-rc4

2 months ago

1.9-rc3

3 months ago

1.9-rc2

3 months ago

1.9-rc1

3 months ago

Sway 1.9-rc1 contains 227 changes from 65 contributors.

This pre-release depends on wlroots 0.17.0. See the wlroots release notes.

New features

  • All of the enhancements from wlroots 0.17, including support for the new content-type-v1, xwayland-shell-v1, wp-fractional-scale-v1, security-context-v1 and cursor-shape-v1 protocols
  • Improved xdg-activation-v1 support with workspace tracking and multi-seat
  • The rendering code has been ported to the new wlroots rendering API, yielding better performance
  • A new config option to disable primary selection
  • A new input commands to set libinput's rotation angle and scroll button lock
  • Tablet tool buttons can now be used for floating mode resize
  • The IPC output event is now supported
  • Add support for layer-shell's on-demand keyboard interactivity

Changes

  • The default menu has been changed to wmenu: #7384
  • The KDE idle protocol is no longer supported (superseded by the standard idle-notify-v1 protocol)
Full changelog
33KK (1):
      Fix `bindsym --to-code` not respecting input configs

Aidan Dang (1):
      Add `primary_selection` config option

Alexander Courtis (1):
      Apply new adaptive sync value from wlr-output-management

Alexander Orzechowski (16):
      workspace_create: Don't allow NULL name
      warp_to_constraint_cursor_hint: Handle NULL view
      swaybar: Set opaque region properly
      swaybar: Lift background clearing out of main rendering function
      Chase wlroots!4067
      xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
      render: pass rendering state together in a struct
      render: Don't pass matrix into render_texture
      render: Use wlr_render_pass
      Don't crash if there is no damage during render
      gamma_control_v1: Reset dirty flag
      render: Use wlroots scale filter
      swaybar: Implement wp_cursor_shape_v1
      swaynag: Implement wp_cursor_shape_v1
      Chase wlroots!4331
      output: Destroy when output layout is destroyed

Ankit Pandey (3):
      commands/move: Warp cursor after moving workspace to another output
      root: Try to preserve relative positions of floating containers
      root: Set inactive focus when scratchpad is moved to new workspace

Artturin (2):
      chase wlroots wlr_renderer_begin_buffer_pass change
      chase wlroots 'presentation-time: add separate helper for zero-copy '

AsciiWolf (2):
      Translate README to Czech
      Fix typo in Czech README translation

Ashraf (1):
      Translate README to Arabic

Baltazár Radics (2):
      Fix input command order (rotation_angle)
      ipc: add ability to subscribe to output event

Bill Li (1):
      chase wlroots!4411

Carl Smedstad (6):
      Remove duplicate declarations
      Add missing includes & remove duplicates
      Make cmd_handler.command const
      Remove redundant return statements
      Replace math functions that promote float to double
      Use correct length for strncmp comparison

Cedric Sodhi (1):
      Added reference for event types to swaymsg manpage

Cezary Drożak (1):
      input/libinput: add scroll_button_lock method

Daniel Hill (1):
      Fix map_to_output * turning off device

Dudemanguy (4):
      view: update wlr_toplevel size on client resizes
      Revert "view: update wlr_toplevel size on client resizes"
      xdg_shell: update wlr_toplevel size on client resizes
      xdg_shell: don't update wlr_toplevel if the container has no size yet

EBADBEEF (1):
      view: re-apply criteria when window gets unmapped

Elyes Haouas (1):
      Fix old style function definitions

Erik Reider (4):
      Init the damage_ring bounds on output creation
      Fix damage-ring bounds not being set when unplugging -> plugging in monitor
      Fix layer old damage not being offset by the monitor layout coords
      Add support for wlr-layer-shell ON_DEMAND keyboard interactivity

Hodong (1):
      swaybar: remove the argument of StatusNotifierHostRegistered

Jan Beich (1):
      readme: Stop recommending setuid bit for non-logind systems

Joan Bruguera (2):
      swaybar: Prioritize hotspot events to bar bindings
      swaybar: Make hotspots block bar release bindings

Joe Kappus (1):
      build: bump wlroots dependency to 0.17.0

Johan Sköld (1):
      i3 compat: Adding support for the `all` criteria

John Chadwick (1):
      Improve tablet tool button handling.

Kenny Levinsen (4):
      seat: Avoid sending redundant keymaps on reload
      seat: Set keyboard if seat keyboard is NULL
      render: Apply clip to rendered texture correctly
      render: Clear using wlr_output dimensions

Kirill Primak (9):
      output: set damage ring bounds to pixel values
      input/tablet: handle focusing NULL surface
      xwayland: don't rely on event source being data
      chore: chase wlroots map logic unification
      lock: listen to the correct map signal
      xwayland: fix mapped state check in OR handlers
      chore: chase wlroots xdg-surface role rework
      view: check if the buffer was uploaded on save
      xdg-shell: send maximized if tiled isn't supported

Leonardo Hernández Hernández (1):
      chase wlroots!4316

Lina Banik (1):
      seat: Fix reloading cursor theme after change

Lucas Zampieri (1):
      Add libinput RotationAngle

Manuel Stoeckl (4):
      Use shm_open instead of mkstemp
      swaynag: call swaynag_destroy on clean exit
      swaybar: handle wayland-cursor failures
      sway/server: Fix null pointer crash when Xwayland disabled

Mark Bolhuis (1):
      input: Move wlr_pointer_gestures_v1 to sway_input_manager

Matt Fellenz (1):
      Use locale time format for default bar command

Mukundan314 (1):
      swaybar: always subscribe to mode and workspace

NemuiBanila (1):
      seat: Fix cursor theme reload for tablet tool

Nick Kipshidze (1):
      Add Georgian README

Radical (1):
      Add Norwegian READMR

Robin Jarry (1):
      Allow windows in scratchpad to set the urgent flag

Ronan Pigott (18):
      root: move the workspace matching code to its own file
      node: prettify node type names
      launcher: track workspaces by node
      launcher: use xdga tokens
      launcher: rename pid_workspace to launcher_ctx
      view: associate launch contexts with views
      launcher: initialize launcher_ctxs once on startup
      launcher: fudge the interface a bit
      launcher: export xdga tokens and use them for workspace matching
      launcher: export X startup ids and use them for workspace matching
      criteria: be lenient on window_role and instance too
      input: enable user xkb configs with cap_sys_nice
      view: make request_activate take a seat
      launcher: make launcher context seat aware
      launcher: support external launcher tokens
      xdg-activation: fix urgency when the client does not specify a seat
      container: rehome the container_swap function into container.c
      Add a .mailmap file

Rouven Czerwinski (1):
      gamma_control_v1: handle destroyed output

Sergei Trofimovich (2):
      swaynag/config.c: fix build against gcc-14 (-Walloc-size)
      sway/config.c: use `memcpy()` for known buffer size

Shaked Flur (1):
      man: add --inhibited and --no-repeat to bindsym and bindcode usage

Simon Ser (94):
      input/seat: locally compute drag icon offset
      Listen to the output request_state event
      ipc: add view content type
      Update for wlroots!3814
      build: drop wayland-scanner fallback
      build: unify server & client protocol generation
      build: drop "server" from target name for protocol code
      build: drop intermediate libraries for protocols
      build: drop unused wayland-egl dependency
      build: bump version to 1.9-dev
      Make GLES2 optional
      Make DRM backend optional
      Make session optional
      Make libinput backend optional
      build: remove trailing newline at end of file
      build: move completions to separate file
      build: fix have_xwayland when xcb-icccm is not found
      Chase breaking changes in wlroots!3903
      ci: install Xwayland .pc file
      swaynag: fix NULL font description
      swaynag: drop swaynag_type.font
      man: fix typo in output disable docs
      tree/container: drop unnecessary check in container_get_siblings()
      Send wl_surface.enter for ext-session-lock surfaces
      Fix indentation in surface_is_xdg_popup()
      Fix pointer events for ext-session-lock surfaces
      Check return value of wlr_renderer_begin()
      Switch default menu to wmenu
      ipc: add support for output event
      Convert to wlr_xwayland_surface_try_from_wlr_surface()
      Convert to *_try_from_wlr_surface()
      swaymsg: print output power status
      swaymsg: s/inactive/disabled/
      ci: install hwdata-dev on Alpine
      Use wlr_linux_dmabuf_feedback_v1_init_with_options()
      Introduce surface_{enter,leave}_output()
      Add support for fractional-scale-v1
      Update surface fractional scale on output change
      layer-shell: enter output before surface is mapped
      Adjust scale for fractional-scale-v1
      Constify pixman_region32_t for rendering functions
      Move output commit out of output_render()
      Check for empty damage before attaching render buffer
      man: deprecate seat cursor move/set/press/release
      ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
      Remove duplicate wlr_damage_ring_set_bounds() call
      Pass version to wlr_compositor_create()
      Skip direct scan-out commit when damage is empty
      Set output damage 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
      ci: checkout wlroots 0.17
      desktop/xwayland: correctly handle association on o-r change
      input: reconfigure send_events on output hotplug
      readme: add swaybg as optional dep
      Mark DRM lease protocol privileged
      Clarify gdk-pixbuf dependency purpose
      build: bump version to 1.9-rc.1

Simon Zeni (4):
      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

Tamino Bauknecht (3):
      gitignore: Ignore clangd-generated directory .cache/
      config/output: Allow approximation of output refresh rate
      sway: raise error on non-accessible background file

Tobias Bengfort (1):
      focus_on_window_activation: raise if floating

Tobias Predel (1):
      root: free non_desktop_outputs list on root_destroy

bretello (1):
      fix crash when resizing tiled scratchpad windows

denppa (1):
      build: fix build with wayland-scanner subproject

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

llyyr (2):
      sway{,bar}: use default font hint style
      swaybar: don't set current workspace as not visible

luzpaz (1):
      Fix typo

mrusme (1):
      Update sway.5.scd

nerdopolis (1):
      Fix build on Debian Stable

novenary (1):
      Disable direct scanout for surfaces with popups

nukoseer (1):
      Calculate tiled resize amount relative to parent container

ookami (1):
      Rebase all cursors in handle_surface_map

rj1 (1):
      fix typo

Łukasz Adamczak (2):
      Correct window_rect.y with hide_edge_borders
      Clarify documentation for window_rect

1.8.1

1 year ago

1.8

1 year ago

Sway 1.8 contains 186 changes from 69 contributors.

This release depends on wlroots 0.16.0. See the wlroots release notes.

New features

  • A new bindgesture command can be used to bind actions to touchpad gestures
  • More robust and secure screen lockers via the new ext-session-lock-v1 protocol (supported by swaylock)
  • A new output unplug command has been added to remove virtual outputs
  • libinput's new "disable while trackpointing" setting and high-resolution scroll wheel events are now supported
  • xdg-activation-v1 is now used for more reliable workspace matching when launching new clients
  • Various improvements from wlroots' Vulkan renderer

Changes

Full changelog
-k (2):
      Add descriptions for `stacking` and `tabbed` layouts
      man: Fix trailing spaces

Alan (1):
      Update grimshot.1.scd

Aleksei Bavshin (1):
      xdg-shell: use toplevel geometry to adjust the popup box

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 Gramiak (1):
      sway/input: don't pass possibly invalid modifiers pointer

Alexander Orzechowski (2):
      container_floating_set_default_size: Store workspace size box on the stack
      workspace_create: Don't allow NULL name

Alice Carroll (1):
      Support cursor capture in grimshot

Andri Yngvason (1):
      sway/commands/output: Add command for unplugging non-physical outputs

Ankit Pandey (1):
      commands/move: Warp cursor after moving workspace to another output

Baltazár Radics (3):
      ipc: make get_deco_rect check config->hide_lone_tab
      man: sway(5) move fixes
      container_get_siblings: handle NULL workspace

Bill Li (1):
      Updating criteria checking with PCRE2

Callum Andrew (1):
      criteria: allow matching for NULL string criteria

Daniel De Graaf (7):
      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

David Rosca (1):
      container: Fix crash when view unmaps + maps quickly

David96 (1):
      commands/move: Fix crash when pos_y is omitted

Eskil (1):
      Add Swedish README

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

Greg Depoire--Ferrer (1):
      swaynag: move close_button up to fix SIGSEGV

Hongyi (1):
      Polish the language in README.zh-CN.md & sync with English one

Hugo Osvaldo Barrera (3):
      Avoid unecessary string copy
      Reject font values that are invalid for pango
      Reuse parsed PangoFontDescription

Joan Bruguera (2):
      swaybar: Prioritize hotspot events to bar bindings
      swaybar: Make hotspots block bar release bindings

Kenny Levinsen (5):
      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

Kirill Chibisov (1):
      build: fix building with basu

Kirill Primak (9):
      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

Leonardo Hernández Hernández (2):
      sway/input: fix bad position of wlr_drag
      sway/input: wlr_seat_keyboard() now takes wlr_keyboard

LordRishav (1):
      Add a Hindi (हिन्दी) translation to the README

Manuel Stoeckl (2):
      sway/main: move constants off the stack
      Use shm_open instead of mkstemp

Marco Rubin (1):
      Translated README into Italian

Martin Michlmayr (1):
      sway-output.5: improve display of parameter

Michael Weiser (1):
      config: Remove unused mouse binding structure

Moon Sungjoon (1):
      sway/input: destroy sway_switch properly

Muhamed Hobi (1):
      Fix snprintf compiler warning

Nathan Schulte (2):
      swaybar: fix tray_padding vs min-height re: scale
      swaybar: fix tray item icon scaling, positioning

Nicolas Avrutin (1):
      commands/focus: fix segfault when no container is already focused.

Nihal Jere (9):
      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

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

Ronan Pigott (12):
      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

Rouven Czerwinski (3):
      transaction: destroying nodes aren't hidden
      server: request xdg-shell v2
      realtime: request SCHED_RR using CAP_SYS_NICE

Sefa Eyeoglu (1):
      build: bump wlroots dependency to 0.16.0

Seth Barberee (1):
      [IPC] Add repeat delay/rate info to keyboard

Simon Ser (54):
      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
      ci: checkout wlroots 0.16.0
      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.8-rc1
      build: fix have_xwayland when xcb-icccm is not found
      build: bump version to 1.8-rc2
      build: bump version to 1.8-rc3
      build: bump version to 1.8-rc4
      swaynag: fix NULL font description
      build: bump version to 1.8

Simon Zeni (5):
      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

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 (1):
      tray: do not render passive items

Tudor Brindus (6):
      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

Yaroslav de la Peña Smirnov (1):
      Fix keymap being NULL and segfaulting on dev add

Yasin Silavi (1):
      Fix farsi label

cparm (1):
      Avoid double free in criteria_destroy()

kraftwerk28 (2):
      Chase wlroots X11 hints update
      Allocate enough space for `cmd_results->error`

llyyr (2):
      swaymsg: fix floating_nodes being ignored
      grimshot: fix tilde expansion within quotes

ndren (1):
      Replace pcre with pcre2

nerdopolis (1):
      Fix build on Debian Stable

ohno418 (1):
      Improve Japanese translation

pudiva chip líquida (1):
      Support libinput's 1.21 new dwtp option

zkldi (1):
      fix: remove redundant empty statement in main.c

マリウス (1):
      man: Add XWayland information

1.8-rc4

1 year ago

1.8-rc3

1 year ago

1.8-rc2

1 year ago