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 Peeler (1):
fix "directive argument is null" errors
Josef Gajdusek (1):
Update output manager config on all output events
Kenny Levinsen (1):
Use parent get_root_coords in subsurfaces
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
Michael Vetter (1):
Set version in project file
Milkey Mouse (1):
swaybar: add overlay mode (fix #1620)
Noam Preil (1):
Fixes crash in spawn_swaybg (closes #3733)
Peter Grayson (3):
Add -p/--pretty option to swaymsg
Add missing swaymsg completions
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
Rouven Czerwinski (9):
fix double free for mode toggle if bar was invisible
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
cursor: remove unused node assignement
cursor: intitialize sx and sy to zero
config: remove double assignement to result in get_output_config
desktop: output: fix use-after-free in destroy
Ryan Dwyer (10):
Allow concurrent clicks
Don't send button events to surfaces when dragging or resizing
Fix click behaviour
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 (5):
swaybg: add manpage
Update for wlroots#1660
ci: enable all features
Don't submit too much damage
Fix xdg-decoration unconfigured if set before first commit
Stephan Hilb (1):
swaybar: fix loading of malformed icon theme
Tim Sampson (1):
fish: improve completions a little bit
Vincent Vanlaer (1):
Check layout before getting pointer surface coords
Yorick van Pelt (1):
Add 'visible' key to view json response
Yábir Benchakhtir (1):
Spanish translation of the README
Yábir García (2):
Add spanish link to the home README
Fix accents
athrungithub (1):
Don't remove from scratchpad on move to workspace
bschacht (1):
Set the correct version for wlroots dependency
db (1):
add --i3 flag to hide_edge_borders
emersion (26):
Fix quote stripping
Fix close_popups for xdg-shell
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
Fix drag icon map listener not removed
ci: add Alpine CI
ci: add FreeBSD
Don't use SOCK_CLOEXEC
Add wp-primary-selection-unstable-v1
Update for swaywm/wlroots#1517
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
ci: use scdoc-git because 1.9.1 is broken
Set DISPLAY after initializing Xwayland
Fix container_parent_layout for scratchpad windows
Fix crash in cmd_workspace when layer surface has focus
meson: use pkg-config var for scdoc path
Fix size_t temporary underflow in log_loaded_themes
Stop using wlr_output->{lx,ly}
hugbubby (1):
Minor fix of code duplication.
jajo-11 (1):
Add German translation of the README
ljedrz (1):
Add Polish README
minus (3):
Fix crash exiting fullscreened floating container
Fix crash when moving window to scratchpad
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
vilhalmer (4):
Focus ws inactive node with focus_follows_mouse
Skip wildcard seat config in destroy_removed_seats
Skip constraining cursor if no seat config
Fall back to wildcard in sway_cursor_constrain