github karinushka/paneru v0.3.2
v0.3.2: Bevy All The Way edition.

latest releases: v0.4.0, v0.3.7, v0.3.6...
3 months ago

Overview

This release completes the transition from the original flat Paneru architecture to a native, multi-threaded Bevy ECS (Entity Component System).

Originally inspired by Yabai, Paneru utilized a dual-thread model: one thread received MacOS events and forwarded them to a handler thread for sequential processing. Under the old architecture, implementing true parallelism was difficult because Rust’s strict mutability tracking made it complicated to safely share and modify window state across multiple objects simultaneously.

The move to Bevy ECS solves this by leveraging a system-based architecture. While a main Bevy thread captures MacOS events, window management logic is now handled by independent systems. This asynchronous approach allows Paneru to seamlessly handle concurrent tasks such as animations, timers and timeouts.

New Features

  • Bevy multi-threading. Dispatch and animation systems are in a separate scheduling group for smoother operation.
  • Animation speed is now specified in 1/10th of display width, and not in pixels as before.
  • Allow multiple key bindings for the same command. (#62)
  • Dump internal state command - printstate.

Fixes

  • Display and Workspace events are now again arriving correctly in Tahoe 26.x.
  • Window sizes during display changes (such as docking/undocking) are now correctly updated. (#63)
  • Inner and outer padding of windows are now respected during window positioning.

Contributors

  • chore(nix): derive version from Cargo.toml by @postsolar in #66
  • chore(nix): make HM settings optional by @postsolar in #67
  • Add XDG_HOME_HOME to Launchctl config by @Tubo in #68

Full Changelog: v0.3.1...v0.3.2

Don't miss a new paneru release

NewReleases is sending notifications on new releases.