Releases: swaywm/sway
sway 1.2
sway 1.2 includes 128 changes from 37 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.
Abdelhakim Qbaich (1):
Add the missing constant for the switch input type
Aidan Harris (1):
Fix segfault with "xwayland false" (#4228)
Alex Maese (1):
Unhide cursor on cursor activity after touch
Alyssa Ross (2):
bar: fix segfault with missing or invalid bar id
commands/bar: improve error for invalid subcommand
Antonin Décimo (7):
Allocator sizeof operand mismatch
Remove unused variable
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Ashkan Kiani (1):
Avoid adding duplicate criteria for no_focus and command
Brian Ashworth (52):
Destroy swaybg client on reload
config/output: fix typo in merge_id_on_name
Spawn swaybar as a wayland client
input/keyboard: attempt default keymap on failure
commands/bar: fix mode and hidden_state at runtime
input/switch: fix indentation of file
common/ipc-client: remove ipc recv timeout log
bindings: allow unlocked and locked bindings
Add swaybar protocol documentation
cmd_hide_edge_borders: add missing arg count check
criteria: reset on semicolon separation
commands/input: perform basic keymap validation
config/input: validate xkb keymap before storing
bindings: defer while initiailizing
config/xwayland: retain xwayland status on reload
config: fix find_handler logic
cmd_seat: split action and config handlers
cmd_mode: allow runtime creation and modification
ws-output-priority: fix logic issue in find_output
swaybar-protocol.7: fix block border descriptions
cmd_bindswitch: add option to execute on reload
input/libinput: only reset supported options
config/output: correctly set width/height in apply
cmd_layout: toggle split for tabbed/stack default
cmd_split: fix toggle split for non-split layouts
cmd_output: support current output alias
input_cmd_xkb_switch_layout: support input types
ipc: add an input event
ipc: add input::libinput_config event
arrange: remove gaps for workspace location deltas
input/libinput: fix typo in set_middle_emulation
libinput: fix set_send_events
input/keyboard: don't reset layout for same keymap
bindsym/code: add group support
input/libinput: typo fixes (get -> get_default)
cmd_swap: add floating support
input/cursor: do not hide when buttons are pressed
swaymsg: return 2 for sway errors
cmd_mode: make modes case sensitive
config/output: rebase cursors after config applied
sway.5: explain how to enable pango markup in font
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
input/keyboard: send released only if pressed sent
sway.5: remove mention of floating_scroll
cmd_move: fix move to scratchpad hidden container
cmd_mode: don't reset to default after subcommand
Daniel Eklöf (3):
add seat sub command 'xcursor_theme'
swaybar/nag: use xcursor theme defined by XCURSOR_THEME/SIZE
check for empty string before calling strtoul() and check errno
Dark (1):
Update titlebar borders to match i3's current behavior.
Drew DeVault (9):
Add Firefox note to ISSUE_TEMPALTE.md
Create FUNDING.yml
Bump meson version to 1.1
Remove rootston from build manifests
layer-shell: add support for popups
Add _incr_version to contrib/
chmod +x contrib/_incr_version
Further refinements to _incr_version script
Update version to 1.2
Ed Younis (2):
Implement input_cmd_xkb_file (#3999)
input_cmd_xkb_*: cleanup includes
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Jeff Peeler (1):
cmd_opacity: add relative opacity changes
Josef Gajdusek (4):
Implement wlr-output-management-v1
Update output manager config on all output events
Provide current DPMS state in GET_OUTPUTS
Update output manager on layout change
Kenny Levinsen (1):
Use parent get_root_coords in subsurfaces
Laurent Bonnans (1):
ipc: collapse multi-container command results
Manuel Stoeckl (2):
Replace meson generator with custom_target
Use -fmacro-prefix-map to strip build path
Matt Coffin (1):
Fix segfaults caused by faulty command parsing
Michael Aquilina (1):
Fix formatting for title_format in man 5 sway Use explicit linebreaks to make scdoc use a separate line for each entry listed
Moelf (1):
Implement output toggle
Nick Paladino (1):
Make comment casing consistient
Nomeji (1):
Add infos to help using for_window to man 5
Paul Ouellette (1):
Fix typo in sway(5) manpage
Pedro Côrte-Real (7):
Layout correctly with several new windows
Layout tiled using a width/height fraction
Rework gaps code to be simpler and correct
Sanity check gaps between tiled containers
Avoid negative outer gaps
Sanity check gaps on the outside of the workspace
Fix resize sibling amount calculations
Robert Sacks (1):
Add missing underscore in bindswitch documentation
Rouven Czerwinski (3):
desktop: output: fix use-after-free in destroy
Fix sway crashes for scratchpad layouts
Revert "Add support for wlr_output's atomic API"
Sauyon Lee (1):
Make fullscreen check for fullscreen parents
Sebastian Krzyszkowiak (1):
layer_shell: Guard against negative exclusive zone
Sebastian Parborg (1):
Make mouse drag in tiled mode swap containers if no edge is selected
Sergei Dolgov (4):
Add calibration_matrix config option
Use isnan
calibration_matrix: add the current matrix to the IPC description for libinput devices
calibration_matrix: expect 6 individual values
Simon Ser (8):
Fix xdg-decoration unconfigured if set before first commit
Remove orbital gamma-control protocol
ipc: add xkb_layout_names and xkb_active_layout_index
Add a new xkb_switch_layout command
Add missing docs for xkb_switch_layout
Add docs for new IPC keyboard properties
Remove all wayland-server.h includes
Add support for wlr_output's atomic API
asdfjkluiop (1):
A layer-shell will only be focused if it is non-null
jasperro (1):
Added Dutch translation of README
lbonn (1):
Allow moving a container hidden in scratchpad
murray (1):
use surface coordinates for damaging buffers
random human (1):
tree: set correct border value before creating floater
rpigott (1):
Add missing description for focus_on_window_activation command in docs.
1.2-rc2
sway 1.2 includes 126 changes from 32 contributors. This release improves compatibility with i3 4.17, adds a small number of new features, and fixes many bugs.
Additionally, this release adds support for layer-shell popups, making the MATE panel usable on Sway, among other useful tools. This release also recommends the use of wlroots 0.7.0 (note: not released until the final sway release), and adds support for tools like wdisplays, a GTK+ GUI for configuring displays on supported compositors.
Antonin Décimo (5):
ipc-client: remove useless free for failed malloc
input: check pointer against nullptr
view_update_size: fix surface_width/height mismatch
Fix memory leaks
Remove redundant checks
Brian Ashworth (7):
handle_seat_node_destroy: do not focus own node
workspace: do not destroy if any seat is focusing
swaymsg.1: add tip about two hyphens for commands
container_replace: copy {width,height}_fraction
workspace_split: focus middle if workspace focused
sway{,-bar}.5: add link to pango font description
input/seatop_down: add axis handler
Drew DeVault (1):
layer-shell: add support for popups
Ilia Bozhinov (1):
properly check pixman_region32_contains_rectangle return
Sebastian Krzyszkowiak (1):
layer_shell: Guard against negative exclusive zone
1.2-rc1
sway 1.2 includes 99 changes from 30 contributors. This release improves
compatibility with i3 4.17, adds a small number of new features, and
fixes many bugs.
Abdelhakim Qbaich (1):
Add the missing constant for the switch input type
Aidan Harris (1):
Fix segfault with "xwayland false" (#4228)
Alex Maese (1):
Unhide cursor on cursor activity after touch
Alyssa Ross (2):
bar: fix segfault with missing or invalid bar id
commands/bar: improve error for invalid subcommand
Antonin Décimo (2):
Allocator sizeof operand mismatch
Remove unused variable
Ashkan Kiani (1):
Avoid adding duplicate criteria for no_focus and command
Brian Ashworth (41):
Destroy swaybg client on reload
config/output: fix typo in merge_id_on_name
Spawn swaybar as a wayland client
input/keyboard: attempt default keymap on failure
commands/bar: fix mode and hidden_state at runtime
input/switch: fix indentation of file
common/ipc-client: remove ipc recv timeout log
bindings: allow unlocked and locked bindings
Add swaybar protocol documentation
cmd_hide_edge_borders: add missing arg count check
criteria: reset on semicolon separation
commands/input: perform basic keymap validation
config/input: validate xkb keymap before storing
bindings: defer while initiailizing
config/xwayland: retain xwayland status on reload
config: fix find_handler logic
cmd_seat: split action and config handlers
cmd_mode: allow runtime creation and modification
ws-output-priority: fix logic issue in find_output
swaybar-protocol.7: fix block border descriptions
cmd_bindswitch: add option to execute on reload
input/libinput: only reset supported options
config/output: correctly set width/height in apply
cmd_layout: toggle split for tabbed/stack default
cmd_split: fix toggle split for non-split layouts
cmd_output: support current output alias
input_cmd_xkb_switch_layout: support input types
ipc: add an input event
ipc: add input::libinput_config event
arrange: remove gaps for workspace location deltas
input/libinput: fix typo in set_middle_emulation
libinput: fix set_send_events
input/keyboard: don't reset layout for same keymap
bindsym/code: add group support
input/libinput: typo fixes (get -> get_default)
cmd_swap: add floating support
input/cursor: do not hide when buttons are pressed
swaymsg: return 2 for sway errors
cmd_mode: make modes case sensitive
config/output: rebase cursors after config applied
sway.5: explain how to enable pango markup in font
Daniel Eklöf (3):
add seat sub command 'xcursor_theme'
swaybar/nag: use xcursor theme defined by XCURSOR_THEME/SIZE
check for empty string before calling strtoul() and check errno
Drew DeVault (4):
Add Firefox note to ISSUE_TEMPALTE.md
Create FUNDING.yml
Bump meson version to 1.1
Remove rootston from build manifests
Ed Younis (2):
Implement input_cmd_xkb_file (#3999)
input_cmd_xkb_*: cleanup includes
Jeff Peeler (1):
cmd_opacity: add relative opacity changes
Josef Gajdusek (4):
Implement wlr-output-management-v1
Update output manager config on all output events
Provide current DPMS state in GET_OUTPUTS
Update output manager on layout change
Kenny Levinsen (1):
Use parent get_root_coords in subsurfaces
Manuel Stoeckl (2):
Replace meson generator with custom_target
Use -fmacro-prefix-map to strip build path
Matt Coffin (1):
Fix segfaults caused by faulty command parsing
Moelf (1):
Implement output toggle
Nick Paladino (1):
Make comment casing consistient
Nomeji (1):
Add infos to help using for_window to man 5
Paul Ouellette (1):
Fix typo in sway(5) manpage
Pedro Côrte-Real (7):
Layout correctly with several new windows
Layout tiled using a width/height fraction
Rework gaps code to be simpler and correct
Sanity check gaps between tiled containers
Avoid negative outer gaps
Sanity check gaps on the outside of the workspace
Fix resize sibling amount calculations
Robert Sacks (1):
Add missing underscore in bindswitch documentation
Rouven Czerwinski (3):
desktop: output: fix use-after-free in destroy
Fix sway crashes for scratchpad layouts
Revert "Add support for wlr_output's atomic API"
Sauyon Lee (1):
Make fullscreen check for fullscreen parents
Sebastian Parborg (1):
Make mouse drag in tiled mode swap containers if no edge is selected
Sergei Dolgov (4):
Add calibration_matrix config option
Use isnan
calibration_matrix: add the current matrix to the IPC description for libinput devices
calibration_matrix: expect 6 individual values
Simon Ser (8):
Fix xdg-decoration unconfigured if set before first commit
Remove orbital gamma-control protocol
ipc: add xkb_layout_names and xkb_active_layout_index
Add a new xkb_switch_layout command
Add missing docs for xkb_switch_layout
Add docs for new IPC keyboard properties
Remove all wayland-server.h includes
Add support for wlr_output's atomic API
jasperro (1):
Added Dutch translation of README
murray (1):
use surface coordinates for damaging buffers
random human (1):
tree: set correct border value before creating floater
rpigott (1):
Add missing description for focus_on_window_activation command in docs.
sway 1.1.1
This release removes two commits which were mistakenly included in sway 1.1, but are incompatible with wlroots 0.6.0.
Sway 1.1
sway 1.1 includes 255 changes from 58 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
Alyssa Ross (1):
bar: fix segfault with missing or invalid bar id
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
Ben Challenor (1):
Make raw keysyms take precedence over translated
Benjamin Cheng (2):
Add heuristics to differentiate touchpads
Implement input type configs (#3784)
Brian Ashworth (94):
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
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
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
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
ipc: change {,deco_}rect to match i3
ipc: fix rect for stacked children
ipc: fix fullscreen deco_rect
ipc: describe libinput device configuration
output_damage_whole_container: damage subsurfaces
damage: remove output_damage_view
arrange: use int not size_t for title offsets
fullscreen: init floating on disable without size
detect_proprietary: use strncmp
sway_view_child: add listener for view unmap
get_deco_rect: fix floaters on tabbed/stacked ws
Handle seat_get_focused_workspace returning NULL
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
Destroy swaybg client on reload
config/output: fix typo in merge_id_on_name
input/keyboard: attempt default keymap on failure
commands/bar: fix mode and hidden_state at runtime
input/switch: fix indentation of file
common/ipc-client: remove ipc recv timeout log
Caleb Bassi (1):
ipc: add missing fields to disabled outputs
Carlo Abelli (1):
fix smart_borders description in manual
Connor E (7):
If validating the config, do it as early as possible.
Initialize server so input manager is available.
Return false if config could not be loaded.
Restore CWD if returning early.
Make load_include_configs void. Fix some cases where WD would not be restored.
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
Daniel Eklöf (1):
ipc_has_event_listeners: fix inverted check of subscribed_events
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 (11):
Revert "Restore CWD if returning early."
Revert "Return false if config could not be loaded."
Remove refs to unimplemented debuglog command
Add workspace {prev,next}_on_output --create
swaybar: process hotspots on touch tap
swaybar: cycle workspaces on touch drag
Update language in sway.desktop & sway(1)
Update formatting of zh-cn link in README.md
Remove obsolete README translations
swaybg: split into standalone project
Bump required wlroots version
Eric Drechsel (1):
layout cmd: always operate on parent container, like i3Fixes #3724
Flakebi (1):
Flush stdout in swaymsg when in subscribe mode
Geoff Greer (1):
Add support for manually setting subpixel hinting on outputs.
Ian Fan (9):
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
tray: fix pixmap colors
stringop.c: remove unused functions
stringop.c: clean up headers
stringop.c: refactor a few functions
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
Jeff Peele...
sway 1.1-rc3
This is the third release candidate for sway 1.1. Only changes from sway 1.1-rc2 are listed here. Alyssa Ross (1): bar: fix segfault with missing or invalid bar id Brian Ashworth (1): input/keyboard: attempt default keymap on failure
sway 1.1-rc2
This is the second release candidate for sway 1.1. Only changes from sway 1.1-rc1 are listed here. Brian Ashworth (2): Destroy swaybg client on reload config/output: fix typo in merge_id_on_name Simon Ser (1): Fix xdg-decoration unconfigured if set before first commit
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.