Skip to content

sway 1.0

Compare
Choose a tag to compare
@ddevault ddevault released this 11 Mar 15:09
· 1808 commits to master since this release

Sway 1.0 (together with wlroots) includes 6,875 changes from 205 contributors. This is the first stable release of sway. The recommended wlroots release for use with sway 1.0 is wlroots 0.5.

Changes

  • 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, and for video capture try wlstream
  • This release depends on wlroots 0.5 and drops the dependency on wlc.
  • This release depends on scdoc 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.
  • swaylock is now distributed separately
  • swayidle, a new idle management daemon, is available separately

New Features

  • 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

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 are now supported
  • Moving tiled windows with the mouse now behaves like the proposed i3 feature
  • Pointer constraints allow video games and other applications to grab your pointer

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 redshift patch

* 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, lock screens, notification daemons, etc)
  • A real time screen capture protocol has been developed and implemented (which allows for future third-party screenshot and video capture 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

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

Bugs fixed

  • 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