river

[mirror] A dynamic tiling Wayland compositor

GPL-3.0 License

Stars
3K
Committers
63

Bot releases are visible (Hide)

river - river 0.3.0 Latest Release

Published by ifreund 6 months ago

NOTICE: This is the last river release that will be announced on github. The upstream river repository has moved to https://codeberg.org/river/river and this release as well as all past and future releases can be found there.

This one's been in the pipeline for quite a while, it's been over a year since 0.2.0 was released and river has seen significant improvements since then. The past few months I've done my best to fix as many bugs as possible but a non-bugfix release always entails new code reaching a lot of people with diverse setups. If you find a bug in river please open an issue.

Here's a summary of the important changes since river 0.2.

New features:

  • Better rendering performance due to the new wlroots rendering API and gles2 renderer improvements.
  • Finely-grained damage tracking leveraging the wlroots scene graph API.
  • Interactive resize of windows with the cursor from all edges/corners.
  • Basic tablet input support
    • Only the tablet-v2 protocol is is supported, no pointer emulation is done.
    • Drawing with a tablet tool works in inkscape, libreoffice, etc.
    • Tablet pad input devices are not yet supported, tracking issue: https://codeberg.org/river/river/issues/1021
  • Rules system to apply settings to windows with a matching app-id/title. See rule-add in the riverctl(1) man page. The following rule types are added in this release:
    • float/no-float
    • ssd/csd
    • fullscreen/no-fullscreen
    • tags
    • output
    • position
    • dimensions
  • New -current-tags flag for send-to-output
  • New -no-xwayland flag for starting river with xwayland disabled even if built with support.
  • New above, below and after <N> attach modes plus the ability to configure attach mode per output with the new output-attach-mode riverctl command.
  • New -skip-floating flag for focus-view
  • New scroll-factor input configuration option
  • The input-method-v2 and text-input-v3 protocols are supported, with the exception of input-method popups.
  • The presentation-time protocol is supported.
  • The fractional-scale-v1 protocol is supported.
  • The cursor-shape-v1 protocol is supported.
  • The xdg-shell protocol version 5 is supported, up from version 2.

Breaking changes compared to 0.2:

  • River now honors the client-side vs server-side decoration wishes of clients by default instead of attempting to force server-side decorations everywhere. To approximate the old behavior the command riverctl rule-add ssd may be used.
  • The float-filter-add and csd-filter-add riverctl commands have been removed, use rule-add instead and see the riverctl(1) man page for documentation.
  • The attach-mode riverctl command is deprecated and currently aliased to the new default-attach-mode command. The alias may be removed in the future.
  • Rendering order has changed slightly and and is now based off of focus order instead of window management stack order.
  • Pointer constraints have been reimplemented and the new implementation does less automatic warping of the cursor.

Packaging changes:

Community:

Thank you to everyone who has contributed code and bug reports to river! River would no be where it is today without you.

Thanks as well to everyone who has donated to me in support of river's development, your support means a lot to me.

If my work on river adds value to your life and you'd like to support me financially you can find donation information here.

Alexander Courtis (1):
      wlr-output-management: apply adaptive sync state

Doclic (2):
      river: make RuleList return deleted items
      river: add outputs rule

Hugo Machet (9):
      ci: Use meson setup command
      View: fix pointer comparison in notifyTitle()
      completions: Rewrite zsh
      completions/zsh: Fix incomplete input names
      river: add -no-xwayland cli flag
      InputConfig: Implement disable while trackpointing
      example/init: Replace light with brightnessctl
      completions: Add missing completions
      mailmap: map Hugo's old emails to new one

Isaac Freund (250):
      build: bump version to 0.3.0-dev
      rivertile: fix code to disallow 0 main count
      session-lock: wait for present before locking
      session-lock: fix assertion failure due to race
      session-lock: fix assertion failure on abnormal client behavior
      render: fix rounding for fractional scaling
      deps: update to Zig 0.10
      flags: further cleanup after Zig 0.10
      deps: update zig-wayland to fix build on aarch64
      Seat: rework Xwayland Override Redirect focus
      command/layout: fix a memory leak
      session-lock: properly handle disabled outputs
      idle-inhibit: fix use-after-free
      wlr-output-management: leverage new wlroots APIs
      session-lock: fix assertion failure on hot-plug while locked
      wlr-output-management: fix bug due to zig miscompilation
      docs: fix typos in riverctl man page
      docs: remove repology badge from readme
      Seat: guard setFocusRaw() usage while locked
      deps: update to latest zig-wayland/zig-wlroots
      deps: update to latest zig-wayland/zig-wlroots
      Keyboard: fix keyboard-layout mapping crash
      pointer-constraints: remove protocol
      render: remove damage tracking
      wlr-foreign-toplevel-management: remove protocol
      render: use wlr_scene to render views
      Cursor: remove surfaceAt()
      session-lock: use the scene graph
      Output: use separate scene trees for layers
      View: implement borders with scene graph
      Xwayland: create scene tree
      View: remove dead code
      LayerSurface: render using the scene graph
      XdgPopup: reimplement using the scene graph
      xdg-shell: implement version 5
      DragIcon: render using the scene graph
      Xwayland: render using the scene graph
      View: use saved surface trees for transactions
      river: rework core data structures & transactions
      OutputStatus: rework implementation
      LayerSurface: fix use-after-free on destroy
      river: fix various fullscreen related bugs
      csd-filter-add/remove: add missing applyPending()
      Root: centralize focus(null) calls in applyPending()
      Output: inline renderOutput function
      session-lock: fix race with multiple outputs
      Root: fix more fullscreen bugs
      View: move borders state to State struct
      View: clamp to output on exiting float/fullscreen
      Root: fix use of view.current before update
      Output: fix background of transformed outputs
      View: only send configures through transactions
      View: fix frame perfection on unmap
      river: render floating views above the layout
      View: handle destroy during inflight layout demand
      Xwayland: fix has_fixed_size heuristic for floating
      XdgToplevel: fix size_changed check on commit
      Root: keep all fullscreen views the correct size
      Xwayland: hide override redirect windows if locked
      deps: update zig-wlroots to fix Xwayland crash
      Cursor: allow resizing from all edges
      xdg-shell: honor client move/resize requests
      View: rework configure abstraction
      Cursor: store offset and warp cursor during move
      river: fix a few leaks
      river: clean up some uneeded TODOs
      SceneNodeData: allow access from wlr_surfaces
      Server: remove headless backend
      presentation-time: support protocol
      Cursor: use pending position to warp during move
      Seat: use the grab aware API to clear focus
      pointer-constraints: implement protocol
      Xwayland: only raise views if activated
      wlr-foreign-toplevel-management: implement protocol
      river: improve comments on pending/inflight/current
      Seat: fix potential assertion failure
      layer-shell: apply exclusive zones in separate pass
      Xwayland: eliminate unneeded user data usage
      XdgToplevel: clean up wlr_surface data on destroy
      river-status: only send layout name if changed
      example/init: Fix confusing comments
      xdg-shell: determine tiled state by float state
      View: add `none` impl tag for better safety checks
      xdg-decoration: clean up implementation
      river: add rules system
      docs: fix typo in riverctl man page
      example/init: update for rules system
      doc: fix typo in riverctl man page
      Output: reinitialize output_status, cleanup
      Root: remove incorrect assertions in addOutput()
      Root: separate fallback list to handle 0 outputs
      Cursor: fix warp on output change with no views
      XdgToplevel: ensure view dimensions match geometry
      Cursor: lock to current geometry during move/resize
      Cursor: apply x/y change during resize on commit
      build: work around zig 0.10.0 bug to fix CI
      LayerSurface: handle focus when switching outputs
      LayerSurface: fix surfaces on multiple outputs at once
      session-lock: fix assertion failures and clean up
      XdgToplevel: store scene node in wlr_surface data
      river-layout: Remove incorrect assertion
      build: update to Zig 0.11.0
      View: clean up after Zig update
      Cursor: use total delta for resize calculation
      docs: explain unknown info in output identifiers
      docs: update PACKAGING.md for Zig 0.11
      DragIcon: set position on creation
      rivertile: eliminate an @intCast()
      Cursor: use inflight_mode as needed in updateState()
      XdgToplevel: tweak fullscreen state policy
      pointer-constraints: fix assertion failure
      rules: rename "tag" action to "tags"
      xdg-toplevel: ignore redundant move/resize requests
      river: remove dead code
      View: handle map while no outputs are available
      Cursor: clamp cursor movement to resize bounds
      Cursor: fix high polling rate resize regression
      session-lock: fix pointer focus handling on map
      build: update to wlroots 0.17
      SceneNodeData: fix fromNode()
      Output: fix regression of initial mode logic
      Root: fix faulty assertion, cleanup
      Output: fix initial commit for wayland backend
      ci: fix arch and alpine
      build: fix comment on scanner.generate() versions
      deps: update to lastest zig-wlroots
      gamma-control: track wlroots 0.17 changes
      output-management: fix output config application
      output-management: work around wlroots crash
      build: require at least wlroots 0.17.1
      TextInput: remove pending_focused_surface
      TextInput: handle multiple text inputs correctly
      TextInput/InputRelay: style nits
      TextInput: fix consecutive enable requests
      Keyboard: clarify keypress routing logic
      XdgToplevel: fix frame perfection on unmap
      river: drop support for wl_drm
      linux-dmabuf: send better per-surface feedback
      xdg-activation: fix race with transaction system
      Cursor: clean up cursor theme loading
      Keyboard: delete some uneeded code
      Output: fix possible crash on destroy
      river: re-add wl_drm support for now
      Keyboard: fix mapping XF86ScreenSaver
      Seat: fix potential crash in handleMapping()
      Root: remove unneeded fallback.inflight lists
      Root: fix stack order on restore from 0 outputs
      river: log version during startup
      Keyboard: check translated keysyms for mappings
      Keyboard: don't send enter before keymap event
      river: fix -log-level filtering
      Root: use Output.PendingState for fallback
      attach-mode: code/documentation style tweaks
      xdg-toplevel: handle destroy before xdg-decoration
      command/zoom: always warp cursor if configured
      View: clip scene tree to output
      XdgToplevel: handle configure timeout gracefully
      View: don't clip off CSD shadow and the like
      Keyboard: style/naming nits and comment tweaks
      Keyboard: ignore >32 simultaneous key presses
      command/input: cleanup memory manangement a bit
      command/map: remove references to locked mods
      Root: trival code cleanup in deactivateOutput()
      InputConfig: simplify libinput API usage
      XdgToplevel: handle timed out state in configure()
      Root: fix crash on output disable
      Root: fix crash on deinit()
      rules: fix assertion failure
      XdgToplevel: work around buggy clients
      InputConfig: code style cleanups
      output-management: fix output destroy handling
      Root: fix auto-layout output coordinates
      linux-dmabuf: disable per-surface feedback
      deps: update to latest zig-wayland and zig-wlroots
      river: only expose xwayland_shell_v1 to Xwayland
      mailmap: map Isaac's old email to the new one
      build: enable frame pointers in release safe
      View: clean up attach-mode code, add assert
      Root: reduce transaction timeout to 50ms
      View: remove faulty assertion
      tablet-v2: implement tablet tool support
      build: require wlroots version 0.17.2
      deps: switch to codeberg upstreams, update
      View: improve transaction timeout handling
      View: fix SSD desync on consecutive timeouts
      Server: clean up initialization
      Layout: eliminate "self" naming convention
      Root: eliminate "self" naming convention
      Seat: eliminate "self" naming convention
      Output: eliminate "self" naming convention
      View: eliminate "self" naming convention
      Cursor: eliminate "self" naming convention
      XdgToplevel: eliminate "self" naming convention
      XwaylandView: eliminate "self" naming convention
      Mapping: eliminate "self" naming convention
      XwaylandOverrideRedirect: eliminate "self" naming convention
      InputManager: eliminate "self" naming convention
      Keyboard: eliminate "self" naming convention
      Config: eliminate "self" naming convention
      LayoutManager: eliminate "self" naming convention
      idle-inhibit: fix naming, eliminate "self" naming convention
      InputConfig: eliminate "self" naming convention
      SeatStatus: eliminate "self" naming convention
      StatusManager: eliminate "self" naming convention
      PointerMapping: eliminate "self" naming convention
      LayoutDemand: eliminate "self" naming convention
      Mode: eliminate "self" naming convention
      Control: eliminate "self" naming convention
      SwitchMapping: eliminate "self" naming convention
      Switch: eliminate "self" naming convention
      Vector: eliminate "self" naming convention
      RuleList: eliminate "self" naming convention
      Server: remove all listeners on deinit()
      pointer-gestures: move to input manager
      security-context: implement protocol
      XdgToplevel: validate move/resize request serial
      touch: handle cancel event, fix assertion failure
      deps: update zig-wayland for a minor cleanup
      Root: increase transaction timeout to 100ms
      View: fix potential assertion failure on destroy
      layer-shell: crop surfaces to output bounds
      docs: migrate to codeberg
      command/map: add note about upstream xkbcommon fix
      codeberg: add bug report issue template
      codeberg: maybe fix issue template
      codeberg: maybe fix issue template take 2
      docs: update wiki url
      docs: update release urls for codeberg migration
      logo: add an official river logo
      docs: update README stability disclaimer
      docs: fix typo in previous commit
      ci: migrate to codeberg
      View: always check if current.output is null
      logo: use adaptive color/no background for readme
      View: fix assertion failure if focused while destroying
      Output: fix possible assertion failure on enable
      Root: fix leak on view destroy
      View: add more assertions around destruction
      river: raise the file descriptor limit
      docs: add Code of Conduct
      docs: fix broken link in coc
      docs: fix another broken link in the coc
      logo: make readme logo bigger on small displays
      docs: redefine Code of Conduct scope
      docs: update URL in man pages
      layer-surface: close if exclusive zones too large
      input: minor fixes and cleanups for scroll-factor
      docs: freshen up readme with text from website
      docs: remove website url at top of readme
      build: bump version to 0.3.0

István Donkó (2):
      keyboard: add the ability to load layout from file
      input: add scroll-factor configuration

Leon Henrik Plickat (16):
      completions: add keyboard-layout
      riverctl: Add error messages for failed connections
      river: allow settings child type of RuleList
      river: change order of colums in list-rules command
      river: add tags rule
      river: fix crash when trying to add tag rule without tag argument
      river: focus-view and swap by spatial direction
      river: fix spatial direction focusing / swapping
      Keyboard: Add new keyboards to groups if matched
      keyboard-groups: use globber for identifier matching
      refactor input configuration
      river: fix names of input config settings
      command/input: support globs
      View: restore to previous output on reconnect
      TabletTool: use "pencil" cursor shape
      command/focus-view: add -skip-floating

LordMZTE (2):
      river: clear up docs on -c parameter
      command/input: add map-to-output

MaxVerevkin (4):
      render: premultiply alpha for user-provided colors
      river: Implement fractional_scale_v1
      Cursor: actually set xcursor_name
      river: Implement cursor_shape_v1

Orfeas (1):
      attach-mode: implement after <N>

Pablo Ovelleiro Corral (1):
      command/send-to-output: add -current-tags flag

Peter Kaplan (3):
      command/attach-modes: above and below options
      completions/zsh: Update attach-modes
      View: Add attachRelative function

Sage Hane (1):
      editorconfig: fix typo

Väinö Mäkelä (1):
      XdgToplevel: keep wlroots updated on view sizes

Wouter van Heijst (1):
      Cursor: Focus follows cursor focuses empty outputs

Yutaro Ohno (1):
      README: update required wlroots version to 0.17.2

Zakariyya Von Forslun (2):
      Seat: keep parent Xwayland view of a focused OR surface activated
      Cursor: fix incorrect lock manager state assertion

alex (1):
      river: fix bug in snap down / right

polykernel (2):
      river: add position and dimensions rules
      river: add fullscreen rule

praschke (5):
      river: Implement input_method and text_input
      input-method: setKeyboard already sends modifiers
      input-method: send text-input enter event after all leave events
      input-method: check that the input method is active when committing
      input-method: address nits

tiosgz (19):
      Server: remove debug leftover
      river: update some comments
      Root: rename field outputs to active_outputs
      Root: make 'fallback output empty' assertion stricter
      Root: migrate {all,active}_outputs to wl.list
      Root: fix inflight_layout_demands counting
      Cursor: keep focus_follows_cursor_target updated
      riverctl: rule-{add,del}: reorder parameters
      completions/fish: partial overhaul
      completions/bash: complete input devices, fix typos
      editorconfig: reflect state of bash completion
      riverctl(1): add a section on terminology
      Keyboard: fix key handling/eating logic
      Keyboard: eat key before running mapping
      KeycodeSet: move to Keyboard.zig
      Keyboard: rework key processing semantic
      deps: update zig-wlroots
      Keyboard: don't crash when coming from a different tty
      Keyboard: ignore multiple presses of a key
river - river 0.2.6

Published by ifreund 11 months ago

Well, I managed make a typo during the Zig upgrade for 0.2.5 which broke
input device identifiers. This release fixes that.

Hopefully that's the only regression I managed to introduce from 0.2.4 but
if something else comes up release numbers are luckily pretty cheap :)

Full changelog:

Isaac Freund (3):
      build: bump version to 0.2.6-dev
      InputDevice: fix identifier generation
      build: bump version to 0.2.6
river - river 0.2.5

Published by ifreund 11 months ago

This release makes no functional changes since 0.2.4. The only difference
is that it requires Zig 0.11 rather than Zig 0.10.

I had originally planned for 0.3.0 to be the next release and to update the
zig version required then, but 0.3.0 is taking longer than expected to wrap up
at my quality standards. Distro maintainers requested a Zig 0.11 compatible
release to ease packaging until 0.3.0 is done.

Full changelog:

Isaac Freund (3):
      build: bump version to 0.2.5-dev
      build: update to Zig 0.11.0
      build: bump version to 0.2.5
river - river 0.2.4

Published by ifreund over 1 year ago

This release fixes yet another small handful of bugs, including a couple of
assertion failures causing crashes. With luck this may be the last 0.2.x
bugfix release though if any more bugs are found and fixed I'll likely tag
another in a month or so. Thank you all for the bug reports and patches!

Full changelog:

Alexander Courtis (1):
      wlr-output-management: apply adaptive sync state

Isaac Freund (6):
      build: bump version to 0.2.4-dev
      session-lock: fix assertion failure on hot-plug while locked
      docs: fix typos in riverctl man page
      docs: remove repology badge from readme
      Seat: guard setFocusRaw() usage while locked
      build: bump version to 0.2.4
river - river 0.2.3

Published by ifreund over 1 year ago

This release fixes a handful of bugs. Notably, dropdown menus and
similar should work more reliably for X11 clients using the Xwayland
compatibility layer. Thank you all for the bug reports and patches!

Full changelog:

Hugo Machet (1):
      View: fix pointer comparison in notifyTitle()

Isaac Freund (7):
      build: bump version to 0.2.3-dev
      deps: update zig-wayland to fix build on aarch64
      Seat: rework Xwayland Override Redirect focus
      command/layout: fix a memory leak
      session-lock: properly handle disabled outputs
      idle-inhibit: fix use-after-free
      build: bump version to 0.2.3

Zakariyya Von Forslun (2):
      Seat: keep parent Xwayland view of a focused OR surface activated
      Cursor: fix incorrect lock manager state assertion
river - river 0.2.2

Published by ifreund almost 2 years ago

This release updates the Zig version required to 0.10. Other than that,
there are no changes since version 0.2.1.

Full changelog:

Isaac Freund (4):
      build: bump version to 0.2.2-dev
      deps: update to Zig 0.10
      flags: further cleanup after Zig 0.10
      build: bump version to 0.2.2
river - river 0.2.1

Published by ifreund almost 2 years ago

This release contains a handful of bugfixes and minor improvements that
didn't quite make it in to the 0.2.0 release. Thank you all for the
bug reports and patches!

Full changelog:

Hugo Machet (1):
      ci: Use meson setup command

Isaac Freund (7):
      build: bump version to 0.2.1-dev
      rivertile: fix code to disallow 0 main count
      session-lock: wait for present before locking
      session-lock: fix assertion failure due to race
      session-lock: fix assertion failure on abnormal client behavior
      render: fix rounding for fractional scaling
      build: bump version to 0.2.1

Leon Henrik Plickat (1):
      completions: add keyboard-layout

MaxVerevkin (1):
      render: premultiply alpha for user-provided colors

alex (1):
      river: fix bug in snap down / right
river - river 0.2.0

Published by ifreund almost 2 years ago

river 0.2.0

This release brings many new features and improvements, as well as a few
small breaking changes since river 0.1. Many thanks to everyone who
contributed and happy New Year!

New features:

  • Touch input is supported for clients that accept touch input. No
    pointer emulation is implemented yet.
  • ext-session-lock-v1 is supported. This is a more robust protocol for
    screenlocking that I developed earlier this year. See this blog
    post
    for more information.
  • ext-idle-notify-v1 is supported. This replaces the KDE idle
    protocol, support for which has been removed.
  • riverctl focus-output and riverctl send-to-output may target an
    output by name.
  • riverctl map has a new -layout flag which may be used to map keys
    independent of the currently active keyboard layout.
  • riverctl keyboard-layout allows setting the keyboard layout and xkb
    options at runtime.
  • riverctl map-switch allows running a command when e.g. a laptop
    lid is closed.
  • riverctl map-pointer may run arbitrary commands.
  • riverctl focus-follows-cursor has a new always mode.
  • riverctl set-cursor-warp has a new on-focus-change mode.
  • The cursor may be (automatically) hidden with the new
    riverctl hide-cursor command.
  • Keyboard groups are now supported with the new
    riverctl keyboard-group-create and related commands.
  • wlr-output-management-unstable-v1 version 4 is now implemented,
    which means that adaptive sync or VRR may be enabled using a suitable
    client.
  • wp-single-pixel-buffer-v1 is supported.
  • The river-status-unstable-v1 protocol has been extended to expose
    the current mode and layout name to clients such as status bars.
  • The river-layout-v3 protocol has been extended to expose the
    currently active tags when a command is sent to the layout generator
    client.

Breaking changes compared to 0.1:

  • Input device names are now prefixed with the device type 422cd3e.
  • The riverctl spawn-tagmask command applies globally 39104ae.
  • Support for the input-inhibit protocol has been removed 78a46c3.
    Lock screens should now use ext-session-lock-v1
  • Support for the org_kde_kwin_idle protocol has been removed
    6ac3928. The ext-idle-notify-v1 protocol should be used instead.

Packaging changes:

  • wlroots 0.16 is required as a build dependency instead of 0.15.
Aiz (1):
      river-status: fix typo in layout_name_clear description

Alexander Courtis (1):
      map-pointer: allow running arbitrary commands

Andrea Feletto (1):
      river: support wp-single-pixel-buffer-v1

Campbell Barton (1):
      contrib: mention default-layout command in FAQ

Daniel Eklöf (3):
      completions: zsh: new completions for the ‘hide-cursor’ command
      completions: bash: new completions for the ‘hide-cursor’ command
      completions: fish: new completions for the ‘hide-cursor’ command

Duncan Overbruck (1):
      Cursor: Add a hide-cursor command

Hugo Machet (10):
      docs: update zig version required in readme
      rivertile: Use saturating addition
      command/map: Warn users on keybinding overwritten
      Xwayland: Handle minimize request
      ci: Add sourcehut builds
      Mode: Use ArrayListUnmanaged to save memory
      code: Cleanup use of std library for consistancy
      command: Remove allocator arg
      ci: Update to zig 0.9.1
      ci: Fix builds manifests

Isaac Freund (95):
      build: bump version to 0.2.0-dev
      docs: clarify description of dependencies
      docs: remove reference to /etc/river/init
      Cursor: fix pointer drags with focus-follows-cursor
      Cursor: add workaround in pointer drag termination
      layer-shell: tighten up handling of large margins
      common/flags: make argFlag() return a slice
      river: update to wlroots 0.15.0
      Cursor: dedup XcursorManager.setCursorImage() calls
      layer-shell: fix regression from wlroots 0.15 update
      ci: update for wlroots 0.15.0
      Cursor: properly handle clients setting the cursor image
      Subsurface: add commit listener on create if mapped
      river: remove wlroots 0.14 workarounds
      docs: soften the README disclaimer a bit
      build: update to zig version 0.9.0
      Cursor: fix down mode motion events for subsurfaces
      Xwayland: move window to top of X11 stack on focus
      Seat: do a better job of cleaning up listeners
      Cursor: remove minor outdated workaround
      XdgPopup: fix unconstrain from box coords
      command/map: add Alt/Super as aliases for Mod1/Mod4
      example/init: Use Alt/Super aliases
      docs: fix typo in river(1) man page
      XdgPopup: remove commit listener on destroy if mapped
      layer-shell: center when opposing anchors are set
      wlr-output-management: simplify implementation
      ci: run on 0.1.x branch
      code: relicense to GPL-3.0-only
      View: fix/simplify logic in applyPending()
      View: use last set fullscreen state in applyPending()
      rivertile: properly validate -main-ratio flag
      rivertile: use u31s to remove most @intCast()s
      DragIcon: Properly initialize if already mapped
      doc: Add additional style rule to CONTRIBUTING.md
      layer-shell: allow surfaces larger than the output
      layer-shell: fix overflow with large bottom margin
      Cursor: Don't passthrough() on update if hidden
      ci: make wget output non verbose
      deps: update to latest zig-wayland
      layer-shell: fix overflow if desired size exceeds output bounds
      build: follow semantic versioning for -dev versions
      Output: remove overzealous assert
      build: add -Dstrip and -Dpie build options
      docs: create PACKAGING.md
      docs: expand on -Dcpu in PACKAGING.md
      docs: add note on example init file to PACKAGING.md
      Xwayland: handle override redirect state changes
      View: refactor initialization
      ci: fix xbps invocation
      Xwayland: Rename XwaylandUnmanaged to XwaylandOverrideRedirect
      river-status: add mode event to seat status
      river-status: only send mode event if client bound version 3
      Cursor: revive 'always' focus-follows-cursor mode
      build: don't scan xdg-output
      example/init: don't use exec
      InputDevice: move to separate file
      InputDevice: use "switch" in input device names
      Seat: refactor InputDevice handling
      Cursor: implement initial touch support
      deps: update to latest zig-wlroots
      Xwayland: fix View.fromWlrSurface for OR surfaces
      deps: update to latest zig-wlroots
      ci: explicitly install libevdev
      Seat: send enter event on keyboard device creation
      river: fix SIGPIPE handling, cleanup fork/execve
      layout: only arrange on user command if layout is active
      layer-shell: start transaction on map
      river: refactor keyboard groups implementation
      river: update to wlroots 0.16
      ci: update to wlroots 0.16.0 and wayland 1.21.0
      ci: remove Void Linux CI
      input-inhibit: remove support for protocol
      ext-session-lock: implement protocol
      session-lock: add basic logging
      session-lock: send wl_pointer.enter immediately
      deps: update to latest zig-wlroots
      example/init: run rivertile in background
      map-pointer: minor fixes and cleanups
      river-layout: fix version of layout_name events
      View: honor fullscreen requests before map
      build: handle wlroots built without xwayland support
      idle: support ext-idle-notify-v1, drop KDE protocol
      flags: rewrite to allow [:0]const u8 arguments
      command/keyboard-layout: use flags.zig, cleanup
      docs: improve keyboard layout documentation
      command/map: use flags.zig, cleanup
      flags: automatically prepend '-'
      session-lock: fix potential race
      Config: use a single xkb keymap for all keyboards
      touch: support drag and drop
      layout: fix size of CSD views
      river-control: update zig-wayland to fix leak
      command/spawn-tagmask: apply globally
      build: bump to version 0.2.0

Jackson Abascal (1):
      input: fix typo in natural-scroll

Jan Evers (1):
      example/init: fix typos

Justin Wood (1):
      docs: Fix typo in readme

Leon Henrik Plickat (13):
      Cursor: improve output focus handling on button press
      Cursor: update image if needed on xcursor theme change
      input: keep applying input configs after first match
      input: Improve input device name format
      rivertile: Use saturating arithmetics to prevent over-/underflow when using user defined values
      river: error out if default init is not executable
      river: keep floating views within bounds when sending to output
      river-layout: add user_command_tags event
      river: advertise correct version of layout protocol
      river: add keyboard groups
      river-status: expose current layout name
      river: add keyboard-layout command
      river: fix resize command

Leonardo Gibrowski Faé (1):
      docs: fix typo in river(1) man page

MaxVerevkin (2):
      river-status: correctly advertise version 4
      river-control: mark callback events as destructors

Nick Hastings (1):
      contrib: add desktop file

Peter Kaplan (4):
      input: add map-switch/unmap-switch commands
      command/hide-cursor: fix crash on missing option
      command/map: layout-pinned mappings
      Mapping: Do not translate keys with xkb

Wannes De Meyer (1):
      docs: fix wlroots link in readme

Zakariyya Von Forslun (5):
      xwayland-unmanaged: handle focus on map/cursor button
      cursor: fix Xwayland unmanaged surfaceAt coordinates
      Xwayland: add handling of override redirect listeners
      Cursor: fix focus for Xwayland override redirect windows
      Xwayland: restrict OR focus changes based on ICCCM input model

dfangx (1):
      idle-inhibit: implement protocol

pmkap (1):
      command: allow targeting outputs by name

shironeko (3):
      river: ignore SIGPIPE to avoid weird exits
      Cursor: add on-focus-change option
      Rework focus-follows-cursor to work with warp

taupiqueur (1):
      docs: fix typo in readme

tiosgz (9):
      view: stop enforcing custom minimum size
      Switch: register destroy listener
      Keyboard: eat key release event for mappings
      Seat: avoid leaking eaten keys to client on focus
      docs: better connect 'index' to -layout in riverctl(1)
      Output: retry other modes if preferred fails
      XdgPopup: fix unconstrain rect with layer surfaces
      LayoutDemand: handle too many view dimensions correctly
      session-lock: handle output unplugging better
river - river 0.1.3

Published by ifreund over 2 years ago

This release contains many bug fixes and a few small improvements. Thank
you to all our users for the bug reports!

River's license has also been changed from GPL-3.0-or-later to GPL-3.0-only.

Full changelog:

Hugo Machet (4):
      docs: update zig version required in readme
      rivertile: Use saturating addition
      command/map: Warn users on keybinding overwritten
      Xwayland: Handle minimize request

Isaac Freund (17):
      build: bump version to 0.1.3-dev
      Cursor: fix down mode motion events for subsurfaces
      Xwayland: move window to top of X11 stack on focus
      Seat: do a better job of cleaning up listeners
      Cursor: remove minor outdated workaround
      XdgPopup: fix unconstrain from box coords
      command/map: add Alt/Super as aliases for Mod1/Mod4
      example/init: Use Alt/Super aliases
      docs: fix typo in river(1) man page
      XdgPopup: remove commit listener on destroy if mapped
      layer-shell: center when opposing anchors are set
      wlr-output-management: simplify implementation
      ci: run on 0.1.x branch
      code: relicense to GPL-3.0-only
      View: fix/simplify logic in applyPending()
      View: use last set fullscreen state in applyPending()
      build: bump version to 0.1.3

Justin Wood (1):
      docs: Fix typo in readme

Leon Henrik Plickat (2):
      Cursor: update image if needed on xcursor theme change
      input: keep applying input configs after first match

Nick Hastings (1):
      contrib: add desktop file
river - river 0.1.2

Published by ifreund almost 3 years ago

This release updates the Zig version required to 0.9.0. Other than that,
there are no changes since version 0.1.1.

Full changelog:

Isaac Freund (3):
      build: bump version to 0.1.2-dev
      build: update to zig version 0.9.0
      build: bump version to 0.1.2
river - river 0.1.1

Published by ifreund almost 3 years ago

This release updates the wlroots requirement to 0.15. It also contains a
handful of bug fixes and minor improvements. There are no breaking changes.

Full list of changes:

Isaac Freund (16):
    build: bump version to 0.1.1-dev
    docs: clarify description of dependencies
    docs: remove reference to /etc/river/init
    Cursor: fix pointer drags with focus-follows-cursor
    Cursor: add workaround in pointer drag termination
    layer-shell: tighten up handling of large margins
    common/flags: make argFlag() return a slice
    river: update to wlroots 0.15.0
    Cursor: dedup XcursorManager.setCursorImage() calls
    layer-shell: fix regression from wlroots 0.15 update
    ci: update for wlroots 0.15.0
    Cursor: properly handle clients setting the cursor image
    Subsurface: add commit listener on create if mapped
    river: remove wlroots 0.14 workarounds
    docs: soften the README disclaimer a bit
    build: bump version to 0.1.1

Leon Henrik Plickat (1):
    Cursor: improve output focus handling on button press

Wannes De Meyer (1):
    docs: fix wlroots link in readme
river - river 0.1.0

Published by ifreund almost 3 years ago

This is the first river release!

A brief introduction: https://isaacfreund.com/blog/river-intro

Thanks to all our wonderful contributors:

Isaac Freund
Leon Henrik Plickat
Marten Ringwelski
novakane
Lennard Hofmann
FollieHiyuki
Ben Fiedler
Bonicgamer
Keith Hubbard
Callum R. Renwick
lazy-dolphin
Alex Mohr
Alexander Taylor
Alexey Yerin
Anatole Lefort
Euro20179
Michal Siedlaczek
Peter Rice
Qiu
Rafael Escobar
Steef Hegeman
Viktor Nagy
foxfromabyss
skuzzymiglet