Skip to content

@emersion emersion released this Jun 24, 2021

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
46 people reacted
Assets 4

@emersion emersion released this Apr 7, 2021

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 for action from WM enhancement issue template
      readme: remove unused ref
      man: update maintainer
      desktop/xwayland: use index constants for atom array
      Switch to wlr_xdg_surface_for_each_popup_surface
      Rename output_layer_for_each_surface_{toplevel,popup}
      protocols: update layer-shell-unstable-v1 to v4
      Raise verbosity of error message in load_main_config
      Log when config file is not found
      readme: update French translation
      build: use wlroots dependency variables
      Fix wl_shm_format passed to wlr_texture_from_pixels
      build: stop cargo-culting assignment alignment
      man: document `input XXX map_to_output *`
      Automatically map built-in touchscreens/tablets to built-in panels
      xwayland: simplify override-redirect focus restoration
      build: update version to v1.6-rc1
      build: update version to v1.6-rc2
      ci: add xcb-util-wm dependency for wlroots
      build: bump to version v1.6-rc3
      build: bump version to 1.6

SpizzyCoder (1):
      Changed fprintf(stdout,...) to printf(...) for more readable code

Tadeo Kondrak (6):
      text_input: Ignore text_input disable from unfocused windows
      text_input: Only send surrounding_text and content_type if supported
      text_input: Add support for focusing layer-shell surfaces
      Fix incorrect damage being applied on popups
      build: Add dependency on libdrm
      output: Reconfigure xcursor when applying output config

Tamir Zahavi-Brunner (1):
      hide_cursor: Add an option to hide when typing

Tarmack (1):
      Add support for workspace_min_width bar option.

Thayne McCombs (2):
      Keep windows in bounds on move to position mouse
      Use wlr_output_layout_output_at to get output for move to cursor

Tobias Langendorf (2):
      Fix X11 clients getting stuck minimized
      xwayland: support views that change override-redirect status

Tudor Brindus (23):
      Minor wording changes in Romanian README.md translation
      commands/move: unwrap workspace container on move to new workspace
      commands/move: maintain workspace_layout when moving
      input/cursor: don't send wl_pointer.motion event on pointer unlock warp
      input/pointer: update cursor activity after updating button counts
      desktop/render: show indicators for top-level split
      commands/move: fix single-split escaping on move
      input/cursor: default tablet lens tool to relative motion
      input/tablet: add tool_mode option to set tablet tools as relative input
      xwayland: listen to `set_geometry` event
      transaction: don't reconfigure X views unless integral coords changed
      transaction: validate X transaction completions by geometry, not size
      transaction: make transaction collapsing smarter with > 2 views
      input: remove motion deltas from seatop callbacks
      commands/focus: force container warp when fulfilling `focus mode_toggle`
      input: fully change focus when scrolling tabs/stacks
      input/seatop_default: consider fullscreen views to have no edges
      tree/container: introduce `container_is_sticky[_or_child]` functions
      Small wording change to README.ja.md
      input/cursor: unhide cursor on synthetic input
      commands/move: don't flatten on move; reap empty former parent instead
      swaybar: use INT_MAX max JSON depth when parsing IPC response
      swaybar: fail gracefully on tokener creation fail

Vinko Kašljević (1):
      Add check for empty GEOM variable

Vlad Pănăzan (1):
      Add layer shell subsurfaces

Vyivel (1):
      output: simplify layer surface iteration

Wai Hon Law (1):
      Make the default workspace commands compatible with i3

William Culhane (1):
      grimshot: Fix man page issues

columbarius (1):
      config: allow whitespaces in config path

ftilde (1):
      Fix for_window criteria and mouse button bindings

fwsmit (1):
      Implement foreign toplevel fullscreen output hints

heitor (2):
      update portuguese README (fix typos, update informations...)
      fix typo

lbonn (1):
      focus: beyond fullscreen when focused explicitly

mwenzkowski (3):
      container: Fix NULL pointer dereference
      output: evacuate sticky containers only if new output has a workspace
      output: Revert implementation of evacuate_sticky()

oliver-giersch (1):
      swaynag: adds option to separately specify the text color for buttons

wb9688 (1):
      Replace unprintable characters in input device id

xdavidwu (1):
      Implement input method keyboard grab

Érico Rolim (1):
      swaymsg.1: expand tip for multi-word strings.
6 people reacted
Assets 4
Pre-release
Pre-release

@emersion emersion released this Mar 31, 2021

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
Assets 4
Pre-release
Pre-release

@emersion emersion released this Mar 24, 2021

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
Assets 4
Pre-release
Pre-release

@emersion emersion released this Mar 16, 2021

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 constants for atom array
      Switch to wlr_xdg_surface_for_each_popup_surface
      Rename output_layer_for_each_surface_{toplevel,popup}
      protocols: update layer-shell-unstable-v1 to v4
      Raise verbosity of error message in load_main_config
      Log when config file is not found
      readme: update French translation
      build: use wlroots dependency variables
      Fix wl_shm_format passed to wlr_texture_from_pixels
      build: stop cargo-culting assignment alignment
      man: document `input XXX map_to_output *`
      Automatically map built-in touchscreens/tablets to built-in panels
      xwayland: simplify override-redirect focus restoration

SpizzyCoder (1):
      Changed fprintf(stdout,...) to printf(...) for more readable code

Tadeo Kondrak (6):
      text_input: Ignore text_input disable from unfocused windows
      text_input: Only send surrounding_text and content_type if supported
      text_input: Add support for focusing layer-shell surfaces
      Fix incorrect damage being applied on popups
      build: Add dependency on libdrm
      output: Reconfigure xcursor when applying output config

Tamir Zahavi-Brunner (1):
      hide_cursor: Add an option to hide when typing

Tarmack (1):
      Add support for workspace_min_width bar option.

Thayne McCombs (2):
      Keep windows in bounds on move to position mouse
      Use wlr_output_layout_output_at to get output for move to cursor

Tobias Langendorf (2):
      Fix X11 clients getting stuck minimized
      xwayland: support views that change override-redirect status

Tudor Brindus (23):
      input/pointer: correctly handle bindings for synthetic events
      tree/view: fix smart borders with tabbed/stacked ancestor
      Minor wording changes in Romanian README.md translation
      commands/move: unwrap workspace container on move to new workspace
      commands/move: maintain workspace_layout when moving
      input/cursor: don't send wl_pointer.motion event on pointer unlock warp
      input/pointer: update cursor activity after updating button counts
      desktop/render: show indicators for top-level split
      commands/move: fix single-split escaping on move
      input/cursor: default tablet lens tool to relative motion
      input/tablet: add tool_mode option to set tablet tools as relative input
      xwayland: listen to `set_geometry` event
      transaction: don't reconfigure X views unless integral coords changed
      transaction: validate X transaction completions by geometry, not size
      transaction: make transaction collapsing smarter with > 2 views
      input: remove motion deltas from seatop callbacks
      commands/focus: force container warp when fulfilling `focus mode_toggle`
      input: fully change focus when scrolling tabs/stacks
      input/seatop_default: consider fullscreen views to have no edges
      tree/container: introduce `container_is_sticky[_or_child]` functions
      Small wording change to README.ja.md
      input/cursor: unhide cursor on synthetic input
      commands/move: don't flatten on move; reap empty former parent instead

Vinko Kašljević (1):
      Add check for empty GEOM variable

Vlad Pănăzan (1):
      Add layer shell subsurfaces

Vyivel (1):
      output: simplify layer surface iteration

Wai Hon Law (1):
      Make the default workspace commands compatible with i3

William Culhane (1):
      grimshot: Fix man page issues

ftilde (1):
      Fix for_window criteria and mouse button bindings

fwsmit (1):
      Implement foreign toplevel fullscreen output hints

heitor (2):
      update portuguese README (fix typos, update informations...)
      fix typo

lbonn (1):
      focus: beyond fullscreen when focused explicitly

mwenzkowski (3):
      container: Fix NULL pointer dereference
      output: evacuate sticky containers only if new output has a workspace
      output: Revert implementation of evacuate_sticky()

oliver-giersch (1):
      swaynag: adds option to separately specify the text color for buttons

wb9688 (1):
      Replace unprintable characters in input device id

xdavidwu (1):
      Implement input method keyboard grab

Érico Rolim (1):
      swaymsg.1: expand tip for multi-word strings.
Assets 4

@emersion emersion released this Nov 10, 2020

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
Assets 4

@emersion emersion released this Jul 15, 2020

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):
      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 (52):
      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 scale filter after the output commit
      Fix output transform anticlockwise
      Fix output transform rotation direction
      Specify that output transform applies clockwise rotations
      Fix get_int_prop(WINDOW_TYPE) crash
      Don't apply exclusive zones of unmapped layer-shell surfaces
      Add support for wlr-output-power-management-unstable-v1
      Make handle_destroy and output_repaint_timer_handler static
      Only schedule a frame if client has requested a frame callback
      Drop sway_output.surface_needs_frame
      Use wlr_client_buffer
      Add an adaptive_sync output command
      Add adaptive_sync_status to output IPC reply
      common/log: improve time prefix
      readme: git is an optional dependency
      Fix output mode usage
      Change focus_on_window_activation default to urgent
      Update for new wlr_buffer API
      Stop checking wlr_output_attach_buffer return value
      Introduce test_output_config
      Add test-only support to wlr-output-management-unstable-v1
      ci: don't build scdoc
      ci: remove epoll-shim hardcoded pkg-config file
      Fix initial modeset
      Don't add disabled outputs back to output layout
      Use bitshifts for bitfields
      Implement create_output command for headless backend
      Restrict relative output transforms to runtime changes
      man: add note about sway-input and sway-output pages
      Redirect questions to wiki/IRC
      build: improve feature summary
      Don't assert the cursor theme loads
      Fix invisible cursor on startup
      Add a secondary headless backend
      Log Sway version on startup
      Remove view child surface_{map,unmap} listeners on destroy
      Add support for viewporter
      Update version to 1.5-rc1
      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

Some Chinese Guy (3):
      Added focus following for touch_down
      switched to setting focus with seat_set_focus
      swapped hiding the cursor and sending a touch event as a more logical sequence

Tadeo Kondrak (1):
      Null check sway_layer_surface when checking damage

Teddy Reed (1):
      Fix ordering of setgid and setuid

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

TheAvidDev (1):
      Add wayland_client dependency to common

Thomas Hebb (3):
      config: fix unfocused text color
      Add each view's shell to JSON description
      Use new wlroots API for clearing keyboard/pointer focus during grabs

Till Hofmann (1):
      Avoid calling strcmp on nullptr

Tobi Fuhrimann (1):
      Reference wev instead of xev

Torstein Husebø (1):
      treewide: fix typos

Tudor Brindus (47):
      input/cursor: correctly send tablet_v2 up event when over non-v2 surface
      input/cursor: fix jerky resizing of non-tablet_v2 surfaces
      input/cursor: fix hide cursor timeouts on tablets and touchscreens
      config/output: reconfigure input devices on new output
      input/cursor: correctly transfer focus when using tablet pen
      config/output: reconfigure input devices after full output init
      input/tablet: query tablet focused surface for cursor image check
      Add debug symbol stack trace note to ISSUE_TEMPLATE.md
      input/cursor: release simulated tool tip button when over v2 surface
      input/cursor: make cursor rebasing cursor type-agnostic
      input/cursor: disambiguate cursor functions from pointer functions
      input: refactor tablet motion into seatop handler
      input: rename pointer handlers to be unambiguous
      input/cursor: remove erroneous cast for tablet tool button
      input/keyboard: use wlr_keyboard_keymaps_match from wlroots
      input/tablet: simplify parameter plumbing for tablet references
      input/cursor: don't apply pointer constraint to emulated tablet input
      input/pointer: only warp cursor when the confine region has changed
      common/log: use bright black rather than black for SWAY_DEBUG
      input/tablet: add seatop_down entry for tablet input
      input/cursor: fix heap-buffer overflow in constraint set_region
      input/cursor: keep reference to cursor in constraint
      Log Xwayland startup failures
      input/pointer: send pointer enter event on confine warp
      ipc: invert output transformation when necessary
      input/cursor: rename `simulated_tool_tip_down` to be more accurate
      tree/container: refactor `tiling_container_at` to check bounds
      xwayland: pass focus to previous unmanaged surface on unmap
      input/cursor: refactor tablet tool tip events into seatops
      common/util: fix `get_current_time_msec` returning microseconds
      tree/container: introduce `container_toplevel_ancestor` helper
      input/tablet: allow moving floating tablet v2 surfaces by pen input
      input/tablet: allow moving tiling tablet v2 surfaces by pen input
      input: tweak resize behavior to not change tab focus on border click
      tree/view: fix smart gaps when ancestor container is tabbed or stacked
      input/tablet: focus appropriate node on tip down
      input/pointer: don't trigger pointer bindings for emulated input
      input/cursor: send idle events based off device type, not input type
      input/pointer: don't trigger pointer bindings for emulated input
      input: disable events for map_to_output devices when output not present
      input/seat: don't notify keyboard grabs with NULL surface on shutdown
      input_cmd_click_method: fix typo in error text
      input/pointer: correctly handle bindings for synthetic events
      tree/view: fix smart borders with tabbed/stacked ancestor
      commands/move: unwrap workspace container on move to new workspace
      commands/move: maintain workspace_layout when moving
      input/cursor: don't send wl_pointer.motion event on pointer unlock warp

Vinko Kašljević (1):
      Add check for empty GEOM variable

Wai Hon Law (1):
      Make the default workspace commands compatible with i3

Yorick van Pelt (1):
      Fix crash: use wlr_output->name instead of possibly missing oc->name

jhalmen (1):
      fix typos in sway-input.5.scd

lbonn (1):
      ipc: show marks of containers without view in tree

r-c-f (1):
      check for workspace command name arg

rinpatch (1):
      sway.5: fix missing background scaling mode in a block example

roshal (1):
      add dots to man

salkin-mada (1):
      add danish README

skip-yell (1):
      Add Korean README.md

taminaru (1):
      Add Romanian translation

thermitegod (1):
      Fix compiling with -fno-common

wb9688 (1):
      Replace unprintable characters in input device id

xdavidwu (5):
      Port input method and text input from rootston
      input-method: remove surface listener before set
      input-method: avoid and log unneeded set_focus
      im: make text-input listeners per text-input
      im: remove listener on pending surface destoryed

Érico Rolim (2):
      security.d: remove directory
      Remove code related to the security features
Assets 4
Pre-release
Pre-release

@ddevault ddevault released this Jul 1, 2020

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.

Assets 4
Pre-release
Pre-release

@emersion emersion released this Jun 24, 2020

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 scale filter after the output commit
      Fix output transform anticlockwise
      Fix output transform rotation direction
      Specify that output transform applies clockwise rotations
      Fix get_int_prop(WINDOW_TYPE) crash
      Don't apply exclusive zones of unmapped layer-shell surfaces
      Add support for wlr-output-power-management-unstable-v1
      Make handle_destroy and output_repaint_timer_handler static
      Only schedule a frame if client has requested a frame callback
      Drop sway_output.surface_needs_frame
      Use wlr_client_buffer
      Add an adaptive_sync output command
      Add adaptive_sync_status to output IPC reply
      common/log: improve time prefix
      readme: git is an optional dependency
      Fix output mode usage
      Change focus_on_window_activation default to urgent
      Update for new wlr_buffer API
      Stop checking wlr_output_attach_buffer return value
      Introduce test_output_config
      Add test-only support to wlr-output-management-unstable-v1
      ci: don't build scdoc
      ci: remove epoll-shim hardcoded pkg-config file
      Fix initial modeset
      Don't add disabled outputs back to output layout
      Use bitshifts for bitfields
      Implement create_output command for headless backend
      Restrict relative output transforms to runtime changes
      man: add note about sway-input and sway-output pages
      Redirect questions to wiki/IRC
      build: improve feature summary
      Don't assert the cursor theme loads
      Fix invisible cursor on startup
      Add a secondary headless backend
      Log Sway version on startup
      Remove view child surface_{map,unmap} listeners on destroy
      Add support for viewporter
      Update version to 1.5-rc1

Some Chinese Guy (3):
      Added focus following for touch_down
      switched to setting focus with seat_set_focus
      swapped hiding the cursor and sending a touch event as a more logical sequence

Tadeo Kondrak (1):
      Null check sway_layer_surface when checking damage

Teddy Reed (1):
      Fix ordering of setgid and setuid

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

TheAvidDev (1):
      Add wayland_client dependency to common

Thomas Hebb (3):
      config: fix unfocused text color
      Add each view's shell to JSON description
      Use new wlroots API for clearing keyboard/pointer focus during grabs

Till Hofmann (1):
      Avoid calling strcmp on nullptr

Tobi Fuhrimann (1):
      Reference wev instead of xev

Torstein Husebø (1):
      treewide: fix typos

Tudor Brindus (42):
      input/cursor: correctly send tablet_v2 up event when over non-v2 surface
      input/cursor: fix jerky resizing of non-tablet_v2 surfaces
      input/cursor: fix hide cursor timeouts on tablets and touchscreens
      config/output: reconfigure input devices on new output
      input/cursor: correctly transfer focus when using tablet pen
      config/output: reconfigure input devices after full output init
      input/tablet: query tablet focused surface for cursor image check
      Add debug symbol stack trace note to ISSUE_TEMPLATE.md
      input/cursor: release simulated tool tip button when over v2 surface
      input/cursor: make cursor rebasing cursor type-agnostic
      input/cursor: disambiguate cursor functions from pointer functions
      input: refactor tablet motion into seatop handler
      input: rename pointer handlers to be unambiguous
      input/cursor: remove erroneous cast for tablet tool button
      input/keyboard: use wlr_keyboard_keymaps_match from wlroots
      input/tablet: simplify parameter plumbing for tablet references
      input/cursor: don't apply pointer constraint to emulated tablet input
      input/pointer: only warp cursor when the confine region has changed
      common/log: use bright black rather than black for SWAY_DEBUG
      input/tablet: add seatop_down entry for tablet input
      input/cursor: fix heap-buffer overflow in constraint set_region
      input/cursor: keep reference to cursor in constraint
      Log Xwayland startup failures
      input/pointer: send pointer enter event on confine warp
      ipc: invert output transformation when necessary
      input/cursor: rename `simulated_tool_tip_down` to be more accurate
      tree/container: refactor `tiling_container_at` to check bounds
      xwayland: pass focus to previous unmanaged surface on unmap
      input/cursor: refactor tablet tool tip events into seatops
      common/util: fix `get_current_time_msec` returning microseconds
      tree/container: introduce `container_toplevel_ancestor` helper
      input/tablet: allow moving floating tablet v2 surfaces by pen input
      input/tablet: allow moving tiling tablet v2 surfaces by pen input
      input: tweak resize behavior to not change tab focus on border click
      tree/view: fix smart gaps when ancestor container is tabbed or stacked
      input/tablet: focus appropriate node on tip down
      input/pointer: don't trigger pointer bindings for emulated input
      input/cursor: send idle events based off device type, not input type
      input/pointer: don't trigger pointer bindings for emulated input
      input: disable events for map_to_output devices when output not present
      input/seat: don't notify keyboard grabs with NULL surface on shutdown
      input_cmd_click_method: fix typo in error text

Yorick van Pelt (1):
      Fix crash: use wlr_output->name instead of possibly missing oc->name

jhalmen (1):
      fix typos in sway-input.5.scd

lbonn (1):
      ipc: show marks of containers without view in tree

r-c-f (1):
      check for workspace command name arg

rinpatch (1):
      sway.5: fix missing background scaling mode in a block example

roshal (1):
      add dots to man

salkin-mada (1):
      add danish README

skip-yell (1):
      Add Korean README.md

taminaru (1):
      Add Romanian translation

thermitegod (1):
      Fix compiling with -fno-common

xdavidwu (5):
      Port input method and text input from rootston
      input-method: remove surface listener before set
      input-method: avoid and log unneeded set_focus
      im: make text-input listeners per text-input
      im: remove listener on pending surface destoryed

Érico Rolim (2):
      security.d: remove directory
      Remove code related to the security features
Assets 4

@ddevault ddevault released this Jan 22, 2020

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 `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
      Fix unreliable scaling filter
      Revert "Make all the container dimensions integers"

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_

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

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
Assets 4