Skip to content
Tags give the ability to mark specific points in history as being important
  • 1.5.1
    sway 1.5.1
    
    This is a bugfix release which adds support for wlroots 0.12.0.
    
    Simon Ser (2):
          build: bump wlroots dependency to 0.12.0
          build: bump version to 1.5.1
    
  • 1.5
    108b8e97 · Bump version to 1.5 ·
    sway 1.5
    
    Campbell Vertesi (1):
          Add note on quoting to swaymsg manpage
    
    Geoffrey Casper (1):
          Reload command now matches i3's implementation
    
    Jan Beich (1):
          protocols: sync wlr-layer-shell-unstable-v1 with wlroots
    
    Jonas Große Sundrup (1):
          rephrase swayidle-timout example to improve readability
    
    Ronan Pigott (1):
          xdg_shell: schedule configure on maximize requests
    
    Simon Ser (8):
          seat: fix segfault in sway_input_method_relay_set_focus
          Don't set xwayland cursor when wlr_xwayland failed
          Unset DISPLAY when wlr_xwayland fails
          tree/view: fix segfault in view_update_title
          config/output: don't change output state before commit
          Assert output is found before removing from list
          Bump wlroots dependency to 0.11.0
          Bump version to 1.5
    
    Tudor Brindus (3):
          commands/move: unwrap workspace container on move to new workspace
          commands/move: maintain workspace_layout when moving
          input/cursor: don't send wl_pointer.motion event on pointer unlock warp
    
    Vinko Kašljević (1):
          Add check for empty GEOM variable
    
    Wai Hon Law (1):
          Make the default workspace commands compatible with i3
    
    wb9688 (1):
          Replace unprintable characters in input device id
    
  • v1.5-rc2
    sway v1.5-rc2
    
    Isaac Freund (1):
          output: simplify loop over layer surfaces
    
    Johan Bjäreholt (1):
          tree/view: Make foreign-toplevel app_id fallback to class
    
    Kenny Levinsen (2):
          transaction: Mark client resize immediately ready
          seat: Refocus seat when wlr_drag is destroyed
    
    Tudor Brindus (2):
          input/pointer: correctly handle bindings for synthetic events
          tree/view: fix smart borders with tabbed/stacked ancestor
  • 1.5-rc1
    ba0232e6 · Update version to 1.5-rc1 ·
    sway 1.5-rc1
    
    Sway 1.5-rc1 contains 258 changes from 76 contributors.
    
    Adam Kürthy (2):
          Take window borders into account when resizing floating windows
          Really fix floating window border resize problems
    
    Aleksei Bavshin (1):
          Adjust focus order to match rendering order of layer shell popups.
    
    Alex Maese (2):
          Add ability to remove the floating modifier
          Add documentation for floating_modifier
    
    Anders (1):
          criteria: match containers without view
    
    Andri Yngvason (6):
          input: Assign virtual input devices to their selected seats
          swaynag: Add multi-seat support
          swaybar: Fix input device removal
          input: Map virtual-pointer to the requested output
          input: Mark virtual devices as such
          input: keyboard: Never group virtual keyboards.
    
    Bill Doyle (1):
          Only destroy swaybar surface via ipc when needed
    
    Bor Grošelj Simić (1):
          input: implement cycling through keyboard layout list
    
    Brian Ashworth (20):
          render: do not render indicator on floating views
          input/cursor: handle image surface destroy
          input/cursor: handle setting a NULL image surface
          view: remove workspace pid mapping for assigns
          container: add inactive fullscreen to focus stack
          desktop/output: fix mem leak in handle_new_output
          output: apply oc to outputs using wl_for_each_safe
          container_at_{tabbed,stacked}: check x-axis bounds
          config: fix validation exit code and log level
          cmd_swap: fix test_mark condition
          output: fix updating output manager config
          tree/view: do not attempt enter on hidden child
          input_cmd_events: add support for input types
          Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"
          sway.5: correct description of workspace [number]
          ISSUE_TEMPLATE: note debug logs should be from TTY
          input: reset keyboard groups keyboard on reset all
          input: fix reloading crash due to keyboard group configuring
          seat_cmd_cursor: emit frame events
          input/keyboard: wlr_keyboard_group enter and leave
    
    Cassandra McCarthy (1):
          integer scaling, not integral
    
    Cyril Levis (2):
          Add the possibility to capture only one screen if several screens are use.
          Change wording
    
    Damien Tardy-Panis (1):
          Add views idle inhibition status in get_tree output
    
    David Arnold (2):
          grimshot: Unary operator expected
          grimshot: fix POSIX compliance
    
    David96 (4):
          Render layer shell popups over the top layer
          Don't transfer focus to NULL node on touch
          Don't unhide cursor on touch events
          Implement pointer simulation if client hasn't bound to touch
    
    Dennis Schridde (1):
          Document input selector precedence
    
    Di Ma (4):
          Fix a use-after-free error in switch binding
          Fix a use-after-free error in switch binding
          Fix a use-after-free error in switch binding
          Fix a use-after-free error in switch binding
    
    Dominique Martinet (3):
          swaynag: fix segfault on exit when arguments are not correct
          swaynag: exit on wl_display_roundtrip error
          build: make completions respect install prefixes
    
    Drew DeVault (3):
          Update wlroots version
          Update version to 1.4
          Implement wlr-foreign-toplevel-management-v1
    
    Ejez (1):
          Correct typo in sway-output.5.scd
    
    Eli Schwartz (3):
          meson: use join_paths to build paths, instead of string concat
          completion: use pkg-config to get install location for bash/fish
          fish-completion: use the correct fallback directory
    
    Eric Engestrom (1):
          bash completion: swaymsg accepts --version, not --verbose
    
    Graham Christensen (1):
          swaynag: allow specifying more buttons which execute and dismiss
    
    Hristo Venev (2):
          Do not truncate pointer coordinates to int.
          swaybar: fix i3bar relative coordinates when scaling is used
    
    Hugo Osvaldo Barrera (7):
          grimshot: Allow configuring default directory
          grimshot: Avoid screenshots overwriting each other
          grimshot: Show usage when on invalid command
          grimshot: Allow manually picking a window
          grimshot: Add a separate flag for notifications
          grimshot: Add a man page
          grimshot: Skip creating a temp file when copying
    
    Ian Fan (6):
          ipc: add missing required properties
          swaybar: fix memory leaks
          tray: better errors when parsing index.theme
          tray: allow themes to inherit from multiple themes
          tray: tidy code
          tray: track SNI callbacks
    
    Ian Huang (1):
          interpret "subpixel none" as CAIRO_ANTIALIAS_GRAY
    
    Ihor Kalnytskyi (1):
          scdoc: unbindcode --input-device, not input-device
    
    JR Boyens (1):
          Use transparency arg in the window focus event
    
    Jamelly Ferreira (2):
          Adding a version of README.md in Portuguese
          Adding the link to the Portuguese on the English version of README.md
    
    James Mills (1):
          Fix typo in swaybar-protocol.7.scd
    
    Jan Beich (1):
          common/log: bump POSIX version used after e81d9fde667e
    
    Jason (2):
          Docs: explain why menu command should be passed to sway
          Update fish completions
    
    Jason Nader (12):
          Amend typo
          commands/move: Fix crash when required args not provided
          Check argc>0 before strcasecmp. Should shortcircuit
          Docs: Add marks field to get_tree response
          i3compat: add `window_type` to IPC response
          i3compat: add `window_type` to IPC response
          ipc-server: improve error message
          Limit workspace numbers within 0..INT32_MAX
          commands/bind.c: remove unnecessary check
          sway/input/cursor.c: move NULL check to where it should be
          sway/input/cursor.c: fix undefined behaviour when event is NULL
          i3-compat: add GET_BINDING_STATE IPC command
    
    Josh Shone (1):
          Fix hit test for floaters that cross outputs
    
    Kalyan Sriram (1):
          Save transform during transaction
    
    Kenny Levinsen (7):
          Simplify repaint scheduling documentation
          view: Save all buffers associated with view
          view: update_size should only update pending size
          transaction: Account for full size when centering content
          transaction: Improve transaction commentary
          container: Remove useless surface dimensions
          shells: Resize on commit if geometry x/y changes
    
    Leo (2):
          Fix redundant call to seat_send_focus()
          im: Fix crash when im destorying and no focused surface exists
    
    Leon Plickat (1):
          change apply_exclusive() to closer match layer shell protocol
    
    Linus Heckemann (1):
          add --no-repeat option for bindings
    
    Lucas M. Dutra (1):
          fix typo
    
    Luke Drummond (2):
          swaynag: sway_abort on failure to properly register
          swaybar: ensure correct init order for status_line
    
    Martin Dørum (1):
          swaybar: Fix scrolling with precise trackpads
    
    Martin Michlmayr (2):
          sway.5: make formatting more consistent
          Fix typos in comments
    
    Michael Weiser (5):
          config: Fix typo in reload bindsym flag bitmask
          input: Add support for keyboard shortcuts inhibit
          commands: Add shortcuts_inhibitor command
          commands: Adjust style in cursors command
          commands: Add per-view shortcuts_inhibitor command
    
    Milkey Mouse (1):
          swaybar: add NULL check when listing workspaces
    
    Nathan Rossi (1):
          ipc: Handle unsupported binding event types
    
    Nick Diego Yamane (1):
          input/seatop_default: properly notify pointer leave
    
    Olivier Fourdan (1):
          input: Avoid creating the PAD device multiple times
    
    Paul Ouellette (1):
          Fix some mistakes in grimshot docs
    
    Pedro Côrte-Real (3):
          Avoid numerical instability in resize
          Make sure we don't calculate fractional pixel gaps
          Make all the container dimensions integers
    
    Ronan Pigott (8):
          commands/split: Fix error message typos
          ipc-json: Remove unnecessary dereference
          sway-input.5: Document repeat_delay and repeat_rate only once
          sway.5: Document missing bindsym flags for unbindsym
          Fix crash when showing scratchpad hidden split containers
          cmd_move: Fix crash when moving to scratchpad hidden split containers
          cmd_split: Refuse to split scratchpad hidden split containers
          view: fix surface_new_subsurface use-after-free
    
    Ross Schulman (1):
          Fix small typo in sway-input(5)
    
    Rouven Czerwinski (3):
          xwayland: handle size_hints == NULL
          output: remove damage listeners in damage destroy
          input/seatop_default: release on empty workspace
    
    Ryan Dwyer (1):
          Introduce pid criteria token
    
    Simon Ser (44):
          Fix unreliable scaling filter
          Revert "Make all the container dimensions integers"
          Fix seat_set_focus_layer crash when disabling output
          Fix output scale auto-detection
          Call apply_output_config instead of output_enable
          Stop calling apply_output_config from output_enable
          Apply the output scale filter after the output commit
          Fix output transform anticlockwise
          Fix output transform rotation direction
          Specify that output transform applies clockwise rotations
          Fix get_int_prop(WINDOW_TYPE) crash
          Don't apply exclusive zones of unmapped layer-shell surfaces
          Add support for wlr-output-power-management-unstable-v1
          Make handle_destroy and output_repaint_timer_handler static
          Only schedule a frame if client has requested a frame callback
          Drop sway_output.surface_needs_frame
          Use wlr_client_buffer
          Add an adaptive_sync output command
          Add adaptive_sync_status to output IPC reply
          common/log: improve time prefix
          readme: git is an optional dependency
          Fix output mode usage
          Change focus_on_window_activation default to urgent
          Update for new wlr_buffer API
          Stop checking wlr_output_attach_buffer return value
          Introduce test_output_config
          Add test-only support to wlr-output-management-unstable-v1
          ci: don't build scdoc
          ci: remove epoll-shim hardcoded pkg-config file
          Fix initial modeset
          Don't add disabled outputs back to output layout
          Use bitshifts for bitfields
          Implement create_output command for headless backend
          Restrict relative output transforms to runtime changes
          man: add note about sway-input and sway-output pages
          Redirect questions to wiki/IRC
          build: improve feature summary
          Don't assert the cursor theme loads
          Fix invisible cursor on startup
          Add a secondary headless backend
          Log Sway version on startup
          Remove view child surface_{map,unmap} listeners on destroy
          Add support for viewporter
          Update version to 1.5-rc1
    
    Some Chinese Guy (3):
          Added focus following for touch_down
          switched to setting focus with seat_set_focus
          swapped hiding the cursor and sending a touch event as a more logical sequence
    
    Tadeo Kondrak (1):
          Null check sway_layer_surface when checking damage
    
    Teddy Reed (1):
          Fix ordering of setgid and setuid
    
    Thayne McCombs (1):
          Add missing items to documentation for GET_TREE response in ipc.
    
    TheAvidDev (1):
          Add wayland_client dependency to common
    
    Thomas Hebb (3):
          config: fix unfocused text color
          Add each view's shell to JSON description
          Use new wlroots API for clearing keyboard/pointer focus during grabs
    
    Till Hofmann (1):
          Avoid calling strcmp on nullptr
    
    Tobi Fuhrimann (1):
          Reference wev instead of xev
    
    Torstein Husebø (1):
          treewide: fix typos
    
    Tudor Brindus (42):
          input/cursor: correctly send tablet_v2 up event when over non-v2 surface
          input/cursor: fix jerky resizing of non-tablet_v2 surfaces
          input/cursor: fix hide cursor timeouts on tablets and touchscreens
          config/output: reconfigure input devices on new output
          input/cursor: correctly transfer focus when using tablet pen
          config/output: reconfigure input devices after full output init
          input/tablet: query tablet focused surface for cursor image check
          Add debug symbol stack trace note to ISSUE_TEMPLATE.md
          input/cursor: release simulated tool tip button when over v2 surface
          input/cursor: make cursor rebasing cursor type-agnostic
          input/cursor: disambiguate cursor functions from pointer functions
          input: refactor tablet motion into seatop handler
          input: rename pointer handlers to be unambiguous
          input/cursor: remove erroneous cast for tablet tool button
          input/keyboard: use wlr_keyboard_keymaps_match from wlroots
          input/tablet: simplify parameter plumbing for tablet references
          input/cursor: don't apply pointer constraint to emulated tablet input
          input/pointer: only warp cursor when the confine region has changed
          common/log: use bright black rather than black for SWAY_DEBUG
          input/tablet: add seatop_down entry for tablet input
          input/cursor: fix heap-buffer overflow in constraint set_region
          input/cursor: keep reference to cursor in constraint
          Log Xwayland startup failures
          input/pointer: send pointer enter event on confine warp
          ipc: invert output transformation when necessary
          input/cursor: rename `simulated_tool_tip_down` to be more accurate
          tree/container: refactor `tiling_container_at` to check bounds
          xwayland: pass focus to previous unmanaged surface on unmap
          input/cursor: refactor tablet tool tip events into seatops
          common/util: fix `get_current_time_msec` returning microseconds
          tree/container: introduce `container_toplevel_ancestor` helper
          input/tablet: allow moving floating tablet v2 surfaces by pen input
          input/tablet: allow moving tiling tablet v2 surfaces by pen input
          input: tweak resize behavior to not change tab focus on border click
          tree/view: fix smart gaps when ancestor container is tabbed or stacked
          input/tablet: focus appropriate node on tip down
          input/pointer: don't trigger pointer bindings for emulated input
          input/cursor: send idle events based off device type, not input type
          input/pointer: don't trigger pointer bindings for emulated input
          input: disable events for map_to_output devices when output not present
          input/seat: don't notify keyboard grabs with NULL surface on shutdown
          input_cmd_click_method: fix typo in error text
    
    Yorick van Pelt (1):
          Fix crash: use wlr_output->name instead of possibly missing oc->name
    
    jhalmen (1):
          fix typos in sway-input.5.scd
    
    lbonn (1):
          ipc: show marks of containers without view in tree
    
    r-c-f (1):
          check for workspace command name arg
    
    rinpatch (1):
          sway.5: fix missing background scaling mode in a block example
    
    roshal (1):
          add dots to man
    
    salkin-mada (1):
          add danish README
    
    skip-yell (1):
          Add Korean README.md
    
    taminaru (1):
          Add Romanian translation
    
    thermitegod (1):
          Fix compiling with -fno-common
    
    xdavidwu (5):
          Port input method and text input from rootston
          input-method: remove surface listener before set
          input-method: avoid and log unneeded set_focus
          im: make text-input listeners per text-input
          im: remove listener on pending surface destoryed
    
    Érico Rolim (2):
          security.d: remove directory
          Remove code related to the security features
    
    
  • 1.4
    f681d529 · Update version to 1.4 ·
    sway 1.4
    
    A. M. Joseph (1):
          xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.
    
    Aleksis (1):
          remove unused layer shell surface variable
    
    Andri Yngvason (2):
          input: Assign virtual input devices to their selected seats
          swaybar: Fix input device removal
    
    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
    
    Arkadiusz Hiler (1):
          Fix syntax in examples in sway-output(5)
    
    Ben Brown (2):
          Fix typo for the force/immediate option in xwayland_mode enum
          Add icon_theme_path to find_icon() search if set
    
    Benjamin Cheng (2):
          input/cursor: pass gesture events to clients
          input/cursor: remove gesture listeners in destroy
    
    Brian Ashworth (42):
          workspace: prefer identifiers for output priority
          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
          cmd_xwayland: add force for immediate launch
          sway.5: remove mention of floating_scroll
          cmd_move: fix move to scratchpad hidden container
          cmd_mode: don't reset to default after subcommand
          seatop_default: only focus container on press
          swaybar: complete barconfig_update event handling
          sway.5: clarify that a marks are unqiue
          view: always populate pid
          input/keyboard: cleanup xkb_file error handing
          input_cmd_xkb_file: allow shell path expansion
          Add support for wlr_keyboard_group
          input/keyboard: check keyboard group before remove
          config: improvements to the reload validation
          input/keyboard: reset seat keyboard on destroy
          config: apply input type configs on reload
          layer-shell: unfocus output-less layer on unmap
          input/keyboard: remove group listeners on destroy
          input/keyboard: defer wlr_keyboard_group destroy
          config/input: set type for new identifier configs
          root_scratchpad_hide: disable fullscreen descendants
          input/seatop_default: fix focusing floating titles
          seat_cmd_keyboard_grouping: change keymap to smart
          layer-shell: refocus if keyboard interactive lost
          parse_color: return success + drop fallback color
          cmd_client_*: refactor duplicated code
          bar_cmd_colors: remove add_color
          cmd_client_*: support optional args for i3 compat
          input/cursor: handle image surface destroy
          input/cursor: handle setting a NULL image surface
          view: remove workspace pid mapping for assigns
          container: add inactive fullscreen to focus stack
          desktop/output: fix mem leak in handle_new_output
          output: apply oc to outputs using wl_for_each_safe
    
    Cassandra McCarthy (1):
          integer scaling, not integral
    
    Danilo Spinella (1):
          Fix refresh rate scale of output
    
    Dark (1):
          Update titlebar borders to match i3's current behavior.
    
    Drew DeVault (12):
          layer-shell: add support for popups
          Add _incr_version to contrib/
          chmod +x contrib/_incr_version
          config.in: set default term to alacritty
          Update .github/FUNDING.yml
          Update version to 1.2
          Updates per wlroots layer shell changes
          Add seat <seat> idle_{inhibit,wake} <sources...>
          License wallpapers as CC-0
          _incr_version: prompt for target wlroots release
          _incr_version: always overwrite old version number
          Update version to 1.3-rc1
    
    Eli Schwartz (3):
          meson: use join_paths to build paths, instead of string concat
          completion: use pkg-config to get install location for bash/fish
          fish-completion: use the correct fallback directory
    
    Ilia Bozhinov (1):
          properly check pixman_region32_contains_rectangle return
    
    Ivan Molodetskikh (9):
          Add Russian translation of the README
          render: set surface as sampled for presentation
          output: add max_render_time
          Add sway_surface
          view: add max_render_time
          Add max_render_time to output JSON
          Add max_render_time to view JSON
          output: check wlr_output in repaint handler
          Add note about backends to output max_render_time
    
    JR Boyens (1):
          Use transparency arg in the window focus event
    
    Jason (2):
          Amend typos
          Docs: explain why menu command should be passed to sway
    
    Jason Nader (3):
          Amend typo
          commands/move: Fix crash when required args not provided
          Check argc>0 before strcasecmp. Should shortcircuit
    
    Jayce Fayne (1):
          Revert "fix bar_state_update/input event"
    
    John Chadwick (1):
          input: Add support for tablet protocol.
    
    Josef Gajdusek (1):
          Add virtual pointer protocol
    
    Kenny Levinsen (5):
          Ensure that seat->focused_layer is cleared on unmap
          output: Ensure that frame_done is delayed on max_render_time
          output: Replace block_idle_frame with frame_pending
          output: Schedule idle frames if we do not render
          output: Restore previous max_render_time behavior
    
    Kirill Chibisov (1):
          Fix tiled containers resize with mouse
    
    Konstantin Pospelov (2):
          swaybar: do not retry search for tray icons
          swaybar: fix typo in the loop over pixmaps
    
    Laurent Bonnans (1):
          ipc: collapse multi-container command results
    
    Lauri (1):
          Grimshot: a helper for screenshots within sway
    
    Manuel Mendez (1):
          grimshot: fix branching on command exit status
    
    Manuel Stoeckl (1):
          desktop/surface: Fix crash when timer is NULL
    
    Martin Michlmayr (4):
          Fix markup syntax in man pages
          swaymsg.1: fix description of --pretty
          sway-output.5: fix variable name
          swaymsg.1: fix typos
    
    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
    
    NightFeather (1):
          Add Chinese (zh-TW) translation of README
    
    Nils ANDRÉ-CHANG (1):
          Fix type (an -> and)
    
    Paul Riou (2):
          input: seat: Fix seat device list not initialised before use
          Fix sway_log using non initialised output_config pointer
    
    Pedro Côrte-Real (3):
          Avoid numerical instability in resize
          Make sure we don't calculate fractional pixel gaps
          Make all the container dimensions integers
    
    Rex Hackbro (2):
          Rename 'node' to 'nodes' in swayipc doc
          fix bar_state_update/input event
    
    Robert Günzler (1):
          Skip line continuation when it is a comment
    
    Ronan Pigott (19):
          view: create container before selecting workspace
          focus: support focus prev|next [sibling]
          criteria: make literal comparison for __focused__ values
          focus: do nothing on focus prev|next for workspaces
          seatop_move_floating: make container respect pointer constraint
          seatop_default: handle focus for xwayland_unmanaged views
          smart_borders: separate smartness from edge types
          Prefer higher refresh rate default modes
          seatop_default: handle focus for unmanaged xwayland windows last
          add scale_filter output config option
          Fix lingering workspace with scratchpad show
          config/output: apply scale_filter even when scale has not changed
          commands/split: Fix error message typos
          ipc-json: Remove unnecessary dereference
          sway-input.5: Document repeat_delay and repeat_rate only once
          sway.5: Document missing bindsym flags for unbindsym
          Fix crash when showing scratchpad hidden split containers
          cmd_move: Fix crash when moving to scratchpad hidden split containers
          cmd_split: Refuse to split scratchpad hidden split containers
    
    Ross Schulman (1):
          Fix small typo in sway-input(5)
    
    Rouven Czerwinski (3):
          sway(5): move workspace_layout to config only
          xwayland: get_constraints using size hints
          xwayland: handle size_hints == NULL
    
    Sebastian Krzyszkowiak (2):
          layer_shell: Guard against negative exclusive zone
          layer-shell: Fix damage tracking of nested popups
    
    Sheena Artrip (1):
          Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.
    
    Simon Ser (22):
          Remove xdg-shell v6 support
          layer-shell: don't give focus to unmapped layer surfaces
          man: document how to specify multiple xkb layouts and options
          Error out on unknown debug flag
          build: update wlroots version, be more strict
          Add support for fullscreen view direct scan-out
          Fix direct scan-out flickering
          build: bump wlroots version to 0.8.1
          build: always use the project version
          Fix apply_output_config return value when enabling output
          Fix segfault in wlr_output_manager_v1_set_configuration
          Handle layer changes for layer shell surfaces
          Fix presentation feedback when scanning out fullscreen view
          Add --custom to `output mode` command
          Fix segfault in set_mode
          Use wlr_output_preferred_mode instead of the last mode
          Add -Wno-missing-braces
          Use new presentation-time helper
          Auto-detect output scale
          Re-add support for wlr_output's atomic API
          Fix unreliable scaling filter
          Revert "Make all the container dimensions integers"
    
    Tadeo Kondrak (3):
          build: remove rootston from wlroots subproject
          Implement input map_to_region command
          Use an enum instead of a marker string for map_to_
    
    Thayne McCombs (1):
          Add missing items to documentation for GET_TREE response in ipc.
    
    Thorben Günther (2):
          Improve transparency script
          A Script to change sway workspace name.
    
    Versus Void (1):
          Do not search for edges on subsurfaces, fix #4381
    
    Whemoon Jang (1):
          Fix typo in swaybar-protocol.7.scd
    
    Wieland Hoffmann (2):
          sway(5): Add a missing verb
          sway(5): Highlight valid values in the description of tiling_drag
    
    asdfjkluiop (1):
          A layer-shell will only be focused if it is non-null
    
    lbonn (6):
          Allow moving a container hidden in scratchpad
          focus: support focus_wrapping workspace
          seat: simplify a strdup
          Fix various memory leaks
          Fix potential NULL reference on cleanup
          focus: add a NULL check in `focus <direction>`
    
    xPMo (1):
          Fix bar_state_update docs
    
    xdavidwu (3):
          seat: avoid unneeded reloading xcursor theme
          seat: set cursor image only if no pointer cap previously
          swaybar: make status block text render in the same way as others
    
  • 1.3-rc3
    sway 1.3-rc3
    
    Brian Ashworth (2):
          view: remove workspace pid mapping for assigns
          container: add inactive fullscreen to focus stack
    
    Cassandra McCarthy (1):
          integer scaling, not integral
    
    JR Boyens (1):
          Use transparency arg in the window focus event
    
    Jason (1):
          Docs: explain why menu command should be passed to sway
    
    Jason Nader (1):
          Amend typo
    
    Simon Ser (2):
          Fix unreliable scaling filter
          Revert "Make all the container dimensions integers"
    
  • 1.3-rc2
    sway 1.3-rc2
    
    Andri Yngvason (2):
          input: Assign virtual input devices to their selected seats
          swaybar: Fix input device removal
    
    Brian Ashworth (2):
          input/cursor: handle image surface destroy
          input/cursor: handle setting a NULL image surface
    
    Pedro Côrte-Real (3):
          Avoid numerical instability in resize
          Make sure we don't calculate fractional pixel gaps
          Make all the container dimensions integers
    
    Ross Schulman (1):
          Fix small typo in sway-input(5)
    
    Rouven Czerwinski (1):
          xwayland: handle size_hints == NULL
    
    Thayne McCombs (1):
          Add missing items to documentation for GET_TREE response in ipc.
  • 1.3-rc1
    6572621b · Update version to 1.3-rc1 ·
    sway 1.3-rc1
    
    A. M. Joseph (1):
          xwayland.c handle_map(): NULL out xsurface->data() to prevent crashing.
    
    Aleksis (1):
          remove unused layer shell surface variable
    
    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
    
    Arkadiusz Hiler (1):
          Fix syntax in examples in sway-output(5)
    
    Ben Brown (2):
          Fix typo for the force/immediate option in xwayland_mode enum
          Add icon_theme_path to find_icon() search if set
    
    Benjamin Cheng (2):
          input/cursor: pass gesture events to clients
          input/cursor: remove gesture listeners in destroy
    
    Brian Ashworth (36):
          workspace: prefer identifiers for output priority
          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
          cmd_xwayland: add force for immediate launch
          sway.5: remove mention of floating_scroll
          cmd_move: fix move to scratchpad hidden container
          cmd_mode: don't reset to default after subcommand
          seatop_default: only focus container on press
          swaybar: complete barconfig_update event handling
          sway.5: clarify that a marks are unqiue
          view: always populate pid
          input/keyboard: cleanup xkb_file error handing
          input_cmd_xkb_file: allow shell path expansion
          Add support for wlr_keyboard_group
          input/keyboard: check keyboard group before remove
          config: improvements to the reload validation
          input/keyboard: reset seat keyboard on destroy
          config: apply input type configs on reload
          layer-shell: unfocus output-less layer on unmap
          input/keyboard: remove group listeners on destroy
          input/keyboard: defer wlr_keyboard_group destroy
          config/input: set type for new identifier configs
          root_scratchpad_hide: disable fullscreen descendants
          input/seatop_default: fix focusing floating titles
          seat_cmd_keyboard_grouping: change keymap to smart
          layer-shell: refocus if keyboard interactive lost
          parse_color: return success + drop fallback color
          cmd_client_*: refactor duplicated code
          bar_cmd_colors: remove add_color
          cmd_client_*: support optional args for i3 compat
    
    Danilo Spinella (1):
          Fix refresh rate scale of output
    
    Dark (1):
          Update titlebar borders to match i3's current behavior.
    
    Drew DeVault (11):
          layer-shell: add support for popups
          Add _incr_version to contrib/
          chmod +x contrib/_incr_version
          config.in: set default term to alacritty
          Update .github/FUNDING.yml
          Update version to 1.2
          Updates per wlroots layer shell changes
          Add seat <seat> idle_{inhibit,wake} <sources...>
          License wallpapers as CC-0
          _incr_version: prompt for target wlroots release
          _incr_version: always overwrite old version number
    
    Ilia Bozhinov (1):
          properly check pixman_region32_contains_rectangle return
    
    Ivan Molodetskikh (9):
          Add Russian translation of the README
          render: set surface as sampled for presentation
          output: add max_render_time
          Add sway_surface
          view: add max_render_time
          Add max_render_time to output JSON
          Add max_render_time to view JSON
          output: check wlr_output in repaint handler
          Add note about backends to output max_render_time
    
    Jason (1):
          Amend typos
    
    Jayce Fayne (1):
          Revert "fix bar_state_update/input event"
    
    John Chadwick (1):
          input: Add support for tablet protocol.
    
    Josef Gajdusek (1):
          Add virtual pointer protocol
    
    Kenny Levinsen (5):
          Ensure that seat->focused_layer is cleared on unmap
          output: Ensure that frame_done is delayed on max_render_time
          output: Replace block_idle_frame with frame_pending
          output: Schedule idle frames if we do not render
          output: Restore previous max_render_time behavior
    
    Kirill Chibisov (1):
          Fix tiled containers resize with mouse
    
    Konstantin Pospelov (2):
          swaybar: do not retry search for tray icons
          swaybar: fix typo in the loop over pixmaps
    
    Laurent Bonnans (1):
          ipc: collapse multi-container command results
    
    Lauri (1):
          Grimshot: a helper for screenshots within sway
    
    Manuel Mendez (1):
          grimshot: fix branching on command exit status
    
    Manuel Stoeckl (1):
          desktop/surface: Fix crash when timer is NULL
    
    Martin Michlmayr (4):
          Fix markup syntax in man pages
          swaymsg.1: fix description of --pretty
          sway-output.5: fix variable name
          swaymsg.1: fix typos
    
    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
    
    NightFeather (1):
          Add Chinese (zh-TW) translation of README
    
    Nils ANDRÉ-CHANG (1):
          Fix type (an -> and)
    
    Paul Riou (2):
          input: seat: Fix seat device list not initialised before use
          Fix sway_log using non initialised output_config pointer
    
    Rex Hackbro (2):
          Rename 'node' to 'nodes' in swayipc doc
          fix bar_state_update/input event
    
    Robert Günzler (1):
          Skip line continuation when it is a comment
    
    Ronan Pigott (12):
          view: create container before selecting workspace
          focus: support focus prev|next [sibling]
          criteria: make literal comparison for __focused__ values
          focus: do nothing on focus prev|next for workspaces
          seatop_move_floating: make container respect pointer constraint
          seatop_default: handle focus for xwayland_unmanaged views
          smart_borders: separate smartness from edge types
          Prefer higher refresh rate default modes
          seatop_default: handle focus for unmanaged xwayland windows last
          add scale_filter output config option
          Fix lingering workspace with scratchpad show
          config/output: apply scale_filter even when scale has not changed
    
    Rouven Czerwinski (2):
          sway(5): move workspace_layout to config only
          xwayland: get_constraints using size hints
    
    Sebastian Krzyszkowiak (2):
          layer_shell: Guard against negative exclusive zone
          layer-shell: Fix damage tracking of nested popups
    
    Sheena Artrip (1):
          Rename symbol set_cloexec to sway_set_cloexec, remove duplicates.
    
    Simon Ser (20):
          Remove xdg-shell v6 support
          layer-shell: don't give focus to unmapped layer surfaces
          man: document how to specify multiple xkb layouts and options
          Error out on unknown debug flag
          build: update wlroots version, be more strict
          Add support for fullscreen view direct scan-out
          Fix direct scan-out flickering
          build: bump wlroots version to 0.8.1
          build: always use the project version
          Fix apply_output_config return value when enabling output
          Fix segfault in wlr_output_manager_v1_set_configuration
          Handle layer changes for layer shell surfaces
          Fix presentation feedback when scanning out fullscreen view
          Add --custom to `output mode` command
          Fix segfault in set_mode
          Use wlr_output_preferred_mode instead of the last mode
          Add -Wno-missing-braces
          Use new presentation-time helper
          Auto-detect output scale
          Re-add support for wlr_output's atomic API
    
    Tadeo Kondrak (3):
          build: remove rootston from wlroots subproject
          Implement input map_to_region command
          Use an enum instead of a marker string for map_to_
    
    Thorben Günther (2):
          Improve transparency script
          A Script to change sway workspace name.
    
    Versus Void (1):
          Do not search for edges on subsurfaces, fix #4381
    
    Whemoon Jang (1):
          Fix typo in swaybar-protocol.7.scd
    
    Wieland Hoffmann (2):
          sway(5): Add a missing verb
          sway(5): Highlight valid values in the description of tiling_drag
    
    asdfjkluiop (1):
          A layer-shell will only be focused if it is non-null
    
    lbonn (6):
          Allow moving a container hidden in scratchpad
          focus: support focus_wrapping workspace
          seat: simplify a strdup
          Fix various memory leaks
          Fix potential NULL reference on cleanup
          focus: add a NULL check in `focus <direction>`
    
    xPMo (1):
          Fix bar_state_update docs
    
    xdavidwu (3):
          seat: avoid unneeded reloading xcursor theme
          seat: set cursor image only if no pointer cap previously
          swaybar: make status block text render in the same way as others
  • 1.2
    be138dab · Update version to 1.2 ·
    sway 1.2
    
    Brian Ashworth (4):
          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
    
    Dark (1):
          Update titlebar borders to match i3's current behavior.
    
    Drew DeVault (3):
          Add _incr_version to contrib/
          chmod +x contrib/_incr_version
          Further refinements to _incr_version script
    
    Laurent Bonnans (1):
          ipc: collapse multi-container command results
    
    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
    
    asdfjkluiop (1):
          A layer-shell will only be focused if it is non-null
    
    lbonn (1):
          Allow moving a container hidden in scratchpad
  • 1.2-rc2
    sway 1.2-rc2
    
    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-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.
  • 1.1.1
    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.
  • 1.1
    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.
    
    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
    
  • 1.1-rc3
    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
  • 1.1-rc2
    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
  • 1.1-rc1
    sway 1.1-rc1
    
    sway 1.1 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.
    
    https://github.com/swaywm/swaybg
    
    	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
  • 1.0
    3ede5983 · Fix click behaviour ·
    sway 1.0
    
    Ben Challenor (1):
          Make raw keysyms take precedence over translated
    
    Brian Ashworth (10):
          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
    
    Drew DeVault (1):
          Update language in sway.desktop & sway(1)
    
    Ian Fan (3):
          stringop.c: remove unused functions
          stringop.c: clean up headers
          stringop.c: refactor a few functions
    
    Jeff Peeler (1):
          fix "directive argument is null" errors
    
    Peter Grayson (2):
          Add -p/--pretty option to swaymsg
          Add missing swaymsg completions
    
    Ryan Dwyer (2):
          Don't send button events to surfaces when dragging or resizing
          Fix click behaviour
    
    emersion (4):
          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
    
    minus (1):
          Fix crash when moving window to scratchpad
  • 1.0-rc5
    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.
    
    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
    
    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