Skip to content

Sway 1.1

Compare
Choose a tag to compare
@ddevault ddevault released this 03 Jun 12:45
· 1561 commits to master since this release

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