Repository navigation
animaEngine 1.2.0
animaEngine 1.2.0
Characters can now be scripted. A behavior can be a small
Rhai program from your asset library, and a script can
play sounds that come from where the character is on screen and react to
how busy your machine is.
The rest of the release is fixes, found the way 1.1's were: by running the
overlay and looking at it. This time that also meant a real X server for
the X11 behaviour the test compositor cannot show, and building the
missing tools — a Wayland drag source, a stub tray host — to exercise
features that had never actually been seen working. Several had not.
What you'll notice
- Scripted behaviors. Pick Script as a character's behavior in the
Inspector and point it at a.rhaifile in your asset library. Scripts
are sandboxed — no files, no network, no processes — and bounded, so a
runaway one is stopped and the character holds still. Five worked
examples are in docs/examples/behaviors/. - Sounds. A script can call
play("chirp.ogg"), and the sound is
panned to where the character is: a mascot on the left of the desktop is
heard on the left. WAV, OGG, FLAC, MP3 and the audio track of an MP4. - Machine load. Scripts can read
cpuandmem, overall load from 0
to 1 — totals only; there is no way for a script to learn what is
running. Linux only. - Shortcuts work on any keyboard layout. AZERTY, QWERTZ, Cyrillic:
letters follow what is printed on the key, the number row its position.
German showsStrginstead ofCtrl. - Your config is no longer replaced by the demo scene. A config that
listed only the settings it cared about failed to load, and the next
launch backed it up and overwrote it with the defaults, without a word
on screen. Every setting now has a default, and when a config really
cannot be read, a banner says so and where the original was kept. - On native Wayland, file drops and the tray icon work — for the first
time; both were listed as supported, and neither had ever worked there.
In pass-through, drag the file over the ⚙ corner first; from there the
whole screen accepts the drop. Ctrl+Mno longer makes a character disappear. Moving a character
to another monitor pinned it there without moving it, so it was drawn
off the edge of that screen. It now moves across.anima-engine --versionprints the version.
Under the hood
- One copy of the event handling. The context menu, the command
palette, the Library's "Add to scene", hot-reload, file drops and Shimeji
import each had one implementation per backend, and the copies had
drifted: a stale selection after applying a preset on Wayland, a toast
in English on X11, a Shimeji import that froze the Wayland overlay. They
now share one module. - Hardening: a malformed MP4 can no longer close the app, a small sound
file can no longer decode into gigabytes, and concurrent writes to the
same file can no longer interleave. - Translations: German, Dutch and Spanish each address you one way
throughout instead of switching between formal and informal, and a test
now fails on any notification built from untranslated text. - CI builds the Windows and FreeBSD ports on every push. The Windows
port gained a tray icon and single-instance handling; its unit tests pass
under Wine.
The full list is in CHANGELOG.md.
Packaging
- ALSA is now a dependency, for script sounds: the AUR package depends
onalsa-lib, and the.debpicks uplibasound2automatically.
Building with--no-default-features --features videoleaves sound out. - The Flatpak asks for the PulseAudio socket, without which it cannot
make a sound. That socket also carries recording — Flatpak has no
playback-only permission — so what keeps the app away from your
microphone is that no capture code is compiled in, not the sandbox. See
threat-model.md.
Compatibility
A config.toml from 1.0 or 1.1 loads unchanged; the D-Bus methods, the
existing CLI flags, the accepted asset formats and the file locations are
the same. The script behavior and --version are additions. See
stability-policy.md.
One correction: the docs had named the config and cache directories
~/.config/animaEngine/ and ~/.cache/animaEngine/. On Linux they are,
and always were, lower-case — ~/.config/animaengine/config.toml. If you
ever hand-edited a config at the documented path, the app never read it.
Not in this release
- Windows is not supported yet. The port compiles and its tests pass
under Wine, but it has not been run on Windows. - Nine of the ten locales are machine-translated for the strings added
here, and still want a native-speaker pass.
Known gaps in verification
Checked on a headless compositor with a virtual pointer and keyboard, both
backends, and on a real X server for pointer and window behaviour. Not
verified: sound output (the test setup has no audio device), multi-monitor
on real hardware, the Flatpak build, and anything on Windows.
docs/runtime-findings.md has the detail.