Skip to content

Releases: swaywm/sway

sway 1.5.1

10 Nov 16:58
1.5.1
eca5759
Compare
Choose a tag to compare

Note: the PGP signing key has changed to 34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48.

This is a bugfix release which adds support for wlroots 0.12.0.

Simon Ser (2):
      build: bump wlroots dependency to 0.12.0
      build: bump version to 1.5.1

sway 1.5

15 Jul 23:14
1.5
108b8e9
Compare
Choose a tag to compare

Sway 1.5 contains 284 changes from 78 contributors. This release introduces a lot of new features, but also contains numerous bug fixes.

The recommended wlroots version to use with this release is 0.11.0.

New features

  • Headless outputs can now be created dynamically via the create_output
    command, and can be used with WayVNC
  • Input method editors (IME) are now supported via the input-method and
    text-input protocols
  • Adaptive synchronization (aka. variable refresh rate, VRR) can be enabled
    to reduce stuttering in games
  • Support for the viewporter protocol, allowing older X11 games to work
    better and improve performance
  • Allow virtualization and remote desktop software to inhibit keyboard
    shortcuts
  • Support for the wlr-foreign-toplevel-management protocol, allowing
    custom docks and window switchers
Full changelog
Adam Kürthy (2):
      Take window borders into account when resizing floating windows
      Really fix floating window border resize problems

Aleksei Bavshin (1):
      Adjust focus order to match rendering order of layer shell popups.

Alex Maese (2):
      Add ability to remove the floating modifier
      Add documentation for floating_modifier

Anders (1):
      criteria: match containers without view

Andri Yngvason (6):
      input: Assign virtual input devices to their selected seats
      swaynag: Add multi-seat support
      swaybar: Fix input device removal
      input: Map virtual-pointer to the requested output
      input: Mark virtual devices as such
      input: keyboard: Never group virtual keyboards.

Bill Doyle (1):
      Only destroy swaybar surface via ipc when needed

Bor Grošelj Simić (1):
      input: implement cycling through keyboard layout list

Brian Ashworth (20):
      render: do not render indicator on floating views
      input/cursor: handle image surface destroy
      input/cursor: handle setting a NULL image surface
      view: remove workspace pid mapping for assigns
      container: add inactive fullscreen to focus stack
      desktop/output: fix mem leak in handle_new_output
      output: apply oc to outputs using wl_for_each_safe
      container_at_{tabbed,stacked}: check x-axis bounds
      config: fix validation exit code and log level
      cmd_swap: fix test_mark condition
      output: fix updating output manager config
      tree/view: do not attempt enter on hidden child
      input_cmd_events: add support for input types
      Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"
      sway.5: correct description of workspace [number]
      ISSUE_TEMPLATE: note debug logs should be from TTY
      input: reset keyboard groups keyboard on reset all
      input: fix reloading crash due to keyboard group configuring
      seat_cmd_cursor: emit frame events
      input/keyboard: wlr_keyboard_group enter and leave

Campbell Vertesi (1):
      Add note on quoting to swaymsg manpage

Cassandra McCarthy (1):
      integer scaling, not integral

Cyril Levis (2):
      Add the possibility to capture only one screen if several screens are use.
      Change wording

Damien Tardy-Panis (1):
      Add views idle inhibition status in get_tree output

David Arnold (2):
      grimshot: Unary operator expected
      grimshot: fix POSIX compliance

David96 (4):
      Render layer shell popups over the top layer
      Don't transfer focus to NULL node on touch
      Don't unhide cursor on touch events
      Implement pointer simulation if client hasn't bound to touch

Dennis Schridde (1):
      Document input selector precedence

Di Ma (4):
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding

Dominique Martinet (3):
      swaynag: fix segfault on exit when arguments are not correct
      swaynag: exit on wl_display_roundtrip error
      build: make completions respect install prefixes

Drew DeVault (4):
      Update wlroots version
      Update version to 1.4
      Implement wlr-foreign-toplevel-management-v1
      Update version to v1.5-rc2

Ejez (1):
      Correct typo in sway-output.5.scd

Eli Schwartz (3):
      meson: use join_paths to build paths, instead of string concat
      completion: use pkg-config to get install location for bash/fish
      fish-completion: use the correct fallback directory

Eric Engestrom (1):
      bash completion: swaymsg accepts --version, not --verbose

Geoffrey Casper (1):
      Reload command now matches i3's implementation

Graham Christensen (1):
      swaynag: allow specifying more buttons which execute and dismiss

Hristo Venev (2):
      Do not truncate pointer coordinates to int.
      swaybar: fix i3bar relative coordinates when scaling is used

Hugo Osvaldo Barrera (7):
      grimshot: Allow configuring default directory
      grimshot: Avoid screenshots overwriting each other
      grimshot: Show usage when on invalid command
      grimshot: Allow manually picking a window
      grimshot: Add a separate flag for notifications
      grimshot: Add a man page
      grimshot: Skip creating a temp file when copying

Ian Fan (6):
      ipc: add missing required properties
      swaybar: fix memory leaks
      tray: better errors when parsing index.theme
      tray: allow themes to inherit from multiple themes
      tray: tidy code
      tray: track SNI callbacks

Ian Huang (1):
      interpret "subpixel none" as CAIRO_ANTIALIAS_GRAY

Ihor Kalnytskyi (1):
      scdoc: unbindcode --input-device, not input-device

Isaac Freund (1):
      output: simplify loop over layer surfaces

JR Boyens (1):
      Use transparency arg in the window focus event

Jamelly Ferreira (2):
      Adding a version of README.md in Portuguese
      Adding the link to the Portuguese on the English version of README.md

James Mills (1):
      Fix typo in swaybar-protocol.7.scd

Jan Beich (2):
      common/log: bump POSIX version used after e81d9fde667e
      protocols: sync wlr-layer-shell-unstable-v1 with wlroots

Jason (2):
      Docs: explain why menu command should be passed to sway
      Update fish completions

Jason Nader (12):
      Amend typo
      commands/move: Fix crash when required args not provided
      Check argc>0 before strcasecmp. Should shortcircuit
      Docs: Add marks field to get_tree response
      i3compat: add `window_type` to IPC response
      i3compat: add `window_type` to IPC response
      ipc-server: improve error message
      Limit workspace numbers within 0..INT32_MAX
      commands/bind.c: remove unnecessary check
      sway/input/cursor.c: move NULL check to where it should be
      sway/input/cursor.c: fix undefined behaviour when event is NULL
      i3-compat: add GET_BINDING_STATE IPC command

Johan Bjäreholt (1):
      tree/view: Make foreign-toplevel app_id fallback to class

Jonas Große Sundrup (1):
      rephrase swayidle-timout example to improve readability

Josh Shone (1):
      Fix hit test for floaters that cross outputs

Kalyan Sriram (1):
      Save transform during transaction

Kenny Levinsen (9):
      Simplify repaint scheduling documentation
      view: Save all buffers associated with view
      view: update_size should only update pending size
      transaction: Account for full size when centering content
      transaction: Improve transaction commentary
      container: Remove useless surface dimensions
      shells: Resize on commit if geometry x/y changes
      transaction: Mark client resize immediately ready
      seat: Refocus seat when wlr_drag is destroyed

Leo (2):
      Fix redundant call to seat_send_focus()
      im: Fix crash when im destorying and no focused surface exists

Leon Plickat (1):
      change apply_exclusive() to closer match layer shell protocol

Linus Heckemann (1):
      add --no-repeat option for bindings

Lucas M. Dutra (1):
      fix typo

Luke Drummond (2):
      swaynag: sway_abort on failure to properly register
      swaybar: ensure correct init order for status_line

Martin Dørum (1):
      swaybar: Fix scrolling with precise trackpads

Martin Michlmayr (2):
      sway.5: make formatting more consistent
      Fix typos in comments

Michael Weiser (5):
      config: Fix typo in reload bindsym flag bitmask
      input: Add support for keyboard shortcuts inhibit
      commands: Add shortcuts_inhibitor command
      commands: Adjust style in cursors command
      commands: Add per-view shortcuts_inhibitor command

Milkey Mouse (1):
      swaybar: add NULL check when listing workspaces

Nathan Rossi (1):
      ipc: Handle unsupported binding event types

Nick Diego Yamane (1):
      input/seatop_default: properly notify pointer leave

Olivier Fourdan (1):
      input: Avoid creating the PAD device multiple times

Paul Ouellette (1):
      Fix some mistakes in grimshot docs

Pedro Côrte-Real (3):
      Avoid numerical instability in resize
      Make sure we don't calculate fractional pixel gaps
      Make all the container dimensions integers

Ronan Pigott (9):
      commands/split: Fix error message typos
      ipc-json: Remove unnecessary dereference
      sway-input.5: Document repeat_delay and repeat_rate only once
      sway.5: Document missing bindsym flags for unbindsym
      Fix crash when showing scratchpad hidden split containers
      cmd_move: Fix crash when moving to scratchpad hidden split containers
      cmd_split: Refuse to split scratchpad hidden split containers
      view: fix surface_new_subsurface use-after-free
      xdg_shell: schedule configure on maximize requests

Ross Schulman (1):
      Fix small typo in sway-input(5)

Rouven Czerwinski (3):...
Read more

sway 1.5-rc2

01 Jul 18:40
Compare
Choose a tag to compare
sway 1.5-rc2 Pre-release
Pre-release

Sway 1.5-rc2 contains 6 changes from 4 contributors.

Isaac Freund (1):
      output: simplify loop over layer surfaces

Johan Bjäreholt (1):
      tree/view: Make foreign-toplevel app_id fallback to class

Kenny Levinsen (2):
      transaction: Mark client resize immediately ready
      seat: Refocus seat when wlr_drag is destroyed

Tudor Brindus (2):
      input/pointer: correctly handle bindings for synthetic events
      tree/view: fix smart borders with tabbed/stacked ancestor

The recommended wlroots version to use with this release is swaywm/wlroots@a54ed85.

sway 1.5-rc1

24 Jun 18:23
1.5-rc1
ba0232e
Compare
Choose a tag to compare
sway 1.5-rc1 Pre-release
Pre-release

sway 1.5-rc1

Sway 1.5-rc1 contains 258 changes from 76 contributors. This release introduces a lot of new features, but also contains numerous bug fixes.

The recommended wlroots version to use with this release is swaywm/wlroots@4a4da25.

New features

  • Headless outputs can now be created dynamically via the create_output
    command, and can be used with WayVNC
  • Input method editors (IME) are now supported via the input-method and
    text-input protocols
  • Adaptive synchronization (aka. variable refresh rate, VRR) can be enabled
    to reduce stuttering in games
  • Support for the viewporter protocol, allowing older X11 games to work
    better and improve performance
  • Allow virtualization and remote desktop software to inhibit keyboard
    shortcuts
  • Support for the wlr-foreign-toplevel-management protocol, allowing
    custom docks and window switchers
Full changelog
Adam Kürthy (2):
      Take window borders into account when resizing floating windows
      Really fix floating window border resize problems

Aleksei Bavshin (1):
      Adjust focus order to match rendering order of layer shell popups.

Alex Maese (2):
      Add ability to remove the floating modifier
      Add documentation for floating_modifier

Anders (1):
      criteria: match containers without view

Andri Yngvason (6):
      input: Assign virtual input devices to their selected seats
      swaynag: Add multi-seat support
      swaybar: Fix input device removal
      input: Map virtual-pointer to the requested output
      input: Mark virtual devices as such
      input: keyboard: Never group virtual keyboards.

Bill Doyle (1):
      Only destroy swaybar surface via ipc when needed

Bor Grošelj Simić (1):
      input: implement cycling through keyboard layout list

Brian Ashworth (20):
      render: do not render indicator on floating views
      input/cursor: handle image surface destroy
      input/cursor: handle setting a NULL image surface
      view: remove workspace pid mapping for assigns
      container: add inactive fullscreen to focus stack
      desktop/output: fix mem leak in handle_new_output
      output: apply oc to outputs using wl_for_each_safe
      container_at_{tabbed,stacked}: check x-axis bounds
      config: fix validation exit code and log level
      cmd_swap: fix test_mark condition
      output: fix updating output manager config
      tree/view: do not attempt enter on hidden child
      input_cmd_events: add support for input types
      Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"
      sway.5: correct description of workspace [number]
      ISSUE_TEMPLATE: note debug logs should be from TTY
      input: reset keyboard groups keyboard on reset all
      input: fix reloading crash due to keyboard group configuring
      seat_cmd_cursor: emit frame events
      input/keyboard: wlr_keyboard_group enter and leave

Cassandra McCarthy (1):
      integer scaling, not integral

Cyril Levis (2):
      Add the possibility to capture only one screen if several screens are use.
      Change wording

Damien Tardy-Panis (1):
      Add views idle inhibition status in get_tree output

David Arnold (2):
      grimshot: Unary operator expected
      grimshot: fix POSIX compliance

David96 (4):
      Render layer shell popups over the top layer
      Don't transfer focus to NULL node on touch
      Don't unhide cursor on touch events
      Implement pointer simulation if client hasn't bound to touch

Dennis Schridde (1):
      Document input selector precedence

Di Ma (4):
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding
      Fix a use-after-free error in switch binding

Dominique Martinet (3):
      swaynag: fix segfault on exit when arguments are not correct
      swaynag: exit on wl_display_roundtrip error
      build: make completions respect install prefixes

Drew DeVault (3):
      Update wlroots version
      Update version to 1.4
      Implement wlr-foreign-toplevel-management-v1

Ejez (1):
      Correct typo in sway-output.5.scd

Eli Schwartz (3):
      meson: use join_paths to build paths, instead of string concat
      completion: use pkg-config to get install location for bash/fish
      fish-completion: use the correct fallback directory

Eric Engestrom (1):
      bash completion: swaymsg accepts --version, not --verbose

Graham Christensen (1):
      swaynag: allow specifying more buttons which execute and dismiss

Hristo Venev (2):
      Do not truncate pointer coordinates to int.
      swaybar: fix i3bar relative coordinates when scaling is used

Hugo Osvaldo Barrera (7):
      grimshot: Allow configuring default directory
      grimshot: Avoid screenshots overwriting each other
      grimshot: Show usage when on invalid command
      grimshot: Allow manually picking a window
      grimshot: Add a separate flag for notifications
      grimshot: Add a man page
      grimshot: Skip creating a temp file when copying

Ian Fan (6):
      ipc: add missing required properties
      swaybar: fix memory leaks
      tray: better errors when parsing index.theme
      tray: allow themes to inherit from multiple themes
      tray: tidy code
      tray: track SNI callbacks

Ian Huang (1):
      interpret "subpixel none" as CAIRO_ANTIALIAS_GRAY

Ihor Kalnytskyi (1):
      scdoc: unbindcode --input-device, not input-device

JR Boyens (1):
      Use transparency arg in the window focus event

Jamelly Ferreira (2):
      Adding a version of README.md in Portuguese
      Adding the link to the Portuguese on the English version of README.md

James Mills (1):
      Fix typo in swaybar-protocol.7.scd

Jan Beich (1):
      common/log: bump POSIX version used after e81d9fde667e

Jason (2):
      Docs: explain why menu command should be passed to sway
      Update fish completions

Jason Nader (12):
      Amend typo
      commands/move: Fix crash when required args not provided
      Check argc>0 before strcasecmp. Should shortcircuit
      Docs: Add marks field to get_tree response
      i3compat: add `window_type` to IPC response
      i3compat: add `window_type` to IPC response
      ipc-server: improve error message
      Limit workspace numbers within 0..INT32_MAX
      commands/bind.c: remove unnecessary check
      sway/input/cursor.c: move NULL check to where it should be
      sway/input/cursor.c: fix undefined behaviour when event is NULL
      i3-compat: add GET_BINDING_STATE IPC command

Josh Shone (1):
      Fix hit test for floaters that cross outputs

Kalyan Sriram (1):
      Save transform during transaction

Kenny Levinsen (7):
      Simplify repaint scheduling documentation
      view: Save all buffers associated with view
      view: update_size should only update pending size
      transaction: Account for full size when centering content
      transaction: Improve transaction commentary
      container: Remove useless surface dimensions
      shells: Resize on commit if geometry x/y changes

Leo (2):
      Fix redundant call to seat_send_focus()
      im: Fix crash when im destorying and no focused surface exists

Leon Plickat (1):
      change apply_exclusive() to closer match layer shell protocol

Linus Heckemann (1):
      add --no-repeat option for bindings

Lucas M. Dutra (1):
      fix typo

Luke Drummond (2):
      swaynag: sway_abort on failure to properly register
      swaybar: ensure correct init order for status_line

Martin Dørum (1):
      swaybar: Fix scrolling with precise trackpads

Martin Michlmayr (2):
      sway.5: make formatting more consistent
      Fix typos in comments

Michael Weiser (5):
      config: Fix typo in reload bindsym flag bitmask
      input: Add support for keyboard shortcuts inhibit
      commands: Add shortcuts_inhibitor command
      commands: Adjust style in cursors command
      commands: Add per-view shortcuts_inhibitor command

Milkey Mouse (1):
      swaybar: add NULL check when listing workspaces

Nathan Rossi (1):
      ipc: Handle unsupported binding event types

Nick Diego Yamane (1):
      input/seatop_default: properly notify pointer leave

Olivier Fourdan (1):
      input: Avoid creating the PAD device multiple times

Paul Ouellette (1):
      Fix some mistakes in grimshot docs

Pedro Côrte-Real (3):
      Avoid numerical instability in resize
      Make sure we don't calculate fractional pixel gaps
      Make all the container dimensions integers

Ronan Pigott (8):
      commands/split: Fix error message typos
      ipc-json: Remove unnecessary dereference
      sway-input.5: Document repeat_delay and repeat_rate only once
      sway.5: Document missing bindsym flags for unbindsym
      Fix crash when showing scratchpad hidden split containers
      cmd_move: Fix crash when moving to scratchpad hidden split containers
      cmd_split: Refuse to split scratchpad hidden split containers
      view: fix surface_new_subsurface use-after-free

Ross Schulman (1):
      Fix small typo in sway-input(5)

Rouven Czerwinski (3):
      xwayland: handle size_hints == NULL
      output: remove damage listeners in damage destroy
      input/seatop_default: release on empty workspace

Ryan Dwyer (1):
      Introduce pid criteria token

Simon Ser (44):
      Fix unreliable scaling filter
      Revert "Make all the container dimensions integers"
      Fix seat_set_focus_layer crash when disabling output
      Fix output scale auto-detection
      Call apply_output_config instead of output_enable
      Stop calling apply_output_config from output_enable
      Apply the output sc...
Read more

sway 1.4

22 Jan 19:02
Compare
Choose a tag to compare

sway 1.4 contains 190 changes from 52 contributors. Highlights include:

  • Support for VNC via wayvnc. The wlroots RDP backend has been removed.
  • Partial support for the MATE panel
  • Configurable input latency controls, see max_render_time in sway(5) and sway-output(5)
  • Keyboard grouping (useful for certain niche keyboard designs)
  • Support for xdg-shell v6 unstable has been removed

The recommended terminal emulator in the default configuration file is now alacritty.

Note: due to a release error, we skipped version 1.3.

Full changelog
sway 1.4

A. M. Joseph (1):
      xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.

Aleksis (1):
      remove unused layer shell surface variable

Andri Yngvason (2):
      input: Assign virtual input devices to their selected seats
      swaybar: Fix input device removal

Antonin Décimo (5):
      ipc-client: remove useless free for failed malloc
      input: check pointer against nullptr
      view_update_size: fix surface_width/height mismatch
      Fix memory leaks
      Remove redundant checks

Arkadiusz Hiler (1):
      Fix syntax in examples in sway-output(5)

Ben Brown (2):
      Fix typo for the force/immediate option in xwayland_mode enum
      Add icon_theme_path to find_icon() search if set

Benjamin Cheng (2):
      input/cursor: pass gesture events to clients
      input/cursor: remove gesture listeners in destroy

Brian Ashworth (42):
      workspace: prefer identifiers for output priority
      handle_seat_node_destroy: do not focus own node
      workspace: do not destroy if any seat is focusing
      swaymsg.1: add tip about two hyphens for commands
      container_replace: copy {width,height}_fraction
      workspace_split: focus middle if workspace focused
      sway{,-bar}.5: add link to pango font description
      input/seatop_down: add axis handler
      input/keyboard: send released only if pressed sent
      cmd_xwayland: add force for immediate launch
      sway.5: remove mention of floating_scroll
      cmd_move: fix move to scratchpad hidden container
      cmd_mode: don't reset to default after subcommand
      seatop_default: only focus container on press
      swaybar: complete barconfig_update event handling
      sway.5: clarify that a marks are unqiue
      view: always populate pid
      input/keyboard: cleanup xkb_file error handing
      input_cmd_xkb_file: allow shell path expansion
      Add support for wlr_keyboard_group
      input/keyboard: check keyboard group before remove
      config: improvements to the reload validation
      input/keyboard: reset seat keyboard on destroy
      config: apply input type configs on reload
      layer-shell: unfocus output-less layer on unmap
      input/keyboard: remove group listeners on destroy
      input/keyboard: defer wlr_keyboard_group destroy
      config/input: set type for new identifier configs
      root_scratchpad_hide: disable fullscreen descendants
      input/seatop_default: fix focusing floating titles
      seat_cmd_keyboard_grouping: change keymap to smart
      layer-shell: refocus if keyboard interactive lost
      parse_color: return success + drop fallback color
      cmd_client_*: refactor duplicated code
      bar_cmd_colors: remove add_color
      cmd_client_*: support optional args for i3 compat
      input/cursor: handle image surface destroy
      input/cursor: handle setting a NULL image surface
      view: remove workspace pid mapping for assigns
      container: add inactive fullscreen to focus stack
      desktop/output: fix mem leak in handle_new_output
      output: apply oc to outputs using wl_for_each_safe

Cassandra McCarthy (1):
      integer scaling, not integral

Danilo Spinella (1):
      Fix refresh rate scale of output

Dark (1):
      Update titlebar borders to match i3's current behavior.

Drew DeVault (12):
      layer-shell: add support for popups
      Add _incr_version to contrib/
      chmod +x contrib/_incr_version
      config.in: set default term to alacritty
      Update .github/FUNDING.yml
      Update version to 1.2
      Updates per wlroots layer shell changes
      Add seat <seat> idle_{inhibit,wake} <sources...>
      License wallpapers as CC-0
      _incr_version: prompt for target wlroots release
      _incr_version: always overwrite old version number
      Update version to 1.3-rc1

Eli Schwartz (3):
      meson: use join_paths to build paths, instead of string concat
      completion: use pkg-config to get install location for bash/fish
      fish-completion: use the correct fallback directory

Ilia Bozhinov (1):
      properly check pixman_region32_contains_rectangle return

Ivan Molodetskikh (9):
      Add Russian translation of the README
      render: set surface as sampled for presentation
      output: add max_render_time
      Add sway_surface
      view: add max_render_time
      Add max_render_time to output JSON
      Add max_render_time to view JSON
      output: check wlr_output in repaint handler
      Add note about backends to output max_render_time

JR Boyens (1):
      Use transparency arg in the window focus event

Jason (2):
      Amend typos
      Docs: explain why menu command should be passed to sway

Jason Nader (3):
      Amend typo
      commands/move: Fix crash when required args not provided
      Check argc>0 before strcasecmp. Should shortcircuit

Jayce Fayne (1):
      Revert "fix bar_state_update/input event"

John Chadwick (1):
      input: Add support for tablet protocol.

Josef Gajdusek (1):
      Add virtual pointer protocol

Kenny Levinsen (5):
      Ensure that seat->focused_layer is cleared on unmap
      output: Ensure that frame_done is delayed on max_render_time
      output: Replace block_idle_frame with frame_pending
      output: Schedule idle frames if we do not render
      output: Restore previous max_render_time behavior

Kirill Chibisov (1):
      Fix tiled containers resize with mouse

Konstantin Pospelov (2):
      swaybar: do not retry search for tray icons
      swaybar: fix typo in the loop over pixmaps

Laurent Bonnans (1):
      ipc: collapse multi-container command results

Lauri (1):
      Grimshot: a helper for screenshots within sway

Manuel Mendez (1):
      grimshot: fix branching on command exit status

Manuel Stoeckl (1):
      desktop/surface: Fix crash when timer is NULL

Martin Michlmayr (4):
      Fix markup syntax in man pages
      swaymsg.1: fix description of --pretty
      sway-output.5: fix variable name
      swaymsg.1: fix typos

Michael Aquilina (1):
      Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed

NightFeather (1):
      Add Chinese (zh-TW) translation of README

Nils ANDRÉ-CHANG (1):
      Fix type (an -> and)

Paul Riou (2):
      input: seat: Fix seat device list not initialised before use
      Fix sway_log using non initialised output_config pointer

Pedro Côrte-Real (3):
      Avoid numerical instability in resize
      Make sure we don't calculate fractional pixel gaps
      Make all the container dimensions integers

Rex Hackbro (2):
      Rename 'node' to 'nodes' in swayipc doc
      fix bar_state_update/input event

Robert Günzler (1):
      Skip line continuation when it is a comment

Ronan Pigott (19):
      view: create container before selecting workspace
      focus: support focus prev|next [sibling]
      criteria: make literal comparison for __focused__ values
      focus: do nothing on focus prev|next for workspaces
      seatop_move_floating: make container respect pointer constraint
      seatop_default: handle focus for xwayland_unmanaged views
      smart_borders: separate smartness from edge types
      Prefer higher refresh rate default modes
      seatop_default: handle focus for unmanaged xwayland windows last
      add scale_filter output config option
      Fix lingering workspace with scratchpad show
      config/output: apply scale_filter even when scale has not changed
      commands/split: Fix error message typos
      ipc-json: Remove unnecessary dereference
      sway-input.5: Document repeat_delay and repeat_rate only once
      sway.5: Document missing bindsym flags for unbindsym
      Fix crash when showing scratchpad hidden split containers
      cmd_move: Fix crash when moving to scratchpad hidden split containers
      cmd_split: Refuse to split scratchpad hidden split containers

Ross Schulman (1):
      Fix small typo in sway-input(5)

Rouven Czerwinski (3):
      sway(5): move workspace_layout to config only
      xwayland: get_constraints using size hints
      xwayland: handle size_hints == NULL

Sebastian Krzyszkowiak (2):
      layer_shell: Guard against negative exclusive zone
      layer-shell: Fix damage tracking of nested popups

Sheena Artrip (1):
      Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.

Simon Ser (22):
      Remove xdg-shell v6 support
      layer-shell: don't give focus to unmapped layer surfaces
      man: document how to specify multiple xkb layouts and options
      Error out on unknown debug flag
      build: update wlroots version, be more strict
      Add support for fullscreen view direct scan-out
      Fix direct scan-out flickering
      build: bump wlroots version to 0.8.1
      build: always use the project version
      Fix apply_output_config return value when enabling output
      Fix segfault in wlr_output_manager_v1_set_configuration
      Handle layer changes for layer shell surfaces
      Fix presentation feedback when scanning out fullscreen view
      Add --custom to ...
Read more

1.3-rc3

15 Jan 17:11
1.3-rc3
bdcec5a
Compare
Choose a tag to compare
1.3-rc3 Pre-release
Pre-release
sway 1.3-rc3

Brian Ashworth (2):
      view: remove workspace pid mapping for assigns
      container: add inactive fullscreen to focus stack

Cassandra McCarthy (1):
      integer scaling, not integral

JR Boyens (1):
      Use transparency arg in the window focus event

Jason (1):
      Docs: explain why menu command should be passed to sway

Jason Nader (1):
      Amend typo

Simon Ser (2):
      Fix unreliable scaling filter
      Revert "Make all the container dimensions integers"

1.3-rc2

08 Jan 15:30
Compare
Choose a tag to compare
1.3-rc2 Pre-release
Pre-release
sway 1.3-rc2

Andri Yngvason (2):
      input: Assign virtual input devices to their selected seats
      swaybar: Fix input device removal

Brian Ashworth (2):
      input/cursor: handle image surface destroy
      input/cursor: handle setting a NULL image surface

Pedro Côrte-Real (3):
      Avoid numerical instability in resize
      Make sure we don't calculate fractional pixel gaps
      Make all the container dimensions integers

Ross Schulman (1):
      Fix small typo in sway-input(5)

Rouven Czerwinski (1):
      xwayland: handle size_hints == NULL

Thayne McCombs (1):
      Add missing items to documentation for GET_TREE response in ipc.

sway 1.3-rc1

31 Dec 15:38
Compare
Choose a tag to compare
sway 1.3-rc1 Pre-release
Pre-release

Sway 1.3-rc1 includes 156 changes from 44 contributors.

A. M. Joseph (1):
      xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.

Aleksis (1):
      remove unused layer shell surface variable

Antonin Décimo (5):
      ipc-client: remove useless free for failed malloc
      input: check pointer against nullptr
      view_update_size: fix surface_width/height mismatch
      Fix memory leaks
      Remove redundant checks

Arkadiusz Hiler (1):
      Fix syntax in examples in sway-output(5)

Ben Brown (2):
      Fix typo for the force/immediate option in xwayland_mode enum
      Add icon_theme_path to find_icon() search if set

Benjamin Cheng (2):
      input/cursor: pass gesture events to clients
      input/cursor: remove gesture listeners in destroy

Brian Ashworth (36):
      workspace: prefer identifiers for output priority
      handle_seat_node_destroy: do not focus own node
      workspace: do not destroy if any seat is focusing
      swaymsg.1: add tip about two hyphens for commands
      container_replace: copy {width,height}_fraction
      workspace_split: focus middle if workspace focused
      sway{,-bar}.5: add link to pango font description
      input/seatop_down: add axis handler
      input/keyboard: send released only if pressed sent
      cmd_xwayland: add force for immediate launch
      sway.5: remove mention of floating_scroll
      cmd_move: fix move to scratchpad hidden container
      cmd_mode: don't reset to default after subcommand
      seatop_default: only focus container on press
      swaybar: complete barconfig_update event handling
      sway.5: clarify that a marks are unqiue
      view: always populate pid
      input/keyboard: cleanup xkb_file error handing
      input_cmd_xkb_file: allow shell path expansion
      Add support for wlr_keyboard_group
      input/keyboard: check keyboard group before remove
      config: improvements to the reload validation
      input/keyboard: reset seat keyboard on destroy
      config: apply input type configs on reload
      layer-shell: unfocus output-less layer on unmap
      input/keyboard: remove group listeners on destroy
      input/keyboard: defer wlr_keyboard_group destroy
      config/input: set type for new identifier configs
      root_scratchpad_hide: disable fullscreen descendants
      input/seatop_default: fix focusing floating titles
      seat_cmd_keyboard_grouping: chang* Compositors now need to call `wlr_output_commit` after `wlr_output_enable`, `wlr_output_set_mode`, `wlr_output_set_custom_mode`, `wlr_output_set_transform` or `wlr_output_set_scale`
* `wlr_output_set_mode` no longer implicitly enables the output, compositors need to call `wlr_output_enable` as well
* Compositors now need to call `wlr_output_rollback` after `wlr_output_attach_render` if they decide not to rendere keymap to smart
      layer-shell: refocus if keyboard interactive lost
      parse_color: return success + drop fallback color
      cmd_client_*: refactor duplicated code
      bar_cmd_colors: remove add_color
      cmd_client_*: support optional args for i3 compat

Danilo Spinella (1):
      Fix refresh rate scale of output

Dark (1):
      Update titlebar borders to match i3's current behavior.

Drew DeVault (11):
      layer-shell: add support for popups
      Add _incr_version to contrib/
      chmod +x contrib/_incr_version
      config.in: set default term to alacritty
      Update .github/FUNDING.yml
      Update version to 1.2
      Updates per wlroots layer shell changes
      Add seat <seat> idle_{inhibit,wake} <sources...>
      License wallpapers as CC-0
      _incr_version: prompt for target wlroots release
      _incr_version: always overwrite old version number

Ilia Bozhinov (1):
      properly check pixman_region32_contains_rectangle return

Ivan Molodetskikh (9):
      Add Russian translation of the README
      render: set surface as sampled for presentation
      output: add max_render_time
      Add sway_surface
      view: add max_render_time
      Add max_render_time to output JSON
      Add max_render_time to view JSON
      output: check wlr_output in repaint handler
      Add note about backends to output max_render_time

Jason (1):
      Amend typos

Jayce Fayne (1):
      Revert "fix bar_state_update/input event"

John Chadwick (1):
      input: Add support for tablet protocol.

Josef Gajdusek (1):
      Add virtual pointer protocol

Kenny Levinsen (5):
      Ensure that seat->focused_layer is cleared on unmap
      output: Ensure that frame_done is delayed on max_render_time
      output: Replace block_idle_frame with frame_pending
      output: Schedule idle frames if we do not render
      output: Restore previous max_render_time behavior

Kirill Chibisov (1):
      Fix tiled containers resize with mouse

Konstantin Pospelov (2):
      swaybar: do not retry search for tray icons
      swaybar: fix typo in the loop over pixmaps

Laurent Bonnans (1):
      ipc: collapse multi-container command results

Lauri (1):
      Grimshot: a helper for screenshots within sway

Manuel Mendez (1):
      grimshot: fix branching on command exit status

Manuel Stoeckl (1):
      desktop/surface: Fix crash when timer is NULL

Martin Michlmayr (4):
      Fix markup syntax in man pages
      swaymsg.1: fix description of --pretty
      sway-output.5: fix variable name
      swaymsg.1: fix typos

Michael Aquilina (1):
      Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed

NightFeather (1):
      Add Chinese (zh-TW) translation of README

Nils ANDRÉ-CHANG (1):
      Fix type (an -> and)

Paul Riou (2):
      input: seat: Fix seat device list not initialised before use
      Fix sway_log using non initialised output_config pointer

Rex Hackbro (2):
      Rename 'node' to 'nodes' in swayipc doc
      fix bar_state_update/input event

Robert Günzler (1):
      Skip line continuation when it is a comment

Ronan Pigott (12):
      view: create container before selecting workspace
      focus: support focus prev|next [sibling]
      criteria: make literal comparison for __focused__ values
      focus: do nothing on focus prev|next for workspaces
      seatop_move_floating: make container respect pointer constraint
      seatop_default: handle focus for xwayland_unmanaged views
      smart_borders: separate smartness from edge types
      Prefer higher refresh rate default modes
      seatop_default: handle focus for unmanaged xwayland windows last
      add scale_filter output config option
      Fix lingering workspace with scratchpad show
      config/output: apply scale_filter even when scale has not changed

Rouven Czerwinski (2):
      sway(5): move workspace_layout to config only
      xwayland: get_constraints using size hints

Sebastian Krzyszkowiak (2):
      layer_shell: Guard against negative exclusive zone
      layer-shell: Fix damage tracking of nested popups

Sheena Artrip (1):
      Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.

Simon Ser (20):
      Remove xdg-shell v6 support
      layer-shell: don't give focus to unmapped layer surfaces
      man: document how to specify multiple xkb layouts and options
      Error out on unknown debug flag
      build: update wlroots version, be more strict
      Add support for fullscreen view direct scan-out
      Fix direct scan-out flickering
      build: bump wlroots version to 0.8.1
      build: always use the project version
      Fix apply_output_config return value when enabling output
      Fix segfault in wlr_output_manager_v1_set_configuration
      Handle layer changes for layer shell surfaces
      Fix presentation feedback when scanning out fullscreen view
      Add --custom to `output mode` command
      Fix segfault in set_mode
      Use wlr_output_preferred_mode instead of the last mode
      Add -Wno-missing-braces
      Use new presentation-time helper
      Auto-detect output scale
      Re-add support for wlr_output's atomic API

Tadeo Kondrak (3):
      build: remove rootston from wlroots subproject
      Implement input map_to_region command
      Use an enum instead of a marker string for map_to_

Thorben Günther (2):
      Improve transparency script
      A Script to change sway workspace name.

Versus Void (1):
      Do not search for edges on subsurfaces, fix #4381

Whemoon Jang (1):
      Fix typo in swaybar-protocol.7.scd

Wieland Hoffmann (2):
      sway(5): Add a missing verb
      sway(5): Highlight valid values in the description of tiling_drag

asdfjkluiop (1):
      A layer-shell will only be focused if it is non-null

lbonn (6):
      Allow moving a container hidden in scratchpad
      focus: support focus_wrapping workspace
      seat: simplify a strdup
      Fix various memory leaks
      Fix potential NULL reference on cleanup
      focus: add a NULL check in `focus <direction>`

xPMo (1):
      Fix bar_state_update docs

xdavidwu (3):
      seat: avoid unneeded reloading xcursor theme
      seat: set cursor image only if no pointer cap previously
      swaybar: make status block text render in the same way as others

sway 1.2

27 Aug 04:50
Compare
Choose a tag to compare

sway 1.2 includes 128 changes from 37 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.

Abdelhakim Qbaich (1):
      Add the missing constant for the switch input type

Aidan Harris (1):
      Fix segfault with "xwayland false" (#4228)

Alex Maese (1):
      Unhide cursor on cursor activity after touch

Alyssa Ross (2):
      bar: fix segfault with missing or invalid bar id
      commands/bar: improve error for invalid subcommand

Antonin Décimo (7):
      Allocator sizeof operand mismatch
      Remove unused variable
      ipc-client: remove useless free for failed malloc
      input: check pointer against nullptr
      view_update_size: fix surface_width/height mismatch
      Fix memory leaks
      Remove redundant checks

Ashkan Kiani (1):
      Avoid adding duplicate criteria for no_focus and command

Brian Ashworth (52):
      Destroy swaybg client on reload
      config/output: fix typo in merge_id_on_name
      Spawn swaybar as a wayland client
      input/keyboard: attempt default keymap on failure
      commands/bar: fix mode and hidden_state at runtime
      input/switch: fix indentation of file
      common/ipc-client: remove ipc recv timeout log
      bindings: allow unlocked and locked bindings
      Add swaybar protocol documentation
      cmd_hide_edge_borders: add missing arg count check
      criteria: reset on semicolon separation
      commands/input: perform basic keymap validation
      config/input: validate xkb keymap before storing
      bindings: defer while initiailizing
      config/xwayland: retain xwayland status on reload
      config: fix find_handler logic
      cmd_seat: split action and config handlers
      cmd_mode: allow runtime creation and modification
      ws-output-priority: fix logic issue in find_output
      swaybar-protocol.7: fix block border descriptions
      cmd_bindswitch: add option to execute on reload
      input/libinput: only reset supported options
      config/output: correctly set width/height in apply
      cmd_layout: toggle split for tabbed/stack default
      cmd_split: fix toggle split for non-split layouts
      cmd_output: support current output alias
      input_cmd_xkb_switch_layout: support input types
      ipc: add an input event
      ipc: add input::libinput_config event
      arrange: remove gaps for workspace location deltas
      input/libinput: fix typo in set_middle_emulation
      libinput: fix set_send_events
      input/keyboard: don't reset layout for same keymap
      bindsym/code: add group support
      input/libinput: typo fixes (get -> get_default)
      cmd_swap: add floating support
      input/cursor: do not hide when buttons are pressed
      swaymsg: return 2 for sway errors
      cmd_mode: make modes case sensitive
      config/output: rebase cursors after config applied
      sway.5: explain how to enable pango markup in font
      handle_seat_node_destroy: do not focus own node
      workspace: do not destroy if any seat is focusing
      swaymsg.1: add tip about two hyphens for commands
      container_replace: copy {width,height}_fraction
      workspace_split: focus middle if workspace focused
      sway{,-bar}.5: add link to pango font description
      input/seatop_down: add axis handler
      input/keyboard: send released only if pressed sent
      sway.5: remove mention of floating_scroll
      cmd_move: fix move to scratchpad hidden container
      cmd_mode: don't reset to default after subcommand

Daniel Eklöf (3):
      add seat sub command 'xcursor_theme'
      swaybar/nag: use xcursor theme defined by XCURSOR_THEME/SIZE
      check for empty string before calling strtoul() and check errno

Dark (1):
      Update titlebar borders to match i3's current behavior.

Drew DeVault (9):
      Add Firefox note to ISSUE_TEMPALTE.md
      Create FUNDING.yml
      Bump meson version to 1.1
      Remove rootston from build manifests
      layer-shell: add support for popups
      Add _incr_version to contrib/
      chmod +x contrib/_incr_version
      Further refinements to _incr_version script
      Update version to 1.2

Ed Younis (2):
      Implement input_cmd_xkb_file (#3999)
      input_cmd_xkb_*: cleanup includes

Ilia Bozhinov (1):
      properly check pixman_region32_contains_rectangle return

Jeff Peeler (1):
      cmd_opacity: add relative opacity changes

Josef Gajdusek (4):
      Implement wlr-output-management-v1
      Update output manager config on all output events
      Provide current DPMS state in GET_OUTPUTS
      Update output manager on layout change

Kenny Levinsen (1):
      Use parent get_root_coords in subsurfaces

Laurent Bonnans (1):
      ipc: collapse multi-container command results

Manuel Stoeckl (2):
      Replace meson generator with custom_target
      Use -fmacro-prefix-map to strip build path

Matt Coffin (1):
      Fix segfaults caused by faulty command parsing

Michael Aquilina (1):
      Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed

Moelf (1):
      Implement output toggle

Nick Paladino (1):
      Make comment casing consistient

Nomeji (1):
      Add infos to help using for_window to man 5

Paul Ouellette (1):
      Fix typo in sway(5) manpage

Pedro Côrte-Real (7):
      Layout correctly with several new windows
      Layout tiled using a width/height fraction
      Rework gaps code to be simpler and correct
      Sanity check gaps between tiled containers
      Avoid negative outer gaps
      Sanity check gaps on the outside of the workspace
      Fix resize sibling amount calculations

Robert Sacks (1):
      Add missing underscore in bindswitch documentation

Rouven Czerwinski (3):
      desktop: output: fix use-after-free in destroy
      Fix sway crashes for scratchpad layouts
      Revert "Add support for wlr_output's atomic API"

Sauyon Lee (1):
      Make fullscreen check for fullscreen parents

Sebastian Krzyszkowiak (1):
      layer_shell: Guard against negative exclusive zone

Sebastian Parborg (1):
      Make mouse drag in tiled mode swap containers if no edge is selected

Sergei Dolgov (4):
      Add calibration_matrix config option
      Use isnan
      calibration_matrix: add the current matrix to the IPC description for libinput devices
      calibration_matrix: expect 6 individual values

Simon Ser (8):
      Fix xdg-decoration unconfigured if set before first commit
      Remove orbital gamma-control protocol
      ipc: add xkb_layout_names and xkb_active_layout_index
      Add a new xkb_switch_layout command
      Add missing docs for xkb_switch_layout
      Add docs for new IPC keyboard properties
      Remove all wayland-server.h includes
      Add support for wlr_output's atomic API

asdfjkluiop (1):
      A layer-shell will only be focused if it is non-null

jasperro (1):
      Added Dutch translation of README

lbonn (1):
      Allow moving a container hidden in scratchpad

murray (1):
      use surface coordinates for damaging buffers

random human (1):
      tree: set correct border value before creating floater

rpigott (1):
      Add missing description for focus_on_window_activation command in docs.

1.2-rc2

20 Aug 06:08
Compare
Choose a tag to compare
1.2-rc2 Pre-release
Pre-release

sway 1.2 includes 126 changes from 32 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.

Additionally, this release adds support for layer-shell popups, making the MATE panel usable on Sway, among other useful tools. This release also recommends the use of wlroots 0.7.0 (note: not released until the final sway release), and adds support for tools like wdisplays, a GTK+ GUI for configuring displays on supported compositors.

Antonin Décimo (5):
      ipc-client: remove useless free for failed malloc
      input: check pointer against nullptr
      view_update_size: fix surface_width/height mismatch
      Fix memory leaks
      Remove redundant checks

Brian Ashworth (7):
      handle_seat_node_destroy: do not focus own node
      workspace: do not destroy if any seat is focusing
      swaymsg.1: add tip about two hyphens for commands
      container_replace: copy {width,height}_fraction
      workspace_split: focus middle if workspace focused
      sway{,-bar}.5: add link to pango font description
      input/seatop_down: add axis handler

Drew DeVault (1):
      layer-shell: add support for popups

Ilia Bozhinov (1):
      properly check pixman_region32_contains_rectangle return

Sebastian Krzyszkowiak (1):
      layer_shell: Guard against negative exclusive zone