Skip to content

Releases: swaywm/sway

1.0-alpha.1

07 Apr 19:36
4b20086
Compare
Choose a tag to compare
1.0-alpha.1 Pre-release
Pre-release

Sway 1.0-alpha.1 contains 624 changes from 5 contributors (plus 2,329 changes from 39 contributors to wlroots) and is the first alpha release of sway 1.0. Note that sway alpha releases are not considered complete, are missing many features, and will have many bugs. You are strongly encouraged to remain on sway 0.15.x if you are not prepared to deal with constant breakage and keep quiet about it. The purpose of this release of sway is to help users understand the progress we've made towards 1.0 and provide internal versions for development use - many of the sway developers will be using sway 1.0-alpha.1 even though it is very incomplete, because it will help us understand the places where it is lacking.

Please do not submit bug reports for this version of sway. Submit patches instead.

Package maintainers: please do not package this release.

Breaking Changes

  • As this is an alpha release and we have completely overhauled the codebase, many (perhaps most) features are missing and broken.
  • This release requires wlroots. The recommended commit of wlroots for use with this release is ba5c090.
  • Experimental Nvidia proprietary driver 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.

New Features

Outputs

  • Output rotation (e.g. output NAME transform 90)
  • Fractional scaling (e.g. output NAME scale 1.5)
  • Output resolution is now applied via modesetting
  • Support for daisy-chained DisplayPort and other exotic configurations
  • Swaylock, swaybar, and swaybg support HiDPI correctly

Inputs

  • Multiple input devices can be bound to a single on-screen cursor (or several)
  • Keyboard layout and XKB options may be specified in the config file
  • Multiple keyboards with different layouts can be used interchangably
  • Multiple seats can be configured (each with their own input devices and focused window)

Wayland Features

  • Rich content (images, etc) can be copied from Xwayland to Wayland and vice versa
  • GTK's primary selection protocol has been implemented (and syncs with Xwayland primary selection)
  • The layer-shell protocol has been implemented (which permits future support for e.g. rofi, on-screen keyboards, third-party panels, etc)
  • Orbital's screenshooter protocol has been implemented (which permits third-party software to capture the screen)
  • Idle & idle inhibit have been implemented (which permits DPMS and the inhibition of DPMS by e.g. video players to work)
  • Client-side/server-side decoration negotiation has been submitted for standardization

Other

  • Output damage tracking significantly improves both CPU performance and power usage
  • The Wayland and x11 backends are now supported for end user use
  • Window opacity can be configured with the opacity command

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 generally crash anymore
  • TTY switching probably works
  • Most bugs in general are fixed

0.15.1

28 Dec 02:33
Compare
Choose a tag to compare
0.15.1 Pre-release
Pre-release

Sway 0.15.1 is a bugfix release containing 58 changes from 18 contributors.

  • Update to json-c 0.13 (@besser82)
  • Documentation corrections (@Zer0-One, @madblobfish)
  • Portability fixes (@johalun)
  • Output scale now preserved upon reloads/hotplugs (@sideshowdave7)
  • Closing fullscreen windows in nested containers no longer crashes (@SirCmpwn)
  • swaygrab more gracefully handles errors (@ggreer)
  • Fixes to some minor tray issues (@etam)
  • Fix security grants for swaylock -f (@4e554c4c)
  • Clear password buffer after checking it in swaylock (@ggreer)

0.15.0

06 Nov 23:24
Compare
Choose a tag to compare
0.15.0 Pre-release
Pre-release

Sway 0.15 includes 199 changes from 39 contributors. New features include scriptable clipboard support and raspberry pi support, but this release is mostly for bug fixes. This is also the last release of sway that will be based on wlc - for more information, see my blog post on the matter.

There will be no 0.16 - the next release will be 1.0.

Changes

  • Default wallpapers are now in /usr/share/backgrounds/sway (@her001 - #1238)
  • Compiling man pages (and asciidoc) is now optional (@SirCmpwn - 23a1e94)
  • README translated into 9 more languages (too many to thank!)
  • We've split our IRC channels into separate support and development channels

New Features

Bugs Fixed

0.14.0

26 Jul 23:21
Compare
Choose a tag to compare
0.14.0 Pre-release
Pre-release

This release contains 72 changes from 12 contributors. New features include support for tray icons and support for KDE's Wayland extension for client-side border negotiation. Several smaller features and many bug fixes are also included. Updates to wlc also improve touchscreen support and fix the old extra cursor gdm issue.

Tray icons are now supported via SNI, and Xembed support is in-progress and planned for a future release. Tray icons for programs using the new specification should work correctly, but older programs using Xembed will not. Border negotiation requries participation from the client - a patch for GTK+ is available here.

You may have heard that we're replacing wlc, a library that does a lot of low-level plumbing work for Sway. I'm happy to announce that our replacement project, wlroots, is progressing at a great pace - largely thanks to financial support from Nyantec, who offered to sponsor me to work full time on Sway for 3 weeks during this release cycle. Additional support has come from supporters of my new Patreon page - many thanks! Dramatic improvements to Sway will be possible when wlroots is ready. Look forward to it!

Changes

  • libdbus is now an optional dependency for tray icon support (package maintainers, take note)
  • Non-logind systems now report configuration errors more verbosely (@Hummer12007 - #1218)
  • asciidoc is now optional; without it man pages will not be built (@SirCmpwn - cf4ea4c)

New Features

Bugs fixed

  • Specifying fewer than 5 colors during configuration did not work (@SirCmpwn - #1201)
  • layout auto with no additional arguments no longer crashes Sway (@zandrmartin - #1204)
  • Issues with the Firefox address bar dropdown have been fixed (@SirCmpwn - d158e18)
  • Nested child processes of swaybar are now killed correctly (@ykrivopalov - #1236)
  • Minor documentation fixes via @4e554c4c, @zandrmartin, @wdbw, @her001
  • @johalun fixed some FreeBSD issues and is now the FreeBSD point of contact (#1232)
  • Use-after-free bug fixed in bindsym (@tobiasblass - #1270)
  • Fail gracefully when security policies cannot be allocated (@Hummer12007 - #1255)

0.13.0

08 May 16:40
Compare
Choose a tag to compare
0.13.0 Pre-release
Pre-release

This release contains 103 changes from 12 contributors. New features include support for i3's marks feature, "immediate" criteria commands, and experimental support for the nvidia proprietary driver. Many small improvements to i3 compatibility and many bugfixes are also included.

For nvidia users, nouveau is still strongly recommended. The proprietary driver mostly works, but is unsupported - do not report bugs unless you attach a patch. Unless your hardware is unsupported by nouveau, you should continue using nouveau. Using sway with the proprietary drivers requires additional configuration - sway will output the necessary information if you attempt it without a correct configuration.

Package maintainers: please update your packages to use -DVERSION=major.minor.patch. Normally the version is sourced from git, but if you build from a tarball then you'll have to specify it manually.

Changes

  • The new_window and new_float commands are deprecated in favor of default_border and default_floating_border. A similar change is expected from i3. (@zandrmartin - #1105)
  • 444 is now an acceptable file mode for security configs (@jnsaff - #1117)
  • Any executable that is not owned by root will receive the default security policy regardless of any additional configured permissions (@JerziKaminsky)

New features

Bugs fixed

  • Missing swaylock security settings were added (@SirCmpwn - 21ad45b)
  • -Werror issues on the latest gcc have been corrected (@Fale - #1086)
  • The codebase is more POSIXly correct and does not rely on GNUisms (@SirCmpwn - 9aed9d9)
  • Issues building against a local copy of wlc has been fixed (@snoack - #1115)
  • A problem with keyboard code in sway's Wayland clients was fixed (@zandrmartin - #1121)
  • Focus could be stolen from fullscreen windows under some conditions (@zandrmartin - #1126)
  • Spaces are now permitted in workspace names (@4e554c4c - #1101)
  • Issues with workspace assignment have been corrected (@zandrmartin - #1105)
  • Man page typos fixed (@johnchen902 - #1113)
  • Crashiness with move [next|prev] was fixed (@oranenj - #1130)
  • Regular expressions are now handled with PCRE for better i3 compatibility (@ascent12 - #1151)
  • Dangling file descriptors on IPC client termination was fixed (@SirCmpwn, @ascent12 - #1153)
  • libcap is now explicitly required in our CMakeLists.txt (@JerziKaminsky - #1150)
  • move [to] scratchpad did not support the "to" syntax (@wasamasa - #1180)
  • Windows leaving the scratchpad are now sized to match i3 behavior (@wasamasa - #1181)
  • Specifying fewer than 5 colors with client.* now matches i3 behavior (@SirCmpwn - #1201)

0.12.2

03 Apr 15:06
Compare
Choose a tag to compare
0.12.2 Pre-release
Pre-release

Changes

  • 444 is permitted as an access mode for security configs (@jnsaff - #1117)

Bugs fixed

  • move next could cause crashes (@oranenj - #1130)
  • New windows could steal focus from fullscreen windows (@zandrmartin - #1126)
  • Fix problem with workspace_layout auto (@oranenj - #1119)
  • Fix build for systems where wlc headers are not installed globally (@snoack - #1115)

0.12.1

14 Mar 03:18
Compare
Choose a tag to compare
0.12.1 Pre-release
Pre-release

Bugs Fixed

0.12

07 Mar 14:49
Compare
Choose a tag to compare
0.12 Pre-release
Pre-release

This release contains 93 changes from 11 contributors. Changes in this release include redshift support (currently requires a patched redshift), new automatic layout modes for Awesome migrants, security improvements, and many bugfixes. Please take careful note of the changes to IPC security configuration - these are backwards-incompatible and will require user intervention if you have customized your security configuration.

Package maintainers - /etc/sway/security has been moved to /etc/sway/security.d/00-defaults, and users are no longer expected to edit this file. FreeBSD users should take special note of these changes and will likely want to introduce a new file in /etc/sway/security.d/ that applies a liberal security policy for IPC-related features - the FreeBSD port is unable to enforce per-application IPC rules and you'll want to add a default rule that permits everything for now.

For those hoping to configure sway's default keybindings and behavior to be more like Awesome, see awesome.config

Changes

  • /etc/sway/security has been moved to /etc/sway/security.d/00-defaults and users are now encouraged to add their own security configurations as additional files in /etc/sway/security.d/. Maintainers of software that integrates with sway and require special permissions are encouraged to ship security configs in this directory as well (@SirCmpwn - #1080)
  • If not specified at build time, LD_LIBRARY_PATH will be unset, rather than defaulting to /usr/lib (@Hummer12007 - #1050)
  • Default backgrounds have been losslessly re-compressed and should reduce the package weight if enabled (@Jesin - #1032)
  • Previously undocumented features (swaygrab -f and hide_edge_borders) are now covered by their respective manuals (@Hummer12007, @ametisf - #1073, #1051)
  • Environment logging now occurs prior to compositor initialization, which helps diagnose certain kinds of problems (@SirCmpwn - 41f7aaa)

New Features

  • New automatic layouts unique to sway have been implemented that behave like similar features in WMs like Awesome. See sway(5) and look for layout auto for details. (@willakat - #1024)
  • Sway now supports gamma adjustment, which you can take advantage of with a patched redshift (@SirCmpwn - #1019)
  • IPC features can now be secured on a per-application basis - see sway-security(7) (@SirCmpwn - #1080)
  • focused is now available in window criteria (@Hummer12007 - #1053)
  • output [left|right] now matches i3's wrapping behavior (@dkess - #1048)
  • XWayland window instances are now shown in title bars if necessary (@Hummer12007 - #1052)
  • hide_edge_borders smart is now implemented, following i3 4.13 (@ametisf - #1044)

Bugs Fixed

  • Issues compiling sway on gcc 7 have been resolved (@Fale - #1086)
  • Capabilities are more carefuly handled when transitioning from euid 0 to a normal user, which fixes some problems on systems without logind (@Hummer12007 - #1043)
  • xdg-shell v6 support has been fleshed out in both wlc and sway, which should fix things like broken right click menus on GTK apps (@Hummer12007 - #1070, #1055)
  • Floating windows were created with the incorrect geometry, which has been corrected (@zandrmartin - #1075)
  • Image scaling specified at the swaylock command line was ignored, and now works correctly (@zandrmartin - #1017)
  • Inconsistencies with workspace layouts in IPC messages between i3 and sway were corrected (@Hummer12007 - #1030)
  • Workspaces with spaces in their names are now supported more consistently with i3 (@4e554c4c - #1011)

Sway 0.11

27 Dec 17:04
Compare
Choose a tag to compare
Sway 0.11 Pre-release
Pre-release

This release includes 139 changes from 12 authors. The biggest feature 0.11 offers is the first steps towards the goal of a secure Wayland desktop by adding new knobs to secure your sway installation - read sway-security(7) for details. These are only the first steps towards a secure sway, and no promises are made about how well it works. Please test it and look for ways to break it and provide feedback on your experiences.

Package maintainers - consider reading through sway-security(7) and seeing if there are any security-related configuration changes you'd like to ship with your sway installation. SYS_CAP_PTRACE is now required on /usr/bin/sway. Sway also hardcodes LD_LIBRARY_PATH on startup now - you can change this with -DLD_LIBRARY_PATH=... if you set this to something other than /usr/lib in your distro.

FreeBSD users - note that we cannot enforce security policies on a per-executable basis until this issue is resolved. The default security policy will be applied to all executables.

Also note that today I'm happy to introduce the sway bounty program - contribute some cash to support the development of the features you want, or write the code and claim the bounty! Information about this is available here: #986

Changes

  • Sway now depends on libcap on Linux
  • Moving between containers now wraps according to i3 behavior (@thejan2009 - #936)
  • Alpha blending is now done with CAIRO_OPERATOR_SOURCE (@SirCmpwn - c0916f6)
  • bar pango_markup defaults to false, following i3 change (@Hummer12007 - #958)
  • -Denable-binding-event is no longer available - see sway-security(7) (@SirCmpwn - #981)
  • New floating windows now spawn in the center of the screen (@alkino - #1001)

New Features

Bugs Fixed

  • Errors in swaybar's hidpi rendering were corrected (@thejan2009 - #920)
  • Bug fixed where IPC events were emitted before IPC initialization (@gutsoo - #923)
  • Segfault during edge case on workspace switching was fixed (@zandrmartin - #924)
  • An IPC tree response compatability issue was corrected (@zandrmartin - #925)
  • Buggy font selection issues were fixed in swaylock (@wasamasa - #928)
  • Fixes to scale factor in text scaling (@alkino - #937)
  • Issue creating a sibling of a floating window fixed (@alkino - #938)
  • Some commands were not matched during command matching (@thejan2009 - #940)
  • Indicator border no longer shown on floating windows (@thejan2009 - #941)
  • An issue with for_window [] move scratchpad was fixed (@thejan2009 - #942)
  • You can now move empty workspaces (@alkino - #947)
  • Fixes with default workspace layouts (@thejan2009 - #945)
  • layout toggle split behavior fixed for tabbed/stacked layouts (@thejan2009 - #966)
  • When swaylock exited, it would not focus whatever you were using before (@cyphar - #1014)

Sway 0.10

25 Oct 22:39
Compare
Choose a tag to compare
Sway 0.10 Pre-release
Pre-release

This release includes 118 changes from 19 authors. 0.10 is mostly bug fixes and i3 compatability issues, but major 0.10 news includes FreeBSD support and a package in the official Fedora repositories. A possible privledge escalation vulnerability was fixed in 0.10 - see the changelog for details.

New Features

  • sway now runs on FreeBSD! (thanks @yohanesu75!)
  • swaymsg now pretty prints the JSON response (thanks @acrisci!)
  • The application class is displayed in titlebars if the title is missing (thanks @thejan2009!)
  • Disabling outputs at runtime might work (thanks @thejan2009!)
  • i3's indicator border color feature is now supported (thanks @guiniol, @thejan2009!)
  • Input device names in input configurations now support * (thanks @SirCmpwn!)
  • Initial support for HiDPI was added to swaybar, swaybg, and swaylock (thanks @SirCmpwn, @thejan2009!)
  • Moving views across an output's edge is now supported (thanks @mikkeloscar!)
  • swaygrab can now screenshot the focused container via -f (thanks @zandrmartin!)

Bugs Fixed

  • A security issue was fixed - you are affected if you have users on your system that use sway but do not have root access - details in #884 (thanks @Fale!)
  • A number of changes were made to IPC for better i3 compatability (thanks @acrisci, @zandrmartin!)
  • An uninitialized variable fixed the default config for wrap_scroll (thanks @minus7!)
  • Color parsing previously could cause values to clamp and lose information (thanks @progandy!)
  • workspace back_and_forth and workspace_auto_back_and_forth had issues getting along (thanks @thejan2009!)
  • Weirdness in edge cases with moving windows was fixed (thanks @Hummer12007!)
  • Edge case in workspace handling during view creation was fixed (thanks @thejan2009!)
  • A problem with move container to workspace was fixed (thanks @thejan2009!)
  • Null pointer dereference during config load edge case was fixed (thanks @kb100!)
  • The behavior of hide_edge_borders was fixed (thanks @lukaslihotzki!)
  • Fullscreen windows previously had input priority over swaylock (thanks @SirCmpwn!)
  • The behavior of pango markup on swaybar was fixed (thanks @zandrmartin!)
  • swaybar previously couldn't switch between workspaces with spaces in their names (thanks @thejan2009!)
  • swaybars could be loaded before all outputs were loaded, which could cause a segfault (thanks @RyanDwyer!)
  • An IPC-related segfault during initialization was fixed (thanks @gutsoo!)
  • Possible use-after-free in focus handling was fixed (thanks @zandrmartin!)

Changes

  • Some improvements were made to the default config (thanks @mayhewj, @goetzc, @zandrmartin!)
  • Some internal refactoring around focus (thanks @acrisci!)
  • Some internal refactoring around commands (thanks @zandrmartin!)
  • Improvements were made to man pages (thanks @minus7, @mmlb!)
  • pango_markup in your bar config now defaults to false, following the same change in i3 (thanks @Hummer12007!)