Skip to content

sway 1.7

Compare
Choose a tag to compare
@emersion emersion released this 22 Jan 23:03
· 632 commits to master since this release
1.7

Sway 1.7 contains 211 changes from 77 contributors.

This release depends on wlroots 0.15.0. Also see the wlroots release notes: https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/0.15.0.

New features

  • Add output render_bit_depth command to enable high-bit depth composition.
  • Tabs can now be dragged with the mouse.
  • Zero-copy direct scanout for fullscreen windows should work more reliably thanks to linux-dmabuf surface feedback.
  • Add support for virtual reality headsets via DRM leasing.
  • Wayland-native urgency has been implemented via the xdg-activation-v1 extension.
  • Add output dpms toggle command to easily toggle screen blanking from scripts.
  • Add gaps <type> <scope> toggle <px>, smart_gaps inverse_outer and split none commands.
  • Add output modeline command to set a full custom DRM mode when custom modes don't work out-of-the-box.
  • Add client.focused_tab_title color option.

Changes

  • --my-next-gpu-wont-be-nvidia has been removed, use --unsupported-gpu instead. The Nvidia proprietary driver remains unsupported. See b48cb6b for details.
  • The terminal emulator in the default config file has been changed to foot.
  • swaybar and swaynag can now be disabled at build-time.
  • Titlebars now have a fixed height, they no longer resize depending on characters used in the title.
Full changelog
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