Releases: swaywm/sway
sway 1.1-rc1
sway 1.1-rc1 includes 119 changes from 40 contributors. This release introduces a few new features, but for the most part just fixes bugs and improves i3 compatibility.
swaybg is now distributed as a standalone program which is compatible with many Wayland compositors. Unlike the other sway clients which have been split into separate projects, however, swaybg is a required dependency of sway. Packagers are encouraged to configure it as such when updating sway for their distribution.
You do not have to change your sway configuration to accomodate for the swaybg changes - the same output
commands will still work.
Changes
- swaybg is now a standalone project
New Features
- swaybar now includes touch support - tapping to activate hotspots and dragging across to cycle through workspaces
- You can now manually inhibit idle notifications (DPMS) when a certain criteria is active via inhibit_idle
- Keybindings can now be unconfigured at runtime via unbind{sym,code,switch}
- workspace {prev,next}_on_output --create will create the next workspace instead of wrapping to the start
- Output subpixel layouts can now be explicitly configured
- i3bar's short_text properties in the JSON protocol are now supported
- swaybar now supports an "overlay" mode, which shows the bar on top of other windows and doesn't process input events
- Switch devices (like lid switches) are now supported and can be bound to actions via bindswitch
- swaymsg now supports a -p/--pretty option for explicitly enabling pretty-printing
Changelog
3ap (1):
config.in: allow launch apps with args via dmenu
Alex Maese (7):
Fix a crash in swaybar when an icon dir is not readable
Create unbindsym and unbindcode commands
Add unbindswitch command
Add unbindsym/unbindcode command for swaybar
Clear pointer focus during move and resize seatops
Don't send pointer motion when rebasing the cursor
Fix a silly mistake
Ashkan Kiani (5):
Fix crash for floating command on scratchpad window
Fix scratchpad logic for floating windows
Fix potential null accesses
Add documentation for rename workspace
Fix the payload type returned by IPC
Benjamin Cheng (2):
Add heuristics to differentiate touchpads
Implement input type configs (#3784)
Brian Ashworth (33):
get_deco_rect: fix floaters on tabbed/stacked ws
criteria: change workspace to support regex
xwayland: handle floating configure request size
Set prev_workspace_name based off of focus
output_cmd_background: validate colors
Fix output config retrieval for new outputs
config/output: revamp identifier/name layering
config/output: handle wildcard in get_output_config
cmd_mode: allow cmd_set to be a subcommand
criteria: fix __focused__ when no focus or unset
fix opening a floating view on the NOOP output
Implement inhibit_idle command
Fix xwayland configure request scratchpad crash
floating: fix size of non-view containers
scratchpad: set initial size
root_scratchpad_hide: fix crash when layer focused
idle_inhibit: fix crash during view destruction
swaybg: one instance for all outputs
Honor output for xdg_toplevel_set_fullscreen
cmd_focus: raise floating for `<criteria> focus`
Fix scratchpad fullscreen behavior and crash
swaynag: fix pointer management
Spawn swaynag as a wayland client
swaymsg: add timeout and type checks
cmd_move: allow for all i3 syntax options
ipc: fix criteria for emitting bar_state_update
swaynag: revamp type configs
swaybar: hide mode visibility improvements
swaybar: add multiseat support
cmd_move: respect workspace layout when inserting
cmd_move: add support for output current
sway.5.scd: clarify workspace config commands
swaymsg: fix quiet error reporting
Connor E (2):
Allow 0 degree transform (normal transform).
Add deprecation warnings for new_float, new_window, and force_focus_wrapping.
Dacheng Gao (6):
add chinese translation
fix cs
fix cs
add link to README-zh-CN
fix typo
fix broken link to README.zh-CN.md
Dmitri Kourennyi (3):
Implement handling of short_text field of i3 input protocol.
Ensure predicted position for short text handling doesn't overflow.
Add margin to short_text handling.
Drew DeVault (5):
swaybar: process hotspots on touch tap
swaybar: cycle workspaces on touch drag
Update formatting of zh-cn link in README.md
Remove obsolete README translations
Bump required wlroots version
Flakebi (1):
Flush stdout in swaymsg when in subscribe mode
Geoff Greer (1):
Add support for manually setting subpixel hinting on outputs.
Ian Fan (1):
commands: allow tiled sticky containers to be moved
Igor Sviatniy (1):
Update README.uk.md
Ilja Kocken (1):
Add link to i3 in first mention of README
Jan Beich (1):
config/output: unbreak on 32-bit architectures
Jan Pokorný (1):
bindings: fix overwrite log argument mismatch
Konstantin Pospelov (7):
Implement bindsym --to-code
config: simplify keysym translation fields
bindsym: change default keymap for --to-code
bindsym: update the man page to include --to-code
bindsym: consider xkb_rule_names for --to-code
bindsym: change xkb_rule_names initialization
config: fix clang warning
Lane Surface (1):
Remove extra inclusion of stdio.h
Martin Michlmayr (1):
sway-input.5: add xkeyboard-config(7) to "see also"
Maxime “pep” Buquet (1):
Validate icon_struct in read_theme_file
Milkey Mouse (1):
swaybar: add overlay mode (fix #1620)
Peter Grayson (1):
Repair swaynag crash reading message from stdin
Philipe Goulet (1):
Fix #3924
Philz69 (1):
Updated the french readme (#3964)
Ranieri Althoff (1):
Send disabled output available modes on IPC get_outputs
Ryan Dwyer (7):
Replace seatup allows_events with button callback
Introduce default seatop
Document the title_format command
Remove debug tree
Clean up focus follows mouse logic
Support focus <direction> for floating containers
Fix null pointer crash when doing tiling drag
Ryan Walklin (1):
Support WLR_INPUT_DEVICE_SWITCH in sway
Scott Anderson (1):
Fix uninitialized read for wlr_surface_send_frame
Simon Ser (4):
swaybg: add manpage
Update for wlroots#1660
ci: enable all features
Don't submit too much damage
Stephan Hilb (1):
swaybar: fix loading of malformed icon theme
Tim Sampson (1):
fish: improve completions a little bit
Yábir Benchakhtir (1):
Spanish translation of the README
Yábir García (2):
Add spanish link to the home README
Fix accents
bschacht (1):
Set the correct version for wlroots dependency
db (1):
add --i3 flag to hide_edge_borders
emersion (6):
ci: add Alpine CI
ci: add FreeBSD
Add wp-primary-selection-unstable-v1
ci: use scdoc-git because 1.9.1 is broken
Fix size_t temporary underflow in log_loaded_themes
Stop using wlr_output->{lx,ly}
jajo-11 (1):
Add German translation of the README
ljedrz (1):
Add Polish README
minus (1):
Fix quoting of commands passed to for_window
mliszcz (1):
Allow for workspace renaming during exec handling
mwenzkowski (3):
view.c: refactor view_autoconfigure()
Don't apply hide_edge_borders to floating windows
hide_edge_borders.c: add missing case for --i3
sway 1.0
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
sway 1.0-rc5
Sway 1.0-rc5 contains 19 changes from 7 contributors since 1.0-rc4, and only
contains bug fixes.
The recommended wlroots version to use with this sway release is 0.4.1.
Package maintainers: please do not package this release.
Brian Ashworth (7):
execute_command: do not strip qoutes for cmd_mode
Add sway-ipc.7.scd to document IPC protocol
sway-ipc.7: clarify window_rect omits decorations
floating_maximum_size: change default behavior
render_floating: skip fullscreen floaters
sway.1.scd: document environment vars set by sway
meson: update scdoc requirement to >= 1.9.2
Ian Fan (1):
tray: fix pixmap colors
Noam Preil (1):
Fixes crash in spawn_swaybg (closes #3733)
Rouven Czerwinski (3):
cursor: remove unused node assignement
cursor: intitialize sx and sy to zero
config: remove double assignement to result in get_output_config
Ryan Dwyer (1):
Allow concurrent clicks
emersion (5):
Set minimum wlroots version
Print Meson features
Add output dpms to manpage
seat: don't send button release when not pressed
meson: check scdoc version
hugbubby (1):
Minor fix of code duplication.
1.0-rc4
Sway 1.0-rc4 contains 20 changes from 9 contributors since 1.0-rc3, and only contains bug fixes.
The recommended wlroots version to use with this sway release is 0.4.
Package maintainers: please do not package this release.
Brian Ashworth (7):
output_evacuate: call workspace_consider_destroy
output_get_active_workspace: check workspaces length
Handle NULL from output_get_active_workspace
move scratchpad: hide visible scratchpad container
input/cursor: allow whole-window bindings on ws
handle_layer_shell_surface: do not use noop output
handle_seat_node_destroy: update seat->workspace
Caleb Bassi (1):
ipc: add missing fields to disabled outputs
Carlo Abelli (1):
fix smart_borders description in manual
Connor E (1):
Make load_include_configs void. Fix some cases where WD would not be restored.
Eric Drechsel (1):
layout cmd: always operate on parent container, like i3Fixes #3724
Rouven Czerwinski (4):
ipc-client: free payload after sending it over the socket
run_as_ipc_client: free response after running the IPC command
commands/move: reintroduce wrongly removed NULL check
view: set xdg_decoration->view to NULL, check decoration destroy
Yorick van Pelt (1):
Add 'visible' key to view json response
emersion (3):
Fix drag icon map listener not removed
Don't use SOCK_CLOEXEC
Update for swaywm/wlroots#1517
minus (1):
Fix crash exiting fullscreened floating container
1.0-rc3
sway 1.0-rc3
Sway 1.0-rc3 contains 24 changes from 6 contributors since 1.0-rc2, 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 (11):
cursor: relative-pointer-v1 time is usec
subsurface_get_root_coords: break on NULL
seatop_move_tiling: use tab/stack parent not self
seat: allow tree focus changes while layer focused
seatop_move_tiling: do not move to descendant
apply_output_config: dpms on before modeset
Fix reload freeze when not modsetting current mode
sway-input.5: document wildcard and identifier troubleshooting
workspace_next_name: fallback to next available number
seat_cmd_cursor: fix typo in expected syntax
Use container under cursor for mouse bindings
Drew DeVault (1):
Remove refs to unimplemented debuglog command
Ian Fan (4):
swaybar: prevent signal handler from firing during termination
tray: use correct parameter to set bus slot to floating
tray: when a service is lost, remove all matching items
tray: fix memory leaks
Vincent Vanlaer (1):
Check layout before getting pointer surface coords
athrungithub (1):
Don't remove from scratchpad on move to workspace
emersion (6):
Rebase cursor when a layer surface maps
Fix --version when building from tarball
Disable unneeded wlroots subproject features
Remove unused header include/sway/tree/output.h
Fix Meson subproject boolean default options
Disconnect swaybg instead of killing it
1.0-rc2
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
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
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
andheight
toresize 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
andtitlebar_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 inget_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
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
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 containerswindow_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!