Skip to content
sway 1.0-beta.1

Sway 1.0-beta.1 contains 2,544 changes from 80 contributors since
0.15.2, plus 3,225 changes from 67 contributors via wlroots, for a total
of 5,769 changes from 128 people over the past, and is the first
**beta** release of sway 1.0.  Beta releases are considered
feature-complete, but are not thought to be bug-free.  Nevertheless, it
should be suitable for most users, and we did not ship it with any known
major bugs. Please use it and provide feedback.

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

- We have completely overhauled the codebase. Some behaviors were
  changed to match i3 behavior, in breaking ways. There are likely many
  bugs we don't know about. Your millage may vary.
- swaygrab has been removed. For screenshots, try grim[0], and for video
  capture try wlstream[1]
- This release depends on wlroots[2] 0.1 and drops the dependency on wlc.
- This release depends on scdoc[3] for generating man pages, and drops
  the dependency on asciidoc.
- Experimental Nvidia support has been deprecated since its inception,
  and has now been removed entirely. Please use nouveau and consider
  future purchases from GPU vendors that support open source. Other
  proprietary drivers are also unsupported.

[0] https://github.com/emersion/grim
[1] https://github.com/atomnuker/wlstream
[2] https://github.com/swaywm/wlroots
[3] https://git.sr.ht/~sircmpwn/scdoc

- 100% i3 compatible*
- 100% i3 IPC compatible
- 100% i3-gaps compatible
- 100% i3bar compatible**

* Not including a small number of features which are are deliberately
  unsupported, such as layout save/restore or features which only make
  sense on X11

** Not including tray icons

**Sway features**

- swayidle, a daemon for managing DPMS and idle activity (e.g. automatic
  lock after a timeout), has been added - `man swayidle` to get started
- swaynag, an i3-nagbar replacement, has been added, with additional
  features not supported by i3-nagbar - `man swaynag` to get started
- `bindsym --locked` now adds keybindings which work when the screen is
  locked
- Command blocks are now generic and work with any command
- Window opacity can now be adjusted with the `opacity` command
- `border csd` now enables client-side decorations explicitly
- Atomic layout updates ensure that, when resizing windows and adjusting
  your layout, you never see an invalid frame with partially drawn clients
- Urgency hints from Xwayland are now supported
- Output damage tracking significantly improves CPU performance and power usage
- Hardware cursors are now supported, improving performance
- The Wayland, x11, and headless backends are now supported for end-user
  use, enabling nested and headless sway sessions
- On-screen keyboards like virtboard[0] are now supported
- Moving tiled windows with the mouse now behaves like the proposed i3
  feature[1]

[0] https://source.puri.sm/Librem5/virtboard
[1] https://github.com/i3/i3/pull/3085

**Outputs**

`man 5 sway-output`

- Output rotation (e.g. `output NAME transform 90`)
- Fractional scaling (e.g. `output NAME scale 1.5`) - see man page for warnings
- Windows can now be dragged between outputs with the mouse (and display
  correctly when dragged between outputs with different scale factors)
- Output resolution is now applied via modesetting
- Sway can now run on multiple GPUs
- Support for daisy-chained DisplayPort and other exotic configurations
- All sway clients (e.g. swaylock) now support HiDPI correctly
- A new gamma control interface with broader hardware support has been
  implemented* - see this[0] redshift patch

[0] https://github.com/jonls/redshift/pull/663

* Some users will have issues with buggy drivers, particularly certain
  AMDGPU configurations

**Inputs**

`man 5 sway-input`

- Keyboard layout and XKB options may be specified in the config file
- Multitouch support is now stable
- Drawing tablets are now supported (partially - it emulates a mouse)
- You can now specify the status of num lock and caps lock on startup
- Multiple input devices can be bound to a single on-screen cursor (or
  several cursors)
- Multiple keyboards with different layouts can be used interchangeably
- Multiple seats can be configured (each with their own input devices
  and focused window)
- Input devices can be mapped to limit their influence to specific
  outputs or regions of the screen
- Input devices which provide absolutely positioned events (e.g. drawing
  tablets) can now limit their influence to a subregion of the input
  device
- Mouse movement and button presses can now be simulated with sway
  commands

**Wayland Features**

- Drag and drop is now supported
- Rich content (images, etc) can now be copied between Xwayland and
  Wayland
- GTK's primary selection protocol has been implemented (and syncs with
  Xwayland primary selection)
- The layer-shell protocol has been implemented (which allows for
  third-party panels[0], lock screens, notification daemons[1], etc)
- A real time screen capture protocol has been developed and implemented
  (which allows for future third-party screenshot[1] and video
  capture[3] tools)
- The idle & idle inhibit protocols have been implemented (which permits
  DPMS and the inhibition of DPMS by e.g. video players to work)
- Client-side/server-side window decorations negotiation has been
  standardized and implemented
- The xdg-shell stable protocol is now supported

[0] https://github.com/Alexays/Waybar
[1] https://github.com/emersion/mako
[2] https://github.com/emersion/grim
[3] https://github.com/atomnuker/wlstream

**swaylock**

`man swaylock`

- Now supports different images on each output
- Appearance can now be configured
- Adds an optional config file

**Misc**

- Xwayland is now started only when the first X11 client is started

- All known problems with xdg-shell have been fixed (such as blurry
  menus that don't accept focus)
- All known problems with Xwayland have been fixed (such as Firefox menu
  weirdness)
- All known HiDPI bugs
- All known swaylock & swaybar bugs
- Reloading your config doesn't cause crashes
- TTY switching doesn't hang your system
- Most bugs in general are fixed