Skip to content

Releases: swaywm/sway

1.0-rc2

11 Feb 15:28
Compare
Choose a tag to compare
1.0-rc2 Pre-release
Pre-release
sway 1.0-rc2

Sway 1.0-rc2 contains 28 changes from 7 contributors since 1.0-rc1, and
only contains bug fixes.

The recommended wlroots version to use with this sway release is 0.3.

Package maintainers: please do not package this release.

Brian Ashworth (19):
      seat_cmd_cursor: do not create non-existing seat
      load_include_configs: fix wordexp fail condition
      swaynag: remove trailing newlines in config
      execute_command: dont strip quotes for exec_always
      IPC_COMMAND: split on newline
      cmd_workspace_gaps: fix double free on bad amount
      output_cmd_background: fix no file + valid mode
      load_main_config: add realpath to config_chain
      Clarify error for options and positional args
      load_main_config: use given path, store realpath
      seat_configure_tablet_tool: configure xcursor
      bar_cmd_modifier: add support for none
      container_at_stacked: skip titles when zero pixels
      input/keyboard: respect solo repeat_{rate,delay}
      view: remove pointer constraints on unmap
      ipc: handle unnamed xkb_active_layout_name
      fix misc memory leaks
      Abort early when XDG_RUNTIME_DIR is not set
      workspace_get_initial_output: handle focused layer

Connor E (2):
      If validating the config, do it as early as possible.
      Initialize server so input manager is available.

Daniel Eklöf (1):
      ipc_has_event_listeners: fix inverted check of subscribed_events

Michael Vetter (1):
      Set version in project file

Rouven Czerwinski (1):
      fix double free for mode toggle if bar was invisible

emersion (2):
      Fix quote stripping
      Fix close_popups for xdg-shell

vilhalmer (1):
      Focus ws inactive node with focus_follows_mouse

1.0-rc1

03 Feb 14:13
bbfe13a
Compare
Choose a tag to compare
1.0-rc1 Pre-release
Pre-release

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 0.3.

Package maintainers: please do not package this release.

Changes

  • swayidle and 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

New features

  • 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 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

Improvements

  • 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

Bugfixes

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

sway 1.0-beta.2

29 Nov 22:28
fd37ded
Compare
Choose a tag to compare
sway 1.0-beta.2 Pre-release
Pre-release

Sway 1.0-beta.2 contains 274 changes from 36 contributors since 1.0-beta.1. 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.

The recommended wlroots version to use with this sway release is 0.2.

Package maintainers: please do not package this release.

New features

  • Add strip_workspace_name (i3 4.16 feature)
  • Add title_align (i3 4.16 feature)
  • Add pixel argument for border toggle (i3 4.16 feature)
  • Add width and height to resize set (i3 4.16 feature)
  • Allow multiple assignments of workspaces to output (i3 4.16 feature)
  • Add a scroll_factor command to change linear scroll speed
  • Implement bar gaps
  • Add titlebar_border_thickness and titlebar_padding to customize titlebar borders and padding
  • Add warnings to swaynag for duplicate keybindings and invalid background image path
  • Implement the presentation-time protocol
  • Add multiseat support to swaylock
  • Add support for SUBSCRIBE messages in swaymsg (i3 4.16 feature)
  • Implement per side and per direction outer gaps
  • Add active keyboard layout to swaymsg -t get_inputs
  • Add output XXX transform <transform> clockwise|anticlockwise for relative
    transforms
  • Add focus_follows_mouse always
  • Make swayidle enter idle state on SIGUSR1

Improvements

  • workspace back_and_forth is now per-seat
  • Support for additional i3 window types
  • Add window_properties for Xwayland views in IPC replies
  • Update the surface under the cursor when switching views
  • Add a flag to make swaynag run commands directly instead of in a terminal (i3 4.16 feature)
  • Add scratchpad containers to get_tree reply
  • Improved fish shell completions
  • Match single-key bindings if no multi-key binding matched
  • Improved swaymsg -t get_outputs mode information
  • Allow variables to contain commands and multiple arguments
  • Allow multiple outputs for workspace <workspace> output <outputs...>

Bugfixes

This release is mostly bug fixes.

  • Fix focused properties in get_outputs replies
  • Fix pango markup for title_format
  • Fix swaybar output hotplug
  • Fix font sizes on reload
  • Fix swayidle event loop
  • Various fixes to make Firefox Nightly with native Wayland work
  • Change exec to return a list of results
  • Fix crash when moving a container to a fullscreen workspace
  • move to workspace: fix moving floating container to non-empty workspace
  • Fix crash when quitting a QT app on the wayland backend using menu
  • Fix xwayland wants_floating logic
  • Fix move events for scratchpad containers
  • Fix crash when resizing container hidden in the scratchpad
  • Fix cmd_swaynag_command
  • Fix swaybar crash when there's no status_command
  • Fix sway clients not exiting when compositor exits
  • Fix dormant cursor when using multiple seats
  • When scrolling on a tab titlebar, set focus inactive if not focused
  • Fix containers not being resized when entering scratchpad
  • resize set: convert ppt to px for floating containers
  • Fix swaybar scrolling
  • Fix crashes when there's no output connected
  • Fix re-tiling for floating containers
  • Fix focus after a non-visible workspace's last container is destroyed
  • Wrap to fartherest output when running focus output
  • exec_always: defer command on config validation

1.0-beta.1

20 Oct 22:06
3f02218
Compare
Choose a tag to compare
1.0-beta.1 Pre-release
Pre-release

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 14 months, 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.

Breaking 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 mileage may vary.
  • swaygrab has been removed. For screenshots, try grim, and for video capture try wlstream
  • This release depends on wlroots 0.1 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.

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

** 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 are now supported
  • Moving tiled windows with the mouse now behaves like the proposed i3 feature

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

1.0-alpha.6

21 Sep 13:46
Compare
Choose a tag to compare
1.0-alpha.6 Pre-release
Pre-release

Sway 1.0-alpha.6 contains 390 changes from 18 contributors. 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. Please do not submit bug reports for this version of sway. Submit patches instead.

Most of this release is bug fixes and aligning sway ever closer with i3 - our compatibility checklist is 92% complete. We have only a few items left on our todo list for 1.0-beta.1: security features, full drawing tablet support, and pointer locking being the big ones. We also landed a large refactoring in this release, which may make things more unstable for a little while but in the long run will flush out more bugs than not.

The recommended wlroots version to use with this sway release is 842368e.

Package maintainers: please do not package this release.

This changelog only includes new features since 1.0-alpha.5. Bugfixes are not included.

New Features

  • Moving & resizing tiled windows with the mouse is now supported*
  • resize grow|shrink <direction> <amt> now supported for tiled containers*
  • move to workspace <n> now works with floating containers
  • window_role critiera now supported
  • You can now specify a fallback color for swaybg

This release is mostly bug fixes.

* Works even better than on i3!

1.0-alpha.5

06 Aug 12:40
0cd418b
Compare
Choose a tag to compare
1.0-alpha.5 Pre-release
Pre-release

Sway 1.0-alpha.5 contains 273 changes from 21 contributors. 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. Please do not submit bug reports for this version of sway. Submit patches instead.

We're starting to see the light at the end of the tunnel here. We've defined the list of features necessary to ship 1.0-beta.1, which will be considered the feature-complete 1.0 release (but not considered bug-free). Sway 1.0 is drawing near!

The recommended wlroots version to use with this sway release is 4ed6ee0.

Package maintainers: please do not package this release.

This changelog only includes new features since 1.0-alpha.4. Bugfixes are not included.

New Features

  • Interactive move and resize of floating views (with the mouse)
  • Scratchpad support
  • Support for running sway on multiple GPUs
  • "swaynag" added to offer similar functionality to i3-nagbar
  • Virtual keyboard protocol added for on-screen keyboards
  • Specify numlock and capslock's value on startup (input * xkb_numlock enabled|disabled)
  • pid->workspace mappings (if you start a program and switch workspaces, we remember where you were and open the window there)
  • Mouse bindings
  • Full support for i3-compatible IPC events
  • focus output [name]
  • assign [critera] to output [name]

1.0-alpha.4

17 Jul 21:32
bec982b
Compare
Choose a tag to compare
1.0-alpha.4 Pre-release
Pre-release

Sway 1.0-alpha.4 contains 304 changes from 20 contributors. 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. Please do not submit bug reports for this version of sway. Submit patches instead.

The recommended wlroots version to use with this sway release is 2a58d44.

Package maintainers: please do not package this release.

This changelog only includes new features since 1.0-alpha.3. Bugfixes are not included.

New Features

  • Real time video capture and improved screenshot capture via dmabuf-export and screencopy
  • Atomic layout updates synchronises layout updates with all clients before rendering the next frame
  • Move and resize commands supported for floating windows
  • Window urgency is now supported
  • swaylock's appearance can now be customized
  • swaylock can now be configured with a file
  • Certain windows are automatically floated now (e.g. dialogs)
  • xdg-positioner is now supported (opening drop-down menus won't go over output boundaries)
  • mode --pango_markup is now supported
  • floating_minimum_size and floating_maximum_size i3 commands supported
  • i3's get_binding_modes and get_config messages now supported over IPC

1.0-alpha.3

09 Jun 18:33
867fb6a
Compare
Choose a tag to compare
1.0-alpha.3 Pre-release
Pre-release

Sway 1.0-alpha.3 contains 291 changes from 13 contributors. 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. Please do not submit bug reports for this version of sway. Submit patches instead.

The recommended wlroots version to use with this sway release is 9a1f0e2.

Package maintainers: please do not package this release.

This changelog only includes new features since 1.0-alpha.2. Bugfixes are not included.

New Features

  • Basic support for floating windows
  • Tabbed and stacked layouts
  • Drag and drop support
  • Marks
  • Gaps (i3-gaps compatible)
  • Per-output images with swaylock
  • Focus wrapping
  • bindsym --locked
  • swap command
  • Command blocks (e.g. bar { ... }) are now generic and work with any command

1.0-alpha.2

13 May 19:00
Compare
Choose a tag to compare
1.0-alpha.2 Pre-release
Pre-release

Sway 1.0-alpha.2 contains 327 changes from 20 contributors. 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. Please do not submit bug reports for this version of sway. Submit patches instead.

The recommended wlroots version to use with this sway release is 383ce3d.

Package maintainers: please do not package this release.

This changelog only includes new features since 1.0-alpha.1. Bugfixes are not included.

This release replaces the asciidoc dependency with scdoc.

New Features

  • Window borders
  • Full damage tracking (performance improvement)
  • Basic touch screen support (only for touch-supported clients)
  • Basic drawing tablet support (simulates a mouse)
  • Fullscreen windows
  • DPMS & auto-lock via swayidle
  • Criteria
  • Mapping input devices to specific outputs or regions of the screen
  • Ignoring input from tablets or touch screens outside a specified region of the device
  • Mouse input simulation (e.g. swaymsg seat default cursor press left)
  • Supports the xdg-shell stable protocol
  • Full support for hardware cursors (performance improvement)
  • Xwayland is now started lazily (when the first X client tries to connect)

0.15.2

12 Apr 23:49
78740b9
Compare
Choose a tag to compare
0.15.2 Pre-release
Pre-release

0.15.2 is a bugfix release containing 59 changes from 17 contributors. This is the latest version of the stable 0.15 branch of sway, and is recommended for general purpose use instead of the latest 1.0 alpha version.

Bugs fixed

  • Fix non-compliant KDE tray icons (@4e554c4c)
  • Fix tray items setting and updating icons (@gnidorah and @4e554c4c)
  • Fix various tray segfaults and memory leaks (@4e554c4c)
  • Fix menu placement (@4e554c4c)
  • Popups no longer interfere with swaylock (@CedricCabessa)
  • Fixed an invalid free in workspace logic (@4e554c4c)
  • Send forward/backward mouse buttons to i3bar event listeners (@pvsr)
  • Accomodate for empty i3bar blocks (@pvsr)
  • Gracefully handle status line errors in swaybar (@4e554c4c)
  • Fix memory leaks and sadness throughout (@dlrobertson)
  • Correctly handle i3bar min_width specification (@jrouleau)
  • Minor scratchpad fixes (@taiyu-len)
  • Man page improvements (various)