Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 1.10
    sway 1.10
    
    Simon Ser (1):
          build: bump version to v1.10
    
  • 1.10-rc4
    sway 1.10-rc4
    
    Alexander Orzechowski (2):
          layer_shell: Arrange exclusive zone clients first
          layer_shell: Restore sway 1.9 ordering
    
    Jan Palus (1):
          trigger container update after disabling urgent in timer
    
    Kenny Levinsen (5):
          config/output: Improve modeset state logging
          config/output: Always set output states from config
          config/output: Always set all output fields on finalize
          config/output: Remove initial values in find_output_config
          config/output: Remove remaining logs from queue_output_config
    
    Simon Ser (1):
          build: bump version to 1.10-rc4
    
  • 1.10-rc3
    sway 1.10-rc3
    
    Furkan Sahin (1):
          input/mouse: bugfix button2 being interpreted as trying to move the container
    
    ShootingStarDragons (1):
          fix: sway crashes if switch to another workspace with surface when IME popup is shown
    
    Simon Ser (1):
          build: bump version to 1.10-rc3
    
  • 1.10-rc2
    sway 1.10-rc2
    
    Alexander Orzechowski (1):
          Fix alpha-modifier-v1
    
    Kenny Levinsen (1):
          Re-init renderer for all outputs on lost context
    
    Simon Ser (2):
          release: push tags before creating GitHub release
          build: bump version to 1.10-rc2
    
  • 1.10-rc1
    sway 1.10-rc1
    
    -k (2):
          Add descriptions for `stacking` and `tabbed` layouts
          man: Fix trailing spaces
    
    33KK (1):
          Fix `bindsym --to-code` not respecting input configs
    
    Access (1):
          text_input: Implement input-method popups
    
    Adam Chovanec (1):
          readme: update Czech translation
    
    Aidan Dang (1):
          Add `primary_selection` config option
    
    Alan (1):
          Update grimshot.1.scd
    
    Aleksei Bavshin (3):
          ipc: make `bar <bar_id> mode|hidden_state` behave as documented
          xdg-shell: use toplevel geometry to adjust the popup box
          xdg-activation: distinguish activation and urgency requests
    
    Alex Maese (3):
          sway: Add non-desktop-output type
          sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
          swaymsg: show non-desktop property when pretty printing outputs
    
    Alexander Browne (1):
          Minor update to focus_on_window_activation
    
    Alexander Courtis (1):
          Apply new adaptive sync value from wlr-output-management
    
    Alexander Gramiak (1):
          sway/input: don't pass possibly invalid modifiers pointer
    
    Alexander Orzechowski (61):
          view: Fix null dereference
          container_floating_set_default_size: Store workspace size box on the stack
          workspace_create: Don't allow NULL name
          warp_to_constraint_cursor_hint: Handle NULL view
          swaybar: Set opaque region properly
          swaybar: Lift background clearing out of main rendering function
          Chase wlroots!4067
          xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
          render: pass rendering state together in a struct
          render: Don't pass matrix into render_texture
          render: Use wlr_render_pass
          Don't crash if there is no damage during render
          gamma_control_v1: Reset dirty flag
          render: Use wlroots scale filter
          swaybar: Implement wp_cursor_shape_v1
          swaynag: Implement wp_cursor_shape_v1
          Chase wlroots!4331
          Don't destroy output layout on exit
          output: Destroy when output layout is destroyed
          desktop: Rename layers to shell_layers
          view: init function should return a success bool
          scene_graph: Maintain `wlr_scene_node`s for the sway tree.
          scene_graph: Use built-in linux dmabuf feedback handling
          scene_graph: Introduce sway_scene_descriptor
          renderer: Render scene_graph
          scene_graph: Port seat drag icons
          scene_graph: Port seatop_move_tiling indicators
          scene_graph: Port ext_session_v1
          seat: Remove dead seatop_render function
          renderer: Remove in favor of scene_graph
          Introduce sway_text_node
          input: Query scene graph for relevant surface/node intersections
          scene_graph: Port layer_shell
          scene_graph: Port container server side decorations
          transaction: ready signals will return success bools
          scene_graph: Port xdg_shell
          scene_graph: Port xwayland
          xwayland: Cleanup geometry handling on commit
          scene_graph: Port view saved buffers
          Delete old damage tracking code
          container: Don't track outputs
          scene_graph: Arrange scene graph on transaction apply
          scene_graph: Port opacity and filter modes
          scene_graph: Implement toplevel clipping
          Fix SIGSEGV on surface destroy
          remove damage debug options
          scene_graph: port wlr_forgein_toplevel_management output enter/leave events
          layer_shell: Fix typo of return instead of continue
          Ensure get_text_width() returns a positive value
          layer_shell: Arrange popups even if exclusive zone doesn't change
          xdg_shell: Extract struct for popup descriptor
          layer_shell: Handle popups through popup descriptor
          Force bilinear scaling when scaling down
          sway_text_node: Allow 0 text width
          transaction: Reparent all container children when disabling for scratchpad
          container: Skip % char if it doesn't match a view property
          text_input: Check for allocation failure
          text_input: Move popup placement to own function
          transaction: Allow no popup descriptor in popup list
          text_input: Properly handle map/unmap events
          text_input: Inline input_popup_update into input_popup_set_focus
    
    Alice Carroll (1):
          Support cursor capture in grimshot
    
    Aljaz Gantar (2):
          fix type error when class_name none
          refactor icon_for_window function
    
    Andri Yngvason (2):
          sway/commands/output: Add command for unplugging non-physical outputs
          Implement transient seat management
    
    Ankit Pandey (3):
          commands/move: Warp cursor after moving workspace to another output
          root: Try to preserve relative positions of floating containers
          root: Set inactive focus when scratchpad is moved to new workspace
    
    Anna (navi) Figueiredo Gomes (2):
          sway/config/output.c: fix null deref on output config
          sway/commands/move.c: arrange new workspace
    
    Artturin (2):
          chase wlroots wlr_renderer_begin_buffer_pass change
          chase wlroots 'presentation-time: add separate helper for zero-copy '
    
    AsciiWolf (2):
          Translate README to Czech
          Fix typo in Czech README translation
    
    Ashraf (1):
          Translate README to Arabic
    
    Baltazár Radics (5):
          ipc: make get_deco_rect check config->hide_lone_tab
          man: sway(5) move fixes
          container_get_siblings: handle NULL workspace
          Fix input command order (rotation_angle)
          ipc: add ability to subscribe to output event
    
    Bart Pelle (1):
          docs: fix invalid release signing keys
    
    Bartel Sielski (1):
          idle_inhibit: Fix tree view after changes in commit 152a559e
    
    Bartłomiej Burdukiewicz (1):
          main: removed vc4 detection code.
    
    Bill Doyle (1):
          Only defer seat attachment during initial startup
    
    Bill Li (4):
          Updating criteria checking with PCRE2
          chase wlroots!4411
          Chase wlroots!4482
          ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel
    
    Billli11 (1):
          Remove wlr_presentation in sway_server struct
    
    Birger Schacht (1):
          Fix a couple of typos
    
    Caduser2020 (1):
          Simplify swaybar/swaynag scaling code
    
    Callum Andrew (1):
          criteria: allow matching for NULL string criteria
    
    Carl Smedstad (6):
          Remove duplicate declarations
          Add missing includes & remove duplicates
          Make cmd_handler.command const
          Remove redundant return statements
          Replace math functions that promote float to double
          Use correct length for strncmp comparison
    
    Cedric Sodhi (1):
          Added reference for event types to swaymsg manpage
    
    Cezary Drożak (1):
          input/libinput: add scroll_button_lock method
    
    Christian Llupo (1):
          README: Added Greek translation
    
    Cole Mickens (1):
          meson.build: require wayland-protocols 1.24
    
    Daniel De Graaf (9):
          Fix overly-wide mark textures
          Avoid format-truncation warning
          Shuffle variables to satisfy -Werror=restrict
          Implement ext-session-lock-v1
          Avoid inspecting a NULL view in seat_set_focus
          ext-session-lock: disable direct scan-out when locked
          Rework session lock keyboard focus handling
          Fix focus tracking when session lock is active
          Fix SIGSEGV on output destroy
    
    Daniel Eklöf (2):
          sway: commands: exec: restore SIGPIPE before exec:ing
          sway: restore SIGPIPE handler before exec:ing swaybar
    
    Daniel Hill (1):
          Fix map_to_output * turning off device
    
    Daniel Kahn Gillmor (1):
          sway-ipc(7): Escape backslashes correctly in GET_CONFIG output
    
    Daniel Otero (1):
          config: Fix swaybar pango_markup inconsistency
    
    David Rosca (4):
          seatop_down: Change type of sx, sy to double in begin_seatop_down
          Add `output modeline` command
          xwayland: Clear wlr_xwayland_surface in handle_destroy
          container: Fix crash when view unmaps + maps quickly
    
    David96 (1):
          commands/move: Fix crash when pos_y is omitted
    
    Dominique Martinet (1):
          view_destroy: fix use-after-free with subsurface_destroy
    
    Drew DeVault (1):
          config.in: change terminal emulator to foot
    
    Dudemanguy (6):
          container: ignore borders in fullscreen windows
          xdg-decoration: let floating clients set borders
          view: update wlr_toplevel size on client resizes
          Revert "view: update wlr_toplevel size on client resizes"
          xdg_shell: update wlr_toplevel size on client resizes
          xdg_shell: don't update wlr_toplevel if the container has no size yet
    
    Dylan Araps (1):
          Add meson options to enable/disable swaybar and swaynag
    
    EBADBEEF (1):
          view: re-apply criteria when window gets unmapped
    
    Elyes HAOUAS (2):
          desktop/layer_shell.c: Fix misspelled "exclusive"
          sway-input.5.scd: Fix spelling errors
    
    Elyes Haouas (1):
          Fix old style function definitions
    
    Elyesa (1):
          Add Turkish README
    
    Emil Engberg (1):
          Add toggle for output adaptive_sync
    
    Eric Engestrom (2):
          cmd_bind_or_unbind_switch: fix copy/paste typo error message
          sway: allow IPCs on proprietary drivers
    
    Erik Reider (5):
          Added scroll_factor input variable to ipc output
          Init the damage_ring bounds on output creation
          Fix damage-ring bounds not being set when unplugging -> plugging in monitor
          Fix layer old damage not being offset by the monitor layout coords
          Add support for wlr-layer-shell ON_DEMAND keyboard interactivity
    
    Eskil (1):
          Add Swedish README
    
    Evgeniy Khramtsov (1):
          commands: Remove unused code after 1d3681f52135
    
    Felix Pehla (1):
          commands/output/color_profile: allows use of relative path for ICC profile
    
    Ferdinand Bachmann (2):
          man: document supported modifier names
          input: add Super as alternative for Mod4
    
    Ferdinand Schober (4):
          allow pointer_constraints on layer_shell surfaces
          check for NULL
          use seat directly
          Use keyboard_state.focused_surface directly
    
    Filip Szczepański (1):
          Fix crash in xdg_activation_v1.c
    
    Florian Franzen (1):
          sway: add bindgesture command
    
    Furkan Sahin (1):
          swaybar: Fix 100% cpu usage if dbus dies.
    
    Greg Depoire--Ferrer (1):
          swaynag: move close_button up to fix SIGSEGV
    
    Hodong (1):
          swaybar: remove the argument of StatusNotifierHostRegistered
    
    Hongyi (1):
          Polish the language in README.zh-CN.md & sync with English one
    
    Hugo Osvaldo Barrera (8):
          grimshot: Exit 1 on cancellation
          Use fixed titlebar heights
          Deduplicate code for rendering titlebar texts
          Avoid unecessary font metric calculations
          Drop hardcoded font metric values
          Avoid unecessary string copy
          Reject font values that are invalid for pango
          Reuse parsed PangoFontDescription
    
    Issam E. Maghni (1):
          cairo: Replace <cairo/cairo.h> by <cairo.h>
    
    István Donkó (1):
          Add Hungarian translation for the README
    
    Ivan Fedotov (1):
          Add toggle logic inside DPMS handler
    
    Jack Byrne (1):
          Change 'Danish' to 'Dansk' in README
    
    James Edwards-Jones (1):
          swaynag: adds option to set wayland shell layer
    
    James Knight (1):
          build: avoid git repository discovery when determining version
    
    Jan Beich (1):
          readme: Stop recommending setuid bit for non-logind systems
    
    Jari Ronkainen (1):
          Improve built-in touchscreen detection
    
    Jason Nader (4):
          swaymsg: use INT_MAX max JSON depth when parsing IPC response
          swaymsg: be explicit about the json parser error
          swaymsg: fix misplaced return value
          refactor: use JSON_MAX_DEPTH everywhere
    
    JingMatrix (1):
          Add null-safety check for virtual keyboard keymaps
    
    Joan Bruguera (2):
          swaybar: Prioritize hotspot events to bar bindings
          swaybar: Make hotspots block bar release bindings
    
    Joan Bruguera Micó (1):
          layer-shell: Restore interactive layer focus code
    
    Joe Kappus (1):
          build: bump wlroots dependency to 0.17.0
    
    Johan Sköld (1):
          i3 compat: Adding support for the `all` criteria
    
    John Chadwick (1):
          Improve tablet tool button handling.
    
    Jon Wallace (2):
          Use heading markdown to demarcate sections of commands Its a little tought to notice that the COMMANDS section is actually 3 sections. Use markdown to make this easier to see for the user.
          use subheadings instead
    
    Jonas Große Sundrup (3):
          clarify the type of raw output
          change incorrectly documented output types
          cross-reference further documentation
    
    Kenny Levinsen (55):
          ci: Install libseat
          meson: libseat is no longer optional
          Remove usage of surface->sx|sy
          desktop/render: Pass explicit clip box to render
          input: Move get_current_time_msec in from util
          ci: Test wlroots static linking
          readme: Align Danish translation with main README
          meson: check: false on run_command
          Print deprecation notice when running SUID
          Refuse to start when SUID is detected
          seat: Avoid sending redundant keymaps on reload
          seat: Set keyboard if seat keyboard is NULL
          render: Apply clip to rendered texture correctly
          render: Clear using wlr_output dimensions
          config/output: Split apply_output_config
          config/output: Introduce apply_output_configs
          output/config: Add apply_all_output_configs
          Use apply_all_output_configs to light up outputs
          desktop/output: Use apply_output_configs for output mgmt
          config/output: Remove apply_output_config
          output/config: Remove reset_outputs and co.
          config/output: Make merge_output_config static
          output/config: Remove unused test_output_config
          commands/output/toggle: Use free_output_config
          config/output: Refactor handling of tiered configs
          server: Use wlr_renderer_get_texture_formats
          desktop/output: Fix check if config should be stored
          config/output: Use all outputs for config merge
          config/output: Search for output config fallbacks
          config/output: Print output state during tests
          config/output: Skip VRR tests when not supported
          desktop/output: Debounce modesets
          common/pango: Disable glyph position rounding
          desktop/output: Stop repaint loop when not needed
          config/output: Do not set adaptive_sync if not supported
          config/output: Skip search if config has a mode
          desktop/transaction: Deactivate workspace on inactive outputs
          config/output: Add support for 6-bit render fmt
          config/output: Stringify render format when logging it
          desktop/output: Do not use commit listener to arrange
          tree/output: Rely on modeset arranging root
          (desktop|tree)/output: Do not use layout listener to arrange
          desktop/output: Avoid duplicate output manager update
          tree/output: Avoid duplicate input mapping configure
          tree/arrange: Remove redundant output geometry update
          tree/arrange; Skip arranging disabled outputs
          config/output: Support multiple matches in find_output_config
          config/output: Always start with default in find_output_config
          config/output: Accept a list of output_configs to use
          config/output: Rename to apply_stored_output_configs
          ext-session-lock: Do not use commit listener to arrange
          commands/gaps: Check config->reading instead
          desktop/output: Expose request_modeset
          config: Batch input/output configuration on load
          desktop/output: Clear modeset timer on output manager apply
    
    Kirill Chibisov (1):
          build: fix building with basu
    
    Kirill Primak (39):
          view: fix saved buffer order
          surface: chase wlr subsurface list/link change
          render: fix -Ddamage=rerender
          view: fix child position calc
          xdg-shell: chase wlr xdg toplevel refactor
          Revert "xdg_shell: schedule configure on maximize requests"
          xdg-shell: remove unused request_maximize listener
          layer-shell: chase wlr layer surface refactor
          layer-shell: check `committed` bitmask
          layer-shell: fix commit handler
          container: fix surface_is_popup()
          output: remove surface buffer damage check
          swaynag: remove buffer destruction condition
          chore: chase wlr_output_layout_get_box() update
          Chase wlroots xdg-shell refactor
          chore: chase wlroots xdg-shell update
          xdg-shell: schedule a configure on maximize request
          input: chase delta_discrete semantics change
          ci: install hwdata
          Use wlr_damage_ring
          output: set damage ring bounds to pixel values
          input/tablet: handle focusing NULL surface
          xwayland: don't rely on event source being data
          chore: chase wlroots map logic unification
          lock: listen to the correct map signal
          xwayland: fix mapped state check in OR handlers
          chore: chase wlroots xdg-surface role rework
          view: check if the buffer was uploaded on save
          xdg-shell: send maximized if tiled isn't supported
          xdg-shell: chase events update
          layer-shell: don't try to unmap on destroy
          layer-shell: wait for an initial commit before configuring
          layer-shell: don't configure uninitialized surfaces
          Chase wlroots!4003
          Chase wlroots!4443
          view: drop ext_foreign_destroy
          protocols: use tablet-v2 xml from stable/
          tearing: remove trailing whitespace
          tearing: fix UAF on destroy
    
    Leonardo Hernández Hernández (3):
          sway/input: fix bad position of wlr_drag
          sway/input: wlr_seat_keyboard() now takes wlr_keyboard
          chase wlroots!4316
    
    Lina Banik (1):
          seat: Fix reloading cursor theme after change
    
    LordRishav (1):
          Add a Hindi (हिन्दी) translation to the README
    
    Lucas Zampieri (1):
          Add libinput RotationAngle
    
    Ludvig Michaelsson (1):
          swaybar: signal status command's process group
    
    Luofan Chen (1):
          input: Rename WLR_INPUT_DEVICE_TABLET_TOOL to WLR_INPUT_DEVICE_TABLET
    
    M.Zeinali (1):
          readme: use right-to-left marks in ir translation
    
    Manuel Stoeckl (13):
          commands/exec: stop truncating >4095-byte commands
          Update URL to wlroots project (GitHub->GitLab)
          Add 'output render_bit_depth [8|10]' command
          sway/main: move constants off the stack
          Use shm_open instead of mkstemp
          swaynag: call swaynag_destroy on clean exit
          swaybar: handle wayland-cursor failures
          sway/server: Fix null pointer crash when Xwayland disabled
          common: Drop unused render_background_image
          common: rename load_background_image to load_image
          common: move load_image to swaybar
          desktop/layer_shell: provide fractional scale on creation
          sway/commands/output: Add command to set color profile
    
    Marco Rubin (1):
          Translated README into Italian
    
    Mark Bolhuis (1):
          input: Move wlr_pointer_gestures_v1 to sway_input_manager
    
    Martin Michlmayr (1):
          sway-output.5: improve display of parameter
    
    Matt Fellenz (1):
          Use locale time format for default bar command
    
    Merlin Lex (1):
          ext-foreign-toplevel-list: Implement protocol
    
    Michael Weiser (2):
          Prevent use-after-free on first bar subcommand error
          config: Remove unused mouse binding structure
    
    Moon Sungjoon (1):
          sway/input: destroy sway_switch properly
    
    Muhamed Hobi (1):
          Fix snprintf compiler warning
    
    Mukundan314 (1):
          swaybar: always subscribe to mode and workspace
    
    Nathan Schulte (5):
          swaybar: properly draw urgent block right border
          swaybar: properly draw blocks with transparent black border
          swaybar: fix cairo_font_options leak
          swaybar: fix tray_padding vs min-height re: scale
          swaybar: fix tray item icon scaling, positioning
    
    NemuiBanila (1):
          seat: Fix cursor theme reload for tablet tool
    
    Nick Kipshidze (1):
          Add Georgian README
    
    Nicolas Avrutin (1):
          commands/focus: fix segfault when no container is already focused.
    
    Nihal Jere (11):
          config.in: use portable hour specifier
          config.in: use swaynag -B instead of -b
          swaynag: die on all allocation failures
          swaynag: allocate button_details with details
          swaynag: statically allocate button_close, and move declaration
          swaynag: remove unnecessary zero of swaynag struct
          swaynag: remove redundant status variables in main
          remove unnecessary strlen call
          swaynag: do error checking and rename read_from_stdin
          swaynag: improve robustness when loading config
          swaynag: combine consecutive declaration/assignments
    
    Norbert Bolanowski (1):
          move title_format to container
    
    Olivia Taliesin (1):
          Removed destination-is-ancestor check from container_move_to_container to match i3 behaviour
    
    Oğuz Ersen (1):
          bash-completion: localize variables
    
    Patrick Hilhorst (1):
          treat fullscreen windows as 'tiled' for commands/focus
    
    Puck Meerburg (2):
          tree: support formatting null titles
          criteria: allow matching on empty (NULL) titles
    
    Radical (1):
          Add Norwegian READMR
    
    Ragnar Groot Koerkamp (5):
          Fix #6299 Disable auto_back_and_forth for next_on_output
          Move auto_back_and_forth logic out of workspace_switch
          Only call workspace_auto_back_and_forth when needed
          Revert "Add workspace {prev,next}_on_output --create"
          Update clang format to better match existing code
    
    Rahiel Kasim (1):
          fix typo in sway-output.5.scd
    
    Rasmus Moorats (1):
          fix cursor input for layer-shell surfaces
    
    Ricardo Steijn (1):
          Add support for tearing-control-v1
    
    RoastVeg (1):
          Handle border width and height on minimum floating sizes
    
    Robin Jarry (1):
          Allow windows in scratchpad to set the urgent flag
    
    Ronan Pigott (35):
          output: damage whole output when exiting scanout
          container: retain focus position on floating enable
          cmd_fullscreen: allow fullscreen on fullscreen split containers
          workspace: reap empty parents when adding tiles
          xdg-shell: ignore unecessary fullscreen request ouput hints
          cmd_fullscreen: ignore fullscreen request on workspaces
          view: commit transactions for foreign toplevel requests
          layer_shell: damage previous area when a surface shrinks
          command: implement split none
          commands: update split none command for a047b5ee4
          output: change output::destroy to output::disable
          output: emit node::destroy event
          cmd/swap: error on swapping a container with itself
          root: move the workspace matching code to its own file
          node: prettify node type names
          launcher: track workspaces by node
          launcher: use xdga tokens
          launcher: rename pid_workspace to launcher_ctx
          view: associate launch contexts with views
          launcher: initialize launcher_ctxs once on startup
          launcher: fudge the interface a bit
          launcher: export xdga tokens and use them for workspace matching
          launcher: export X startup ids and use them for workspace matching
          criteria: be lenient on window_role and instance too
          input: enable user xkb configs with cap_sys_nice
          view: make request_activate take a seat
          launcher: make launcher context seat aware
          launcher: support external launcher tokens
          xdg-activation: fix urgency when the client does not specify a seat
          container: rehome the container_swap function into container.c
          Add a .mailmap file
          launcher: track the seat in the launcher ctx
          commands/move: do not force focus on the moved container
          view: send scale notification when the output is known
          xdg-activation: launcher tokens are activation requests
    
    Rouven Czerwinski (5):
          view: handle case where map_ws is NULL
          transaction: destroying nodes aren't hidden
          server: request xdg-shell v2
          realtime: request SCHED_RR using CAP_SYS_NICE
          gamma_control_v1: handle destroyed output
    
    Scott Dubinsky (1):
          Remove unguarded double include
    
    Sefa Eyeoglu (4):
          fix: handle NULL from json_tokener_new_ex
          fix: use sane value for json_tokener max_depth
          refactor: use sway_abort instead
          build: bump wlroots dependency to 0.16.0
    
    Sergei Trofimovich (2):
          swaynag/config.c: fix build against gcc-14 (-Walloc-size)
          sway/config.c: use `memcpy()` for known buffer size
    
    Seth Barberee (1):
          [IPC] Add repeat delay/rate info to keyboard
    
    Shaked Flur (1):
          man: add --inhibited and --no-repeat to bindsym and bindcode usage
    
    Simon Plakolb (2):
          input: Use seatop_down on layer surface click
          seatop_down: End if surface is destroyed or other seatop starts
    
    Simon Ser (243):
          ci: add xcb-util-wm dependency for wlroots
          Remove advice about Firefox from issue template
          readme: make it clearer that meson takes a dir as argument
          build: bump version to 1.6
          build: update wlroots dependency version to 0.14.x
          build: stop checking for logind
          desktop/render: remove unused wlr_gles2_texture_attribs
          Remove WLR_HAS_XDG_FOREIGN checks
          Log wlroots version on startup
          Avoid creating zero-sized textures for titlebars
          Use cairo_image_surface_get_stride instead of guessing it
          Avoid creating zero-sized textures for marks
          Use execlp("sh") instead of execl("/bin/sh")
          commands/exec_always: log error on execlp failure
          Remove support for arbitrary rotations
          build: remove sd-bus status item
          readme: switch back to IRC web client
          Implement xdg-activation-v1
          Iterate over subsurfaces below the parent surface
          build: bump wlroots dependency to 0.15.0
          contrib: drop incr_version script
          build: use meson.global_build_root()
          build: use Dependency.get_variable instead of get_pkgconfig_variable
          build: use ExternalProgram.full_path instead of path
          ci: make Meson warnings fatal
          tree/container: fix indentation
          Update wlr_box includes
          Add support for touch frame events
          Fix wl_pointer.frame not sent on touch emulation
          swaybar: exit cleanly when disconnected from IPC
          swaybar: log Wayland display errors
          Document view_map
          Fallback to other output modes if preferred mode fails
          layer-shell: replace close() with destroy()
          readme: switch to Libera Chat for ir
          readme: link to gamja for IRC
          Rename pango_printf to render_text
          readme: mention seatd
          build: remove scdoc stdin/stdout hack
          Add -Dnoscanout debug option
          readme: add missing space
          Add support for DRM panel orientation
          Chase wlr_xdg_surface breaking changes
          readme: drop recommendation about packaging
          Handle present events with NULL timespec field
          github: don't truncate debug logs
          Remove --my-next-gpu-wont-be-nvidia
          Bump RLIMIT_NOFILE
          Replace wlr_headless_backend_create_with_renderer call
          build: use list for sdbus dep
          Delete .clang-format
          Fixup headless output names
          Add support for linux-dmabuf surface hints
          swaynag: remove xdg-output logic
          swaymsg: replace if with switch in pretty_print
          swaymsg: add GET_TREE pretty-printing
          swaybar: fix errno handling in status_handle_readable
          Add cairo_image_surface_create error handling
          build: bump version to 1.8-dev
          Destroy sub-surfaces with parent layer-shell surface
          Add safety assert in parse_movement_unit
          Upgrade for wlroots surface refactoring
          commands/focus: drop trailing whitespace
          build: execute wlroots subproject before finding deps
          Use bools for CLI flags
          readme: add link to Italian translation
          readme: sort language list alphabetically
          readme: use relative links for translations
          xdg-shell: use wlr_xdg_toplevel in sway_view
          xdg-shell: use wlr_xdg_popup in sway_xdg_popup
          Remove all sprintf calls
          Remove WLR_SWITCH_STATE_TOGGLE usage
          swaybar: remove swaybar_output.input_region
          swaybar: set opaque region
          Replace strncpy with memcpy
          De-duplicate IPC output descriptions
          Handle NULL output make/model/serial
          build: link with -pthread
          ipc: remove chatty debug log messages
          config/output: use wlr_output_commit_state
          Remove access to wlr_input_device union
          Rename dpms output command to power
          ipc: add "power" to output reply
          config.in: switch to `output power`
          Remove internal references to DPMS
          Enable single-pixel-buffer-v1
          ipc: drop WLR_OUTPUT_ADAPTIVE_SYNC_UNKNOWN case
          config/output: test adaptive sync
          ipc: expose mode picture aspect ratio
          swaymsg: show mode picture aspect ratio
          build: simplify protocol paths
          Fix leaks in criteria_destroy()
          Add support for ext-idle-notify-v1
          Use wl_signal_emit_mutable()
          lock: fix crash on output destroy
          input/seat: locally compute drag icon offset
          Listen to the output request_state event
          ipc: add view content type
          Update for wlroots!3814
          build: drop wayland-scanner fallback
          build: unify server & client protocol generation
          build: drop "server" from target name for protocol code
          build: drop intermediate libraries for protocols
          build: drop unused wayland-egl dependency
          build: bump version to 1.9-dev
          Make GLES2 optional
          Make DRM backend optional
          Make session optional
          Make libinput backend optional
          build: remove trailing newline at end of file
          build: move completions to separate file
          build: fix have_xwayland when xcb-icccm is not found
          Chase breaking changes in wlroots!3903
          ci: install Xwayland .pc file
          swaynag: fix NULL font description
          swaynag: drop swaynag_type.font
          man: fix typo in output disable docs
          tree/container: drop unnecessary check in container_get_siblings()
          Send wl_surface.enter for ext-session-lock surfaces
          Fix indentation in surface_is_xdg_popup()
          Fix pointer events for ext-session-lock surfaces
          Check return value of wlr_renderer_begin()
          Switch default menu to wmenu
          ipc: add support for output event
          Convert to wlr_xwayland_surface_try_from_wlr_surface()
          Convert to *_try_from_wlr_surface()
          swaymsg: print output power status
          swaymsg: s/inactive/disabled/
          ci: install hwdata-dev on Alpine
          Use wlr_linux_dmabuf_feedback_v1_init_with_options()
          Introduce surface_{enter,leave}_output()
          Add support for fractional-scale-v1
          Update surface fractional scale on output change
          layer-shell: enter output before surface is mapped
          Adjust scale for fractional-scale-v1
          Constify pixman_region32_t for rendering functions
          Move output commit out of output_render()
          Check for empty damage before attaching render buffer
          man: deprecate seat cursor move/set/press/release
          ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
          Remove duplicate wlr_damage_ring_set_bounds() call
          Pass version to wlr_compositor_create()
          Skip direct scan-out commit when damage is empty
          Set output damage during direct scan-out
          Introduce output_match_name_or_id()
          Use all_output_by_name_or_id() in merge_id_on_name()
          Use output_match_name_or_id() in apply_output_config_to_outputs()
          Use output_match_name_or_id() in workspace functions
          Add format_str() and vformat_str()
          pango: add printf attribute
          commands/floating_minmax_size: fix error strings
          commands: add printf attribute to cmd_results_new()
          config: add printf attribute to config_add_swaynag_warning()
          swaynag: add printf attribute to swaynag_log()
          common/gesture: use format_str()
          Use format_str() throughout
          render: fix titlebar texture clipping
          Handle gamma-control-v1 set_gamma events
          desktop/output: use detached output state for page-flips
          desktop/output: fix damage bitfield in wlr_output_state
          Use wlr_cursor_set_xcursor()
          Use wlr_cursor_unset_image()
          idle-inhibit-v1: simplify with server global
          Use "default" XCursor instead of "left_ptr"
          Send wl_surface.preferred_buffer_scale
          swaynag: handle wayland-cursor failures
          Deprecate seat idle_wake
          Add support for cursor-shape-v1
          desktop/output: drop logic to handle backend-applied mode
          desktop/output: drop handle_mode()
          desktop/output: fix output manager enabled state
          output: drop current_mode
          Move contrib/ to separate repository
          Hide xwayland_shell_v1 from regular clients
          Drop support for KDE's idle protocol
          input/seat: don't configure mappings for switches
          input/seat: rename seat_apply_input_config
          Only reconfigure input mappings on output change
          input/input-manager: drop input_manager_configure_all_inputs
          Apply gamma LUT when an output re-enabled
          Add support for security-context-v1
          Fix reference to wlr_output_event_commit.committed
          Add wlr/util/transform.h includes
          Pass wl_display to wlr_output_layout
          desktop/xwayland: correctly handle association on o-r change
          Drop fglrx detection
          Detect Nvidia proprietary driver via drmGetVersion()
          Detect proprietary DisplayLink drivers
          input/seat: drop exclusive_client
          input/{keyboard,switch}: rename input_inhibited variable to locked
          input/seat: inline seat_set_exclusive_client() with NULL client
          input/seat: rename seat_set_exclusive_client()
          input/seat: simplify seat_is_input_allowed()
          Check wlr_pointer_constraint_v1_state.cursor_hint.enabled
          input: reconfigure send_events on output hotplug
          readme: add swaybg as optional dep
          Drop wl_drm
          Mark DRM lease protocol privileged
          Clarify gdk-pixbuf dependency purpose
          Add debug flag to re-enable wl_drm
          build: bump version to 1.10-dev
          Drop old security config remnants
          commands/primary_selection: drop duplicate bool parsing
          commands: note how xwayland/primary_selection are reset on reload
          commands: make primary_selection a config-only command
          config: use format_str() instead of hand-rolled snprintf()
          Fix build with wlroots DRM backend disabled
          Drop unnecessary includes from sway/server.h
          input/text_input: fix dangling listeners
          Define _POSIX_C_SOURCE globally
          Add release script
          Convert to new pointer enums
          config: error out on keysym translation XKB state failure
          config: add fallback without env vars for keysym translation XKB keymap
          Fetch input device vendor/product from libinput
          xdg-shell: implement popup repositioning
          xdg-shell: send WM capabilities
          config/output: drop enabling flag
          server: fix wlr_seat use-after-free on exit
          Re-create renderer when lost
          man: drop fractional scale warning
          man: document that the scale might be adjusted
          input: pass wlr_seat_client to wlr_seat_touch_notify_cancel()
          config/output: fix NULL derefs in store_output_config()
          config/output: drop fast path in store_output_config()
          tree/container: ensure pixman rect is valid in container_arrange_title_bar()
          build: disable wayland-protocols subproject tests by default
          build: drop xwayland option
          server: hide xdg_output from unprivileged clients
          input/text_input: ensure keyboard is set before sending modifiers
          Drop server.h include from input/input-manager.h
          Set color transform when calling wlr_scene_output_build_state()
          tree/view: set default min size to 1×1
          tree/view: ensure content_{width,height} is positive
          desktop/output: unify page-flip codepath
          tree/container: drop decl for container_update_textures_recursive()
          sway_text_node: avoid unnecessary redraws
          ci: pin wlroots to v0.18.x
          desktop/xwayland: don't restack when marking window as inactive
          Bind a few utilities to special keys in default config
          Switch default config to wmenu-run
          Add support for alpha-modifier-v1
          build: bump version to 1.10-rc1
    
    Simon Zeni (13):
          view: remove reference to wlr_wl_shell_surface
          introduce wlr_drm_lease_v1
          sway: create wlr_renderer and wlr_allocator
          sway: replace noop_output by fallback_output
          sway/commands: add missing wlr_keyboard interface include in xkb_switch_layout
          sway/input: use wlr_input_device from input device base
          sway/input/cursor: take device mm size from wlr_tablet
          sway/input/seat: take output name from specialized input device
          sway/input: follow up wlroots input device events renaming
          sway/server: specify wlr-layer-shell version on creation
          sway/desktop/output: listen to output mode in commit handle
          sway/lock: handle mode in output commit handler
          ci: add libdisplay-info dependency
    
    Stacy Harper (1):
          Implement seatop_touch
    
    Stanislav Ochotnický (1):
          man: add warning for hide_cursor configuration
    
    Steffen Dirkwinkel (1):
          config/output: support DRM_FORMAT_ARGB8888
    
    Tamino Bauknecht (4):
          gitignore: Ignore clangd-generated directory .cache/
          config/output: Allow approximation of output refresh rate
          sway: raise error on non-accessible background file
          sway/output: Improve logging of swaybg execvp failure and more checks
    
    Tarcísio Eduardo Moreira Crocomo (2):
          Implement clickfinger_button_map support.
          build: bump libinput version required
    
    Tassilo Horn (1):
          Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c
    
    Thomas Hebb (4):
          input/seat: unset has_focus when focus_stack becomes empty
          Remove some erroneous apostrophes in comments
          Don't enter seatop_move_floating when fullscreen
          layer_shell: keep output non-NULL wherever possible
    
    Thomas Jost (1):
          Strip quotes in bindsym --input-device=...
    
    Tobias Bengfort (2):
          tray: do not render passive items
          focus_on_window_activation: raise if floating
    
    Tobias Langendorf (1):
          remove usage of `wlr_texture_get_size`
    
    Tobias Predel (1):
          root: free non_desktop_outputs list on root_destroy
    
    Tobias Stoeckmann (1):
          Fix crash when starting without HOME
    
    Tudor Brindus (8):
          tree/view: don't give focus to views mapped under fullscreen views
          desktop/xwayland: restack surface upon activation
          input/cursor: count pointer gestures as idle activity
          input/cursor: treat swipe begin as idle activity too
          input/cursor: pass through pointer hold gestures
          input: focus floating container when clicked on border
          input: focus container when scrolling on titlebar
          input: tweak focus behavior to allow focusing parent containers
    
    Tuomas Yrjölä (1):
          xwayland: listen to `request_activate` event
    
    Victor Makarov (1):
          xkb_switch_layout: fix relative layout switches
    
    Violet Purcell (2):
          sway/config.c: only reset primary_selection at launch
          Update for versioned wlroots files
    
    Vsevolod (1):
          Add focused_tab_title
    
    Yaroslav de la Peña Smirnov (1):
          Fix keymap being NULL and segfaulting on dev add
    
    Yasin Silavi (1):
          Fix farsi label
    
    aajonusonline (1):
          sway-ipc.7.scd: fix typo
    
    apreiml (1):
          Update README.de.md to match the EN one
    
    apt-ghetto (1):
          Fix IRC links in READMEs and templates
    
    ash lea (1):
          container: don't set fullscreen on children
    
    bR3iN (2):
          Add `gaps <type> <scope> toggle <px>` command
          Add smart_gaps inverse_outer command
    
    bretello (3):
          fix crash when resizing tiled scratchpad windows
          fix crash when setting urgency on an hidden scratchpad container
          prevent workspace_find_container from crashing with NULL workspaces
    
    columbarius (1):
          config: allow whitespaces in config path
    
    cparm (1):
          Avoid double free in criteria_destroy()
    
    denppa (1):
          build: fix build with wayland-scanner subproject
    
    frogtile (1):
          man: update Pango font description URL
    
    fwsmit (1):
          desktop/layer_shell: fix centering for opposing anchors
    
    grumpey (1):
          Update Pango font description URL in sway.5.scd
    
    hrdl (3):
          Add support for touch cancel events
          handle_touch_cancel: fix begin default
          seatop_down: Call seatop_begin_default after sending touch events
    
    iff (2):
          commands/input/map_from_region: don't treat 0x prefix as hex identifier
          Update sway-input.5.scd
    
    kraftwerk28 (2):
          Chase wlroots X11 hints update
          Allocate enough space for `cmd_results->error`
    
    lbonn (1):
          build: subproject support for wayland-protocols
    
    llyyr (17):
          swaymsg: fix floating_nodes being ignored
          grimshot: fix tilde expansion within quotes
          sway{,bar}: use default font hint style
          swaybar: don't set current workspace as not visible
          meson: bump wlroots version after 0.17.0 release
          Chase wlroots!4440
          input/text_input: parent wlr_box may be uninitialized
          text_input: don't destroy scene_node twice
          ipc: add `floating` property to GET_TREE
          ipc: add `scratchpad_state` property to GET_TREE
          input/keyboard: don't send key release if we don't have focused surface
          input/seat: don't send redundant leave/enter on device creation
          input/keyboard: refactor into sway_keyboard_set_layout
          input/keyboard: don't set layout for virtual keyboard device
          xdg_shell: don't send configure events to uninitialized surfaces
          sway/tree/container: don't trunc coords in `floating_fix_coordinates`
          sway/input/keyboard: always set active keyboard if there is none
    
    luzpaz (1):
          Fix typo
    
    mrusme (1):
          Update sway.5.scd
    
    mzeinali (1):
          Add persian README file
    
    ndren (1):
          Replace pcre with pcre2
    
    nerdopolis (1):
          Fix build on Debian Stable
    
    novenary (4):
          Don't apply hide_edge_borders to any floating container
          Disable direct scanout for surfaces with popups
          transaction: fix missing top border with hide_lone_tab
          ipc: properly check for titlebars
    
    nukoseer (1):
          Calculate tiled resize amount relative to parent container
    
    ohno418 (1):
          Improve Japanese translation
    
    ookami (1):
          Rebase all cursors in handle_surface_map
    
    pudiva chip líquida (1):
          Support libinput's 1.21 new dwtp option
    
    quinno (1):
          Fix typo in sway.5.scd
    
    rj1 (1):
          fix typo
    
    sergio (1):
          details-gackground typo fix
    
    siikamiika (3):
          use node_is_view
          commands/focus: focus view inside container
          view: add new container as a sibling of tiled view
    
    thal (1):
          tree/view: Do not clip to geometry if using CSD
    
    tomKPZ (1):
          Add tab dragging functionality
    
    xdavidwu (1):
          swaynag: fix pointer button events on scaled outputs
    
    zkldi (1):
          fix: remove redundant empty statement in main.c
    
    Łukasz Adamczak (2):
          Correct window_rect.y with hide_edge_borders
          Clarify documentation for window_rect
    
    マリウス (1):
          man: Add XWayland information
    
    
  • 1.9
    sway 1.9
    
    Simon Ser (1):
          build: bump version to 1.9
    
  • 1.9-rc4
    sway 1.9-rc4
    
    Aleksei Bavshin (1):
          xdg-activation: distinguish activation and urgency requests
    
    Ronan Pigott (1):
          launcher: track the seat in the launcher ctx
    
    Simon Ser (3):
          commands: make primary_selection a config-only command
          Fix build with wlroots DRM backend disabled
          build: bump version to 1.9-rc.4
    
  • 1.9-rc3
    sway 1.9-rc3
    
    Simon Ser (1):
          build: bump version to 1.9-rc.3
    
    Violet Purcell (1):
          sway/config.c: only reset primary_selection at launch
    
  • 1.9-rc2
    sway 1.9-rc2
    
    Simon Ser (1):
          build: bump version to 1.9-rc.2
    
    Tamino Bauknecht (1):
          sway/output: Improve logging of swaybg execvp failure and more checks
    
  • 1.9-rc1
    sway 1.9-rc1
    
    33KK (1):
          Fix `bindsym --to-code` not respecting input configs
    
    Aidan Dang (1):
          Add `primary_selection` config option
    
    Alexander Courtis (1):
          Apply new adaptive sync value from wlr-output-management
    
    Alexander Orzechowski (16):
          workspace_create: Don't allow NULL name
          warp_to_constraint_cursor_hint: Handle NULL view
          swaybar: Set opaque region properly
          swaybar: Lift background clearing out of main rendering function
          Chase wlroots!4067
          xdg_shell: Fix crash if popup generates while toplevel is in the scratchpad
          render: pass rendering state together in a struct
          render: Don't pass matrix into render_texture
          render: Use wlr_render_pass
          Don't crash if there is no damage during render
          gamma_control_v1: Reset dirty flag
          render: Use wlroots scale filter
          swaybar: Implement wp_cursor_shape_v1
          swaynag: Implement wp_cursor_shape_v1
          Chase wlroots!4331
          output: Destroy when output layout is destroyed
    
    Ankit Pandey (3):
          commands/move: Warp cursor after moving workspace to another output
          root: Try to preserve relative positions of floating containers
          root: Set inactive focus when scratchpad is moved to new workspace
    
    Artturin (2):
          chase wlroots wlr_renderer_begin_buffer_pass change
          chase wlroots 'presentation-time: add separate helper for zero-copy '
    
    AsciiWolf (2):
          Translate README to Czech
          Fix typo in Czech README translation
    
    Ashraf (1):
          Translate README to Arabic
    
    Baltazár Radics (2):
          Fix input command order (rotation_angle)
          ipc: add ability to subscribe to output event
    
    Bill Li (1):
          chase wlroots!4411
    
    Carl Smedstad (6):
          Remove duplicate declarations
          Add missing includes & remove duplicates
          Make cmd_handler.command const
          Remove redundant return statements
          Replace math functions that promote float to double
          Use correct length for strncmp comparison
    
    Cedric Sodhi (1):
          Added reference for event types to swaymsg manpage
    
    Cezary Drożak (1):
          input/libinput: add scroll_button_lock method
    
    Daniel Hill (1):
          Fix map_to_output * turning off device
    
    Dudemanguy (4):
          view: update wlr_toplevel size on client resizes
          Revert "view: update wlr_toplevel size on client resizes"
          xdg_shell: update wlr_toplevel size on client resizes
          xdg_shell: don't update wlr_toplevel if the container has no size yet
    
    EBADBEEF (1):
          view: re-apply criteria when window gets unmapped
    
    Elyes Haouas (1):
          Fix old style function definitions
    
    Erik Reider (4):
          Init the damage_ring bounds on output creation
          Fix damage-ring bounds not being set when unplugging -> plugging in monitor
          Fix layer old damage not being offset by the monitor layout coords
          Add support for wlr-layer-shell ON_DEMAND keyboard interactivity
    
    Hodong (1):
          swaybar: remove the argument of StatusNotifierHostRegistered
    
    Jan Beich (1):
          readme: Stop recommending setuid bit for non-logind systems
    
    Joan Bruguera (2):
          swaybar: Prioritize hotspot events to bar bindings
          swaybar: Make hotspots block bar release bindings
    
    Joe Kappus (1):
          build: bump wlroots dependency to 0.17.0
    
    Johan Sköld (1):
          i3 compat: Adding support for the `all` criteria
    
    John Chadwick (1):
          Improve tablet tool button handling.
    
    Kenny Levinsen (4):
          seat: Avoid sending redundant keymaps on reload
          seat: Set keyboard if seat keyboard is NULL
          render: Apply clip to rendered texture correctly
          render: Clear using wlr_output dimensions
    
    Kirill Primak (9):
          output: set damage ring bounds to pixel values
          input/tablet: handle focusing NULL surface
          xwayland: don't rely on event source being data
          chore: chase wlroots map logic unification
          lock: listen to the correct map signal
          xwayland: fix mapped state check in OR handlers
          chore: chase wlroots xdg-surface role rework
          view: check if the buffer was uploaded on save
          xdg-shell: send maximized if tiled isn't supported
    
    Leonardo Hernández Hernández (1):
          chase wlroots!4316
    
    Lina Banik (1):
          seat: Fix reloading cursor theme after change
    
    Lucas Zampieri (1):
          Add libinput RotationAngle
    
    Manuel Stoeckl (4):
          Use shm_open instead of mkstemp
          swaynag: call swaynag_destroy on clean exit
          swaybar: handle wayland-cursor failures
          sway/server: Fix null pointer crash when Xwayland disabled
    
    Mark Bolhuis (1):
          input: Move wlr_pointer_gestures_v1 to sway_input_manager
    
    Matt Fellenz (1):
          Use locale time format for default bar command
    
    Mukundan314 (1):
          swaybar: always subscribe to mode and workspace
    
    NemuiBanila (1):
          seat: Fix cursor theme reload for tablet tool
    
    Nick Kipshidze (1):
          Add Georgian README
    
    Radical (1):
          Add Norwegian READMR
    
    Robin Jarry (1):
          Allow windows in scratchpad to set the urgent flag
    
    Ronan Pigott (18):
          root: move the workspace matching code to its own file
          node: prettify node type names
          launcher: track workspaces by node
          launcher: use xdga tokens
          launcher: rename pid_workspace to launcher_ctx
          view: associate launch contexts with views
          launcher: initialize launcher_ctxs once on startup
          launcher: fudge the interface a bit
          launcher: export xdga tokens and use them for workspace matching
          launcher: export X startup ids and use them for workspace matching
          criteria: be lenient on window_role and instance too
          input: enable user xkb configs with cap_sys_nice
          view: make request_activate take a seat
          launcher: make launcher context seat aware
          launcher: support external launcher tokens
          xdg-activation: fix urgency when the client does not specify a seat
          container: rehome the container_swap function into container.c
          Add a .mailmap file
    
    Rouven Czerwinski (1):
          gamma_control_v1: handle destroyed output
    
    Sergei Trofimovich (2):
          swaynag/config.c: fix build against gcc-14 (-Walloc-size)
          sway/config.c: use `memcpy()` for known buffer size
    
    Shaked Flur (1):
          man: add --inhibited and --no-repeat to bindsym and bindcode usage
    
    Simon Ser (94):
          input/seat: locally compute drag icon offset
          Listen to the output request_state event
          ipc: add view content type
          Update for wlroots!3814
          build: drop wayland-scanner fallback
          build: unify server & client protocol generation
          build: drop "server" from target name for protocol code
          build: drop intermediate libraries for protocols
          build: drop unused wayland-egl dependency
          build: bump version to 1.9-dev
          Make GLES2 optional
          Make DRM backend optional
          Make session optional
          Make libinput backend optional
          build: remove trailing newline at end of file
          build: move completions to separate file
          build: fix have_xwayland when xcb-icccm is not found
          Chase breaking changes in wlroots!3903
          ci: install Xwayland .pc file
          swaynag: fix NULL font description
          swaynag: drop swaynag_type.font
          man: fix typo in output disable docs
          tree/container: drop unnecessary check in container_get_siblings()
          Send wl_surface.enter for ext-session-lock surfaces
          Fix indentation in surface_is_xdg_popup()
          Fix pointer events for ext-session-lock surfaces
          Check return value of wlr_renderer_begin()
          Switch default menu to wmenu
          ipc: add support for output event
          Convert to wlr_xwayland_surface_try_from_wlr_surface()
          Convert to *_try_from_wlr_surface()
          swaymsg: print output power status
          swaymsg: s/inactive/disabled/
          ci: install hwdata-dev on Alpine
          Use wlr_linux_dmabuf_feedback_v1_init_with_options()
          Introduce surface_{enter,leave}_output()
          Add support for fractional-scale-v1
          Update surface fractional scale on output change
          layer-shell: enter output before surface is mapped
          Adjust scale for fractional-scale-v1
          Constify pixman_region32_t for rendering functions
          Move output commit out of output_render()
          Check for empty damage before attaching render buffer
          man: deprecate seat cursor move/set/press/release
          ipc: add LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM entry
          Remove duplicate wlr_damage_ring_set_bounds() call
          Pass version to wlr_compositor_create()
          Skip direct scan-out commit when damage is empty
          Set output damage during direct scan-out
          Introduce output_match_name_or_id()
          Use all_output_by_name_or_id() in merge_id_on_name()
          Use output_match_name_or_id() in apply_output_config_to_outputs()
          Use output_match_name_or_id() in workspace functions
          Add format_str() and vformat_str()
          pango: add printf attribute
          commands/floating_minmax_size: fix error strings
          commands: add printf attribute to cmd_results_new()
          config: add printf attribute to config_add_swaynag_warning()
          swaynag: add printf attribute to swaynag_log()
          common/gesture: use format_str()
          Use format_str() throughout
          render: fix titlebar texture clipping
          Handle gamma-control-v1 set_gamma events
          desktop/output: use detached output state for page-flips
          desktop/output: fix damage bitfield in wlr_output_state
          Use wlr_cursor_set_xcursor()
          Use wlr_cursor_unset_image()
          idle-inhibit-v1: simplify with server global
          Use "default" XCursor instead of "left_ptr"
          Send wl_surface.preferred_buffer_scale
          swaynag: handle wayland-cursor failures
          Deprecate seat idle_wake
          Add support for cursor-shape-v1
          desktop/output: drop logic to handle backend-applied mode
          desktop/output: drop handle_mode()
          desktop/output: fix output manager enabled state
          output: drop current_mode
          Move contrib/ to separate repository
          Hide xwayland_shell_v1 from regular clients
          Drop support for KDE's idle protocol
          input/seat: don't configure mappings for switches
          input/seat: rename seat_apply_input_config
          Only reconfigure input mappings on output change
          input/input-manager: drop input_manager_configure_all_inputs
          Apply gamma LUT when an output re-enabled
          Add support for security-context-v1
          Fix reference to wlr_output_event_commit.committed
          ci: checkout wlroots 0.17
          desktop/xwayland: correctly handle association on o-r change
          input: reconfigure send_events on output hotplug
          readme: add swaybg as optional dep
          Mark DRM lease protocol privileged
          Clarify gdk-pixbuf dependency purpose
          build: bump version to 1.9-rc.1
    
    Simon Zeni (4):
          sway/server: specify wlr-layer-shell version on creation
          sway/desktop/output: listen to output mode in commit handle
          sway/lock: handle mode in output commit handler
          ci: add libdisplay-info dependency
    
    Stacy Harper (1):
          Implement seatop_touch
    
    Stanislav Ochotnický (1):
          man: add warning for hide_cursor configuration
    
    Tamino Bauknecht (3):
          gitignore: Ignore clangd-generated directory .cache/
          config/output: Allow approximation of output refresh rate
          sway: raise error on non-accessible background file
    
    Tobias Bengfort (1):
          focus_on_window_activation: raise if floating
    
    Tobias Predel (1):
          root: free non_desktop_outputs list on root_destroy
    
    bretello (1):
          fix crash when resizing tiled scratchpad windows
    
    denppa (1):
          build: fix build with wayland-scanner subproject
    
    hrdl (3):
          Add support for touch cancel events
          handle_touch_cancel: fix begin default
          seatop_down: Call seatop_begin_default after sending touch events
    
    iff (2):
          commands/input/map_from_region: don't treat 0x prefix as hex identifier
          Update sway-input.5.scd
    
    llyyr (2):
          sway{,bar}: use default font hint style
          swaybar: don't set current workspace as not visible
    
    luzpaz (1):
          Fix typo
    
    mrusme (1):
          Update sway.5.scd
    
    nerdopolis (1):
          Fix build on Debian Stable
    
    novenary (1):
          Disable direct scanout for surfaces with popups
    
    nukoseer (1):
          Calculate tiled resize amount relative to parent container
    
    ookami (1):
          Rebase all cursors in handle_surface_map
    
    rj1 (1):
          fix typo
    
    Łukasz Adamczak (2):
          Correct window_rect.y with hide_edge_borders
          Clarify documentation for window_rect
    
    
  • 1.8.1
    sway 1.8.1
    
    Alexander Courtis (1):
          Apply new adaptive sync value from wlr-output-management
    
    Alexander Orzechowski (1):
          warp_to_constraint_cursor_hint: Handle NULL view
    
    Carl Smedstad (1):
          Use correct length for strncmp comparison
    
    Kate (1):
          Allow setting the font size to 0
    
    Kirill Primak (1):
          input/tablet: handle focusing NULL surface
    
    Simon Ser (4):
          man: fix typo in output disable docs
          Send wl_surface.enter for ext-session-lock surfaces
          Fix pointer events for ext-session-lock surfaces
          build: bump version to 1.8.1
    
    Tobias Bengfort (1):
          focus_on_window_activation: raise if floating
    
    Łukasz Adamczak (2):
          Correct window_rect.y with hide_edge_borders
          Clarify documentation for window_rect
    
  • 1.8
    sway 1.8
    
    Simon Ser (2):
          swaynag: fix NULL font description
          build: bump version to 1.8
    
  • 1.8-rc4
    sway 1.8-rc4
    
    Ankit Pandey (1):
          commands/move: Warp cursor after moving workspace to another output
    
    Kenny Levinsen (1):
          seat: Set keyboard if seat keyboard is NULL
    
    Simon Ser (1):
          build: bump version to 1.8-rc4
    
  • 1.8-rc3
    sway 1.8-rc3
    
    Kenny Levinsen (1):
          seat: Avoid sending redundant keymaps on reload
    
    Ronan Pigott (1):
          criteria: be lenient on window_role and instance too
    
    Simon Ser (1):
          build: bump version to 1.8-rc3
    
  • 1.8-rc2
    sway 1.8-rc2
    
    Simon Ser (2):
          build: fix have_xwayland when xcb-icccm is not found
          build: bump version to 1.8-rc2
    
    nerdopolis (1):
          Fix build on Debian Stable
    
  • 1.8-rc1
    sway 1.8-rc1
    
    -k (2):
          Add descriptions for `stacking` and `tabbed` layouts
          man: Fix trailing spaces
    
    Alan (1):
          Update grimshot.1.scd
    
    Aleksei Bavshin (1):
          xdg-shell: use toplevel geometry to adjust the popup box
    
    Alex Maese (3):
          sway: Add non-desktop-output type
          sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
          swaymsg: show non-desktop property when pretty printing outputs
    
    Alexander Browne (1):
          Minor update to focus_on_window_activation
    
    Alexander Gramiak (1):
          sway/input: don't pass possibly invalid modifiers pointer
    
    Alexander Orzechowski (2):
          container_floating_set_default_size: Store workspace size box on the stack
          workspace_create: Don't allow NULL name
    
    Alice Carroll (1):
          Support cursor capture in grimshot
    
    Andri Yngvason (1):
          sway/commands/output: Add command for unplugging non-physical outputs
    
    Baltazár Radics (3):
          ipc: make get_deco_rect check config->hide_lone_tab
          man: sway(5) move fixes
          container_get_siblings: handle NULL workspace
    
    Bill Li (1):
          Updating criteria checking with PCRE2
    
    Callum Andrew (1):
          criteria: allow matching for NULL string criteria
    
    Daniel De Graaf (7):
          Avoid format-truncation warning
          Shuffle variables to satisfy -Werror=restrict
          Implement ext-session-lock-v1
          Avoid inspecting a NULL view in seat_set_focus
          ext-session-lock: disable direct scan-out when locked
          Rework session lock keyboard focus handling
          Fix focus tracking when session lock is active
    
    David Rosca (1):
          container: Fix crash when view unmaps + maps quickly
    
    David96 (1):
          commands/move: Fix crash when pos_y is omitted
    
    Eskil (1):
          Add Swedish README
    
    Ferdinand Schober (4):
          allow pointer_constraints on layer_shell surfaces
          check for NULL
          use seat directly
          Use keyboard_state.focused_surface directly
    
    Filip Szczepański (1):
          Fix crash in xdg_activation_v1.c
    
    Florian Franzen (1):
          sway: add bindgesture command
    
    Greg Depoire--Ferrer (1):
          swaynag: move close_button up to fix SIGSEGV
    
    Hongyi (1):
          Polish the language in README.zh-CN.md & sync with English one
    
    Hugo Osvaldo Barrera (3):
          Avoid unecessary string copy
          Reject font values that are invalid for pango
          Reuse parsed PangoFontDescription
    
    Joan Bruguera (2):
          swaybar: Prioritize hotspot events to bar bindings
          swaybar: Make hotspots block bar release bindings
    
    Kenny Levinsen (3):
          meson: check: false on run_command
          Print deprecation notice when running SUID
          Refuse to start when SUID is detected
    
    Kirill Chibisov (1):
          build: fix building with basu
    
    Kirill Primak (9):
          swaynag: remove buffer destruction condition
          chore: chase wlr_output_layout_get_box() update
          Chase wlroots xdg-shell refactor
          chore: chase wlroots xdg-shell update
          xdg-shell: schedule a configure on maximize request
          input: chase delta_discrete semantics change
          ci: install hwdata
          Use wlr_damage_ring
          output: set damage ring bounds to pixel values
    
    Leonardo Hernández Hernández (2):
          sway/input: fix bad position of wlr_drag
          sway/input: wlr_seat_keyboard() now takes wlr_keyboard
    
    LordRishav (1):
          Add a Hindi (हिन्दी) translation to the README
    
    Manuel Stoeckl (2):
          sway/main: move constants off the stack
          Use shm_open instead of mkstemp
    
    Marco Rubin (1):
          Translated README into Italian
    
    Martin Michlmayr (1):
          sway-output.5: improve display of parameter
    
    Michael Weiser (1):
          config: Remove unused mouse binding structure
    
    Moon Sungjoon (1):
          sway/input: destroy sway_switch properly
    
    Muhamed Hobi (1):
          Fix snprintf compiler warning
    
    Nathan Schulte (2):
          swaybar: fix tray_padding vs min-height re: scale
          swaybar: fix tray item icon scaling, positioning
    
    Nicolas Avrutin (1):
          commands/focus: fix segfault when no container is already focused.
    
    Nihal Jere (9):
          swaynag: die on all allocation failures
          swaynag: allocate button_details with details
          swaynag: statically allocate button_close, and move declaration
          swaynag: remove unnecessary zero of swaynag struct
          swaynag: remove redundant status variables in main
          remove unnecessary strlen call
          swaynag: do error checking and rename read_from_stdin
          swaynag: improve robustness when loading config
          swaynag: combine consecutive declaration/assignments
    
    Oğuz Ersen (1):
          bash-completion: localize variables
    
    Patrick Hilhorst (1):
          treat fullscreen windows as 'tiled' for commands/focus
    
    Puck Meerburg (2):
          tree: support formatting null titles
          criteria: allow matching on empty (NULL) titles
    
    Ronan Pigott (11):
          cmd/swap: error on swapping a container with itself
          root: move the workspace matching code to its own file
          node: prettify node type names
          launcher: track workspaces by node
          launcher: use xdga tokens
          launcher: rename pid_workspace to launcher_ctx
          view: associate launch contexts with views
          launcher: initialize launcher_ctxs once on startup
          launcher: fudge the interface a bit
          launcher: export xdga tokens and use them for workspace matching
          launcher: export X startup ids and use them for workspace matching
    
    Rouven Czerwinski (3):
          transaction: destroying nodes aren't hidden
          server: request xdg-shell v2
          realtime: request SCHED_RR using CAP_SYS_NICE
    
    Sefa Eyeoglu (1):
          build: bump wlroots dependency to 0.16.0
    
    Seth Barberee (1):
          [IPC] Add repeat delay/rate info to keyboard
    
    Simon Ser (48):
          swaymsg: replace if with switch in pretty_print
          swaymsg: add GET_TREE pretty-printing
          swaybar: fix errno handling in status_handle_readable
          Add cairo_image_surface_create error handling
          build: bump version to 1.8-dev
          Destroy sub-surfaces with parent layer-shell surface
          Add safety assert in parse_movement_unit
          Upgrade for wlroots surface refactoring
          commands/focus: drop trailing whitespace
          build: execute wlroots subproject before finding deps
          Use bools for CLI flags
          readme: add link to Italian translation
          readme: sort language list alphabetically
          readme: use relative links for translations
          xdg-shell: use wlr_xdg_toplevel in sway_view
          xdg-shell: use wlr_xdg_popup in sway_xdg_popup
          Remove all sprintf calls
          Remove WLR_SWITCH_STATE_TOGGLE usage
          swaybar: remove swaybar_output.input_region
          swaybar: set opaque region
          Replace strncpy with memcpy
          De-duplicate IPC output descriptions
          Handle NULL output make/model/serial
          build: link with -pthread
          ipc: remove chatty debug log messages
          config/output: use wlr_output_commit_state
          Remove access to wlr_input_device union
          Rename dpms output command to power
          ipc: add "power" to output reply
          config.in: switch to `output power`
          Remove internal references to DPMS
          Enable single-pixel-buffer-v1
          ipc: drop WLR_OUTPUT_ADAPTIVE_SYNC_UNKNOWN case
          config/output: test adaptive sync
          ipc: expose mode picture aspect ratio
          swaymsg: show mode picture aspect ratio
          build: simplify protocol paths
          Fix leaks in criteria_destroy()
          Add support for ext-idle-notify-v1
          Use wl_signal_emit_mutable()
          lock: fix crash on output destroy
          ci: checkout wlroots 0.16.0
          build: drop wayland-scanner fallback
          build: unify server & client protocol generation
          build: drop "server" from target name for protocol code
          build: drop intermediate libraries for protocols
          build: drop unused wayland-egl dependency
          build: bump version to 1.8-rc1
    
    Simon Zeni (5):
          sway/commands: add missing wlr_keyboard interface include in xkb_switch_layout
          sway/input: use wlr_input_device from input device base
          sway/input/cursor: take device mm size from wlr_tablet
          sway/input/seat: take output name from specialized input device
          sway/input: follow up wlroots input device events renaming
    
    Thomas Hebb (4):
          input/seat: unset has_focus when focus_stack becomes empty
          Remove some erroneous apostrophes in comments
          Don't enter seatop_move_floating when fullscreen
          layer_shell: keep output non-NULL wherever possible
    
    Thomas Jost (1):
          Strip quotes in bindsym --input-device=...
    
    Tobias Bengfort (1):
          tray: do not render passive items
    
    Tudor Brindus (6):
          input/cursor: count pointer gestures as idle activity
          input/cursor: treat swipe begin as idle activity too
          input/cursor: pass through pointer hold gestures
          input: focus floating container when clicked on border
          input: focus container when scrolling on titlebar
          input: tweak focus behavior to allow focusing parent containers
    
    Tuomas Yrjölä (1):
          xwayland: listen to `request_activate` event
    
    Victor Makarov (1):
          xkb_switch_layout: fix relative layout switches
    
    Yaroslav de la Peña Smirnov (1):
          Fix keymap being NULL and segfaulting on dev add
    
    Yasin Silavi (1):
          Fix farsi label
    
    cparm (1):
          Avoid double free in criteria_destroy()
    
    kraftwerk28 (2):
          Chase wlroots X11 hints update
          Allocate enough space for `cmd_results->error`
    
    llyyr (2):
          swaymsg: fix floating_nodes being ignored
          grimshot: fix tilde expansion within quotes
    
    ndren (1):
          Replace pcre with pcre2
    
    ohno418 (1):
          Improve Japanese translation
    
    pudiva chip líquida (1):
          Support libinput's 1.21 new dwtp option
    
    zkldi (1):
          fix: remove redundant empty statement in main.c
    
    マリウス (1):
          man: Add XWayland information
    
    
  • 1.7
    sway 1.7
    
    Aleksei Bavshin (2):
          ipc: make `bar <bar_id> mode|hidden_state` behave as documented
          xdg-shell: use toplevel geometry to adjust the popup box
    
    Alexander Orzechowski (1):
          view: Fix null dereference
    
    Aljaz Gantar (2):
          fix type error when class_name none
          refactor icon_for_window function
    
    Bart Pelle (1):
          docs: fix invalid release signing keys
    
    Bartel Sielski (1):
          idle_inhibit: Fix tree view after changes in commit 152a559e
    
    Bartłomiej Burdukiewicz (1):
          main: removed vc4 detection code.
    
    Bill Doyle (1):
          Only defer seat attachment during initial startup
    
    Birger Schacht (1):
          Fix a couple of typos
    
    Caduser2020 (1):
          Simplify swaybar/swaynag scaling code
    
    Christian Llupo (1):
          README: Added Greek translation
    
    Cole Mickens (1):
          meson.build: require wayland-protocols 1.24
    
    Daniel De Graaf (1):
          Fix overly-wide mark textures
    
    Daniel Eklöf (2):
          sway: commands: exec: restore SIGPIPE before exec:ing
          sway: restore SIGPIPE handler before exec:ing swaybar
    
    Daniel Otero (1):
          config: Fix swaybar pango_markup inconsistency
    
    David Rosca (4):
          seatop_down: Change type of sx, sy to double in begin_seatop_down
          Add `output modeline` command
          xwayland: Clear wlr_xwayland_surface in handle_destroy
          container: Fix crash when view unmaps + maps quickly
    
    David96 (1):
          commands/move: Fix crash when pos_y is omitted
    
    Dominique Martinet (1):
          view_destroy: fix use-after-free with subsurface_destroy
    
    Drew DeVault (1):
          config.in: change terminal emulator to foot
    
    Dudemanguy (2):
          container: ignore borders in fullscreen windows
          xdg-decoration: let floating clients set borders
    
    Dylan Araps (1):
          Add meson options to enable/disable swaybar and swaynag
    
    Elyes HAOUAS (2):
          desktop/layer_shell.c: Fix misspelled "exclusive"
          sway-input.5.scd: Fix spelling errors
    
    Elyesa (1):
          Add Turkish README
    
    Eric Engestrom (2):
          cmd_bind_or_unbind_switch: fix copy/paste typo error message
          sway: allow IPCs on proprietary drivers
    
    Erik Reider (1):
          Added scroll_factor input variable to ipc output
    
    Evgeniy Khramtsov (1):
          commands: Remove unused code after 1d3681f52135
    
    Hugo Osvaldo Barrera (5):
          grimshot: Exit 1 on cancellation
          Use fixed titlebar heights
          Deduplicate code for rendering titlebar texts
          Avoid unecessary font metric calculations
          Drop hardcoded font metric values
    
    Issam E. Maghni (1):
          cairo: Replace <cairo/cairo.h> by <cairo.h>
    
    István Donkó (1):
          Add Hungarian translation for the README
    
    Ivan Fedotov (1):
          Add toggle logic inside DPMS handler
    
    Jack Byrne (1):
          Change 'Danish' to 'Dansk' in README
    
    James Edwards-Jones (1):
          swaynag: adds option to set wayland shell layer
    
    Jari Ronkainen (1):
          Improve built-in touchscreen detection
    
    Jason Nader (4):
          swaymsg: use INT_MAX max JSON depth when parsing IPC response
          swaymsg: be explicit about the json parser error
          swaymsg: fix misplaced return value
          refactor: use JSON_MAX_DEPTH everywhere
    
    Jonas Große Sundrup (3):
          clarify the type of raw output
          change incorrectly documented output types
          cross-reference further documentation
    
    Kenny Levinsen (9):
          ci: Install libseat
          meson: libseat is no longer optional
          Remove usage of surface->sx|sy
          desktop/render: Pass explicit clip box to render
          input: Move get_current_time_msec in from util
          ci: Test wlroots static linking
          readme: Align Danish translation with main README
          meson: check: false on run_command
          Print deprecation notice when running SUID
    
    Kirill Chibisov (1):
          build: fix building with basu
    
    Kirill Primak (12):
          view: fix saved buffer order
          surface: chase wlr subsurface list/link change
          render: fix -Ddamage=rerender
          view: fix child position calc
          xdg-shell: chase wlr xdg toplevel refactor
          Revert "xdg_shell: schedule configure on maximize requests"
          xdg-shell: remove unused request_maximize listener
          layer-shell: chase wlr layer surface refactor
          layer-shell: check `committed` bitmask
          layer-shell: fix commit handler
          container: fix surface_is_popup()
          output: remove surface buffer damage check
    
    Ludvig Michaelsson (1):
          swaybar: signal status command's process group
    
    M.Zeinali (1):
          readme: use right-to-left marks in ir translation
    
    Manuel Stoeckl (3):
          commands/exec: stop truncating >4095-byte commands
          Update URL to wlroots project (GitHub->GitLab)
          Add 'output render_bit_depth [8|10]' command
    
    Michael Weiser (1):
          Prevent use-after-free on first bar subcommand error
    
    Nathan Schulte (5):
          swaybar: properly draw urgent block right border
          swaybar: properly draw blocks with transparent black border
          swaybar: fix cairo_font_options leak
          swaybar: fix tray_padding vs min-height re: scale
          swaybar: fix tray item icon scaling, positioning
    
    Nihal Jere (2):
          config.in: use portable hour specifier
          config.in: use swaynag -B instead of -b
    
    Patrick Hilhorst (1):
          treat fullscreen windows as 'tiled' for commands/focus
    
    Ragnar Groot Koerkamp (5):
          Fix #6299 Disable auto_back_and_forth for next_on_output
          Move auto_back_and_forth logic out of workspace_switch
          Only call workspace_auto_back_and_forth when needed
          Revert "Add workspace {prev,next}_on_output --create"
          Update clang format to better match existing code
    
    Rahiel Kasim (1):
          fix typo in sway-output.5.scd
    
    Rasmus Moorats (1):
          fix cursor input for layer-shell surfaces
    
    RoastVeg (1):
          Handle border width and height on minimum floating sizes
    
    Ronan Pigott (13):
          output: damage whole output when exiting scanout
          container: retain focus position on floating enable
          cmd_fullscreen: allow fullscreen on fullscreen split containers
          workspace: reap empty parents when adding tiles
          xdg-shell: ignore unecessary fullscreen request ouput hints
          cmd_fullscreen: ignore fullscreen request on workspaces
          view: commit transactions for foreign toplevel requests
          layer_shell: damage previous area when a surface shrinks
          command: implement split none
          commands: update split none command for a047b5ee4
          output: change output::destroy to output::disable
          output: emit node::destroy event
          cmd/swap: error on swapping a container with itself
    
    Rouven Czerwinski (2):
          view: handle case where map_ws is NULL
          transaction: destroying nodes aren't hidden
    
    Sefa Eyeoglu (3):
          fix: handle NULL from json_tokener_new_ex
          fix: use sane value for json_tokener max_depth
          refactor: use sway_abort instead
    
    Simon Plakolb (2):
          input: Use seatop_down on layer surface click
          seatop_down: End if surface is destroyed or other seatop starts
    
    Simon Ser (63):
          ci: add xcb-util-wm dependency for wlroots
          Remove advice about Firefox from issue template
          readme: make it clearer that meson takes a dir as argument
          build: bump version to 1.6
          build: update wlroots dependency version to 0.14.x
          build: stop checking for logind
          desktop/render: remove unused wlr_gles2_texture_attribs
          Remove WLR_HAS_XDG_FOREIGN checks
          Log wlroots version on startup
          Avoid creating zero-sized textures for titlebars
          Use cairo_image_surface_get_stride instead of guessing it
          Avoid creating zero-sized textures for marks
          Use execlp("sh") instead of execl("/bin/sh")
          commands/exec_always: log error on execlp failure
          Remove support for arbitrary rotations
          build: remove sd-bus status item
          readme: switch back to IRC web client
          Implement xdg-activation-v1
          Iterate over subsurfaces below the parent surface
          build: bump wlroots dependency to 0.15.0
          contrib: drop incr_version script
          build: use meson.global_build_root()
          build: use Dependency.get_variable instead of get_pkgconfig_variable
          build: use ExternalProgram.full_path instead of path
          ci: make Meson warnings fatal
          tree/container: fix indentation
          Update wlr_box includes
          Add support for touch frame events
          Fix wl_pointer.frame not sent on touch emulation
          swaybar: exit cleanly when disconnected from IPC
          swaybar: log Wayland display errors
          Document view_map
          Fallback to other output modes if preferred mode fails
          layer-shell: replace close() with destroy()
          readme: switch to Libera Chat for ir
          readme: link to gamja for IRC
          Rename pango_printf to render_text
          readme: mention seatd
          build: remove scdoc stdin/stdout hack
          Add -Dnoscanout debug option
          readme: add missing space
          Add support for DRM panel orientation
          Chase wlr_xdg_surface breaking changes
          readme: drop recommendation about packaging
          Handle present events with NULL timespec field
          github: don't truncate debug logs
          Remove --my-next-gpu-wont-be-nvidia
          Bump RLIMIT_NOFILE
          Replace wlr_headless_backend_create_with_renderer call
          build: use list for sdbus dep
          Delete .clang-format
          Fixup headless output names
          Add support for linux-dmabuf surface hints
          swaynag: remove xdg-output logic
          swaybar: fix errno handling in status_handle_readable
          Add cairo_image_surface_create error handling
          build: bump version to 1.7-rc1
          Destroy sub-surfaces with parent layer-shell surface
          build: bump version to 1.7-rc2
          Add safety assert in parse_movement_unit
          ci: checkout wlroots 0.15.0
          build: bump version to 1.7-rc3
          build: bump version to 1.7
    
    Simon Zeni (4):
          view: remove reference to wlr_wl_shell_surface
          introduce wlr_drm_lease_v1
          sway: create wlr_renderer and wlr_allocator
          sway: replace noop_output by fallback_output
    
    Tassilo Horn (1):
          Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c
    
    Thomas Hebb (1):
          input/seat: unset has_focus when focus_stack becomes empty
    
    Tobias Langendorf (1):
          remove usage of `wlr_texture_get_size`
    
    Tobias Stoeckmann (1):
          Fix crash when starting without HOME
    
    Tudor Brindus (4):
          tree/view: don't give focus to views mapped under fullscreen views
          desktop/xwayland: restack surface upon activation
          input/cursor: count pointer gestures as idle activity
          input/cursor: treat swipe begin as idle activity too
    
    Vsevolod (1):
          Add focused_tab_title
    
    aajonusonline (1):
          sway-ipc.7.scd: fix typo
    
    apt-ghetto (1):
          Fix IRC links in READMEs and templates
    
    ash lea (1):
          container: don't set fullscreen on children
    
    bR3iN (2):
          Add `gaps <type> <scope> toggle <px>` command
          Add smart_gaps inverse_outer command
    
    columbarius (1):
          config: allow whitespaces in config path
    
    frogtile (1):
          man: update Pango font description URL
    
    fwsmit (1):
          desktop/layer_shell: fix centering for opposing anchors
    
    grumpey (1):
          Update Pango font description URL in sway.5.scd
    
    lbonn (1):
          build: subproject support for wayland-protocols
    
    mzeinali (1):
          Add persian README file
    
    novenary (1):
          Don't apply hide_edge_borders to any floating container
    
    quinno (1):
          Fix typo in sway.5.scd
    
    sergio (1):
          details-gackground typo fix
    
    siikamiika (3):
          use node_is_view
          commands/focus: focus view inside container
          view: add new container as a sibling of tiled view
    
    tomKPZ (1):
          Add tab dragging functionality
    
    xdavidwu (1):
          swaynag: fix pointer button events on scaled outputs
    
    
  • 1.7-rc3
    sway 1.7-rc3
    
    Aleksei Bavshin (1):
          xdg-shell: use toplevel geometry to adjust the popup box
    
    Kenny Levinsen (2):
          meson: check: false on run_command
          Print deprecation notice when running SUID
    
    Kirill Chibisov (1):
          build: fix building with basu
    
    Simon Ser (3):
          Add safety assert in parse_movement_unit
          ci: checkout wlroots 0.15.0
          build: bump version to 1.7-rc3
    
  • 1.7-rc2
    sway 1.7-rc2
    
    David Rosca (1):
          container: Fix crash when view unmaps + maps quickly
    
    David96 (1):
          commands/move: Fix crash when pos_y is omitted
    
    Nathan Schulte (2):
          swaybar: fix tray_padding vs min-height re: scale
          swaybar: fix tray item icon scaling, positioning
    
    Simon Ser (2):
          Destroy sub-surfaces with parent layer-shell surface
          build: bump version to 1.7-rc2
    
    Thomas Hebb (1):
          input/seat: unset has_focus when focus_stack becomes empty
    
  • 1.7-rc1
    sway 1.7-rc1
    
    Aleksei Bavshin (1):
          ipc: make `bar <bar_id> mode|hidden_state` behave as documented
    
    Alexander Orzechowski (1):
          view: Fix null dereference
    
    Aljaz Gantar (2):
          fix type error when class_name none
          refactor icon_for_window function
    
    Bart Pelle (1):
          docs: fix invalid release signing keys
    
    Bartel Sielski (1):
          idle_inhibit: Fix tree view after changes in commit 152a559e
    
    Bartłomiej Burdukiewicz (1):
          main: removed vc4 detection code.
    
    Bill Doyle (1):
          Only defer seat attachment during initial startup
    
    Birger Schacht (1):
          Fix a couple of typos
    
    Caduser2020 (1):
          Simplify swaybar/swaynag scaling code
    
    Christian Llupo (1):
          README: Added Greek translation
    
    Cole Mickens (1):
          meson.build: require wayland-protocols 1.24
    
    Daniel De Graaf (1):
          Fix overly-wide mark textures
    
    Daniel Eklöf (2):
          sway: commands: exec: restore SIGPIPE before exec:ing
          sway: restore SIGPIPE handler before exec:ing swaybar
    
    Daniel Otero (1):
          config: Fix swaybar pango_markup inconsistency
    
    David Rosca (3):
          seatop_down: Change type of sx, sy to double in begin_seatop_down
          Add `output modeline` command
          xwayland: Clear wlr_xwayland_surface in handle_destroy
    
    Dominique Martinet (1):
          view_destroy: fix use-after-free with subsurface_destroy
    
    Drew DeVault (1):
          config.in: change terminal emulator to foot
    
    Dudemanguy (2):
          container: ignore borders in fullscreen windows
          xdg-decoration: let floating clients set borders
    
    Dylan Araps (1):
          Add meson options to enable/disable swaybar and swaynag
    
    Elyes HAOUAS (2):
          desktop/layer_shell.c: Fix misspelled "exclusive"
          sway-input.5.scd: Fix spelling errors
    
    Elyesa (1):
          Add Turkish README
    
    Eric Engestrom (2):
          cmd_bind_or_unbind_switch: fix copy/paste typo error message
          sway: allow IPCs on proprietary drivers
    
    Erik Reider (1):
          Added scroll_factor input variable to ipc output
    
    Evgeniy Khramtsov (1):
          commands: Remove unused code after 1d3681f52135
    
    Hugo Osvaldo Barrera (5):
          grimshot: Exit 1 on cancellation
          Use fixed titlebar heights
          Deduplicate code for rendering titlebar texts
          Avoid unecessary font metric calculations
          Drop hardcoded font metric values
    
    Issam E. Maghni (1):
          cairo: Replace <cairo/cairo.h> by <cairo.h>
    
    István Donkó (1):
          Add Hungarian translation for the README
    
    Ivan Fedotov (1):
          Add toggle logic inside DPMS handler
    
    Jack Byrne (1):
          Change 'Danish' to 'Dansk' in README
    
    James Edwards-Jones (1):
          swaynag: adds option to set wayland shell layer
    
    Jari Ronkainen (1):
          Improve built-in touchscreen detection
    
    Jason Nader (4):
          swaymsg: use INT_MAX max JSON depth when parsing IPC response
          swaymsg: be explicit about the json parser error
          swaymsg: fix misplaced return value
          refactor: use JSON_MAX_DEPTH everywhere
    
    Jonas Große Sundrup (3):
          clarify the type of raw output
          change incorrectly documented output types
          cross-reference further documentation
    
    Kenny Levinsen (7):
          ci: Install libseat
          meson: libseat is no longer optional
          Remove usage of surface->sx|sy
          desktop/render: Pass explicit clip box to render
          input: Move get_current_time_msec in from util
          ci: Test wlroots static linking
          readme: Align Danish translation with main README
    
    Kirill Primak (12):
          view: fix saved buffer order
          surface: chase wlr subsurface list/link change
          render: fix -Ddamage=rerender
          view: fix child position calc
          xdg-shell: chase wlr xdg toplevel refactor
          Revert "xdg_shell: schedule configure on maximize requests"
          xdg-shell: remove unused request_maximize listener
          layer-shell: chase wlr layer surface refactor
          layer-shell: check `committed` bitmask
          layer-shell: fix commit handler
          container: fix surface_is_popup()
          output: remove surface buffer damage check
    
    Ludvig Michaelsson (1):
          swaybar: signal status command's process group
    
    M.Zeinali (1):
          readme: use right-to-left marks in ir translation
    
    Manuel Stoeckl (3):
          commands/exec: stop truncating >4095-byte commands
          Update URL to wlroots project (GitHub->GitLab)
          Add 'output render_bit_depth [8|10]' command
    
    Michael Weiser (1):
          Prevent use-after-free on first bar subcommand error
    
    Nathan Schulte (3):
          swaybar: properly draw urgent block right border
          swaybar: properly draw blocks with transparent black border
          swaybar: fix cairo_font_options leak
    
    Nihal Jere (2):
          config.in: use portable hour specifier
          config.in: use swaynag -B instead of -b
    
    Ragnar Groot Koerkamp (5):
          Fix #6299 Disable auto_back_and_forth for next_on_output
          Move auto_back_and_forth logic out of workspace_switch
          Only call workspace_auto_back_and_forth when needed
          Revert "Add workspace {prev,next}_on_output --create"
          Update clang format to better match existing code
    
    Rahiel Kasim (1):
          fix typo in sway-output.5.scd
    
    Rasmus Moorats (1):
          fix cursor input for layer-shell surfaces
    
    RoastVeg (1):
          Handle border width and height on minimum floating sizes
    
    Ronan Pigott (12):
          output: damage whole output when exiting scanout
          container: retain focus position on floating enable
          cmd_fullscreen: allow fullscreen on fullscreen split containers
          workspace: reap empty parents when adding tiles
          xdg-shell: ignore unecessary fullscreen request ouput hints
          cmd_fullscreen: ignore fullscreen request on workspaces
          view: commit transactions for foreign toplevel requests
          layer_shell: damage previous area when a surface shrinks
          command: implement split none
          commands: update split none command for a047b5ee4
          output: change output::destroy to output::disable
          output: emit node::destroy event
    
    Rouven Czerwinski (1):
          view: handle case where map_ws is NULL
    
    Sefa Eyeoglu (3):
          fix: handle NULL from json_tokener_new_ex
          fix: use sane value for json_tokener max_depth
          refactor: use sway_abort instead
    
    Simon Plakolb (2):
          input: Use seatop_down on layer surface click
          seatop_down: End if surface is destroyed or other seatop starts
    
    Simon Ser (57):
          ci: add xcb-util-wm dependency for wlroots
          Remove advice about Firefox from issue template
          readme: make it clearer that meson takes a dir as argument
          build: bump version to 1.6
          build: update wlroots dependency version to 0.14.x
          build: stop checking for logind
          desktop/render: remove unused wlr_gles2_texture_attribs
          Remove WLR_HAS_XDG_FOREIGN checks
          Log wlroots version on startup
          Avoid creating zero-sized textures for titlebars
          Use cairo_image_surface_get_stride instead of guessing it
          Avoid creating zero-sized textures for marks
          Use execlp("sh") instead of execl("/bin/sh")
          commands/exec_always: log error on execlp failure
          Remove support for arbitrary rotations
          build: remove sd-bus status item
          readme: switch back to IRC web client
          Implement xdg-activation-v1
          Iterate over subsurfaces below the parent surface
          build: bump wlroots dependency to 0.15.0
          contrib: drop incr_version script
          build: use meson.global_build_root()
          build: use Dependency.get_variable instead of get_pkgconfig_variable
          build: use ExternalProgram.full_path instead of path
          ci: make Meson warnings fatal
          tree/container: fix indentation
          Update wlr_box includes
          Add support for touch frame events
          Fix wl_pointer.frame not sent on touch emulation
          swaybar: exit cleanly when disconnected from IPC
          swaybar: log Wayland display errors
          Document view_map
          Fallback to other output modes if preferred mode fails
          layer-shell: replace close() with destroy()
          readme: switch to Libera Chat for ir
          readme: link to gamja for IRC
          Rename pango_printf to render_text
          readme: mention seatd
          build: remove scdoc stdin/stdout hack
          Add -Dnoscanout debug option
          readme: add missing space
          Add support for DRM panel orientation
          Chase wlr_xdg_surface breaking changes
          readme: drop recommendation about packaging
          Handle present events with NULL timespec field
          github: don't truncate debug logs
          Remove --my-next-gpu-wont-be-nvidia
          Bump RLIMIT_NOFILE
          Replace wlr_headless_backend_create_with_renderer call
          build: use list for sdbus dep
          Delete .clang-format
          Fixup headless output names
          Add support for linux-dmabuf surface hints
          swaynag: remove xdg-output logic
          swaybar: fix errno handling in status_handle_readable
          Add cairo_image_surface_create error handling
          build: bump version to 1.7-rc1
    
    Simon Zeni (4):
          view: remove reference to wlr_wl_shell_surface
          introduce wlr_drm_lease_v1
          sway: create wlr_renderer and wlr_allocator
          sway: replace noop_output by fallback_output
    
    Tassilo Horn (1):
          Fix compile after wlroots commit c3e54021f8bbf3ec1c1e5906459be0ae85f5fb8c
    
    Tobias Langendorf (1):
          remove usage of `wlr_texture_get_size`
    
    Tobias Stoeckmann (1):
          Fix crash when starting without HOME
    
    Tudor Brindus (2):
          tree/view: don't give focus to views mapped under fullscreen views
          desktop/xwayland: restack surface upon activation
    
    Vsevolod (1):
          Add focused_tab_title
    
    aajonusonline (1):
          sway-ipc.7.scd: fix typo
    
    apt-ghetto (1):
          Fix IRC links in READMEs and templates
    
    ash lea (1):
          container: don't set fullscreen on children
    
    bR3iN (2):
          Add `gaps <type> <scope> toggle <px>` command
          Add smart_gaps inverse_outer command
    
    columbarius (1):
          config: allow whitespaces in config path
    
    frogtile (1):
          man: update Pango font description URL
    
    fwsmit (1):
          desktop/layer_shell: fix centering for opposing anchors
    
    grumpey (1):
          Update Pango font description URL in sway.5.scd
    
    lbonn (1):
          build: subproject support for wayland-protocols
    
    mzeinali (1):
          Add persian README file
    
    novenary (1):
          Don't apply hide_edge_borders to any floating container
    
    quinno (1):
          Fix typo in sway.5.scd
    
    sergio (1):
          details-gackground typo fix
    
    siikamiika (3):
          use node_is_view
          commands/focus: focus view inside container
          view: add new container as a sibling of tiled view
    
    tomKPZ (1):
          Add tab dragging functionality
    
    xdavidwu (1):
          swaynag: fix pointer button events on scaled outputs