Skip to content

Releases: swaywm/sway

1.8-rc1

26 Nov 22:38
1.8-rc1
Compare
Choose a tag to compare
1.8-rc1 Pre-release
Pre-release

Sway 1.8-rc1 contains 175 changes from 67 contributors.

This pre-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 for the 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

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 (3):
      meson: check: false on run_command
      Print deprecation notice when running SUID
      Refuse to start when SUID is detected

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 (11):
      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

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 (48):
      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

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 Jo...
Read more

sway 1.7

22 Jan 23:03
1.7
Compare
Choose a tag to compare

Sway 1.7 contains 211 changes from 77 contributors.

This 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 and split 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 (2):
      ipc: make `bar <bar_id> mode|hidden_state` behave as documented
      xdg-shell: use toplevel geometry to adjust the popup box

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

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

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 (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

Nihal Jere (2):
      config.in: use portable hour specifier
      config.in: use swaynag -B instead of -b

Patrick Hilhorst (1):
      treat fullscreen windows as 'tiled' for commands/focus

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 (13):
      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

Rouven Czerwinski (2):
      view: handle case where map_ws is NULL
      transaction: destroying nodes aren't hidden

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 (63):
      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.fra...
Read more

sway 1.7-rc3

16 Jan 18:43
1.7-rc3
Compare
Choose a tag to compare
sway 1.7-rc3 Pre-release
Pre-release
Aleksei Bavshin (1):
      xdg-shell: use toplevel geometry to adjust the popup box

Kenny Levinsen (2):
      meson: check: false on run_command
      Print deprecation notice when running SUID

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

Simon Ser (3):
      Add safety assert in parse_movement_unit
      ci: checkout wlroots 0.15.0
      build: bump version to 1.7-rc3

sway 1.7-rc2

09 Jan 10:57
1.7-rc2
Compare
Choose a tag to compare
sway 1.7-rc2 Pre-release
Pre-release
David Rosca (1):
      container: Fix crash when view unmaps + maps quickly

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

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

Simon Ser (2):
      Destroy sub-surfaces with parent layer-shell surface
      build: bump version to 1.7-rc2

Thomas Hebb (1):
      input/seat: unset has_focus when focus_stack becomes empty

sway 1.7-rc1

23 Dec 13:56
1.7-rc1
Compare
Choose a tag to compare
sway 1.7-rc1 Pre-release
Pre-release

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 and split 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...
Read more

sway 1.6.1

24 Jun 16:32
1.6.1
Compare
Choose a tag to compare

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

07 Apr 20:01
1.6
Compare
Choose a tag to compare

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...
Read more

sway 1.6-rc3

31 Mar 17:17
1.6-rc3
Compare
Choose a tag to compare
sway 1.6-rc3 Pre-release
Pre-release

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

24 Mar 08:49
1.6-rc2
Compare
Choose a tag to compare
sway 1.6-rc2 Pre-release
Pre-release

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

16 Mar 17:12
Compare
Choose a tag to compare
sway 1.6-rc1 Pre-release
Pre-release

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...
Read more