Skip to content
Sway 1.0-rc1 contains 311 changes from 32 contributors since 1.0-beta2.
The release candidates are considered complete and will receive no new
features, only bug fixes. Once a release candidate sees a week of
testing without turning up any new bugs, it will become a stable
release.

The recommended wlroots version to use with this sway release is
[XXX](https://github.com/swaywm/wlroots/commit/TODO).

Package maintainers: **please do not package this release**.

- [swayidle](https://github.com/swaywm/swayidle) and
[swaylock](https://github.com/swaywm/swaylock) are now standalone
projects and must be installed separately. These no longer depend on
wlroots or sway's internals and can be used with other Wayland
compositors.
- The minimum required scdoc version is now 1.8.1 (for generating man
pages)
- The minimum required systemd version (for optional systemd
integration) is now 239

- Add tray support to swaybar. Note: this is limited to the SNI
protocol. The legacy Xembed protocol is not yet supported, nor is the
canonical dbus menu.
- Pointer constraints (necessary for locking the pointer in video games)
is now supported
- Add `hide_cursor <timeout>` to hide the cursor when not in use
- Support for clipboard managers such as
[wl-clipboard](https://github.com/bugaevc/wl-clipboard) via the
data-control-v1 protocol
- Tiling containers can now be stickied
- i3's `fullscreen global` command has been implemented
- Seat commands can now refer to seat "-" to affect the current seat
- Add a new `xwayland` command to disable Xwayland in the config file
- Add a new `tiling_drag_threshold` command

- swaylock: clear password buffer on Ctrl-C, submit password on Ctrl-D
- Use meson feature options for build configuration
- Allow output ids and wildcard for workspace output
- Add option to bindsym/bindcode to suppress warning on override
- Add relative coordinates in JSON for i3bar click events
- swaybar: handle block->urgent
- Add `fullscreen_mode` to get_tree output
- Allow tiling views to be dragged by the titlebar
- Change mouse buttons to x11 map and libevdev names
- Revamp seat configs
- swaylock: Add caps lock state to indicator
- swaybar: add status_padding command
- swaybar: add status_edge_padding command
- cursor: allow mapping to all outputs
- cursor: allow scrolling tabs/stack on title border
- bind{code,sym}, seat_cmd_cursor, bar_cmd_bind,
input_cmd_scroll_button: improve mouse button parsing
- input_cmd_events: implement toggle
- get_inputs: add libinput send events mode
- Extend `input <identifier> events toggle` with a list of modes to
toggle through

This release is mostly bug fixes.

- Various shell completion improvements and fixes
- Fix the error result of the fullscreen command
- Fix outputs that are never enabled
- Keep focus when destroying containers on non-visible workspace
- swaybar: fix seperator block width for mixed scales
- swaybar: fix cursor scale
- swaynag: damage the cursor surface on update
- Terminate swaybg in output_disable
- Fix crash when scratchpad contains split containers
- Set font options when computing text width
- seat: unhide the cursor if it is warped to focus
- swaybar: fix rendering of border and background
- swaybar: obey height if given
- Handle empty $XDG_CONFIG_HOME better, without setting it
- Remove 'input' field of IPC command return json
- Disarm key repeat on reload
- Resize only current and immediate siblings rather than all siblings
- Handle hidden scratchpad containers in commands
- Permit resizing hidden scratchpad containers in some cases
- Don't abort when creating layer surfaces with zero outputs