Repository navigation
Releases: jturbide/niri-fx
Release list
NiriFX 0.22.2
NiriFX 0.22.2 repairs managed Studio launchers that exit before opening a window. It is a focused patch based on 0.22.1; compositor patches, shaders, effect defaults and document schemas are unchanged.
Fixed
- New managed launchers select the native editor explicitly, so automatic shell detection cannot send native storage options to another adapter.
- Older retained launchers also work after a reviewed tools update. Their existing dispatcher and recovery metadata remain intact.
- Explicit conflicting targets continue to fail before configuration changes.
Updating an existing installation
An installed package update does not automatically replace retained tools. For an adopted Arch installation, update niri-fx, then run /usr/bin/niri-fx native adopt, review its plan and apply the reported fingerprint. For a managed wheel/source installation, install the wheel in a new persistent environment and follow the tools update workflow. Keep older runtimes and saved effects.
Save any open draft and reopen Studio after selecting the updated tools. While preparing the update, an older installation can open the editor with niri-fx studio --target native.
Downloads and scope
The wheel contains Studio and CLI tools. The source archive also contains documentation, examples and the matching compositor build inputs. Verify downloads using SHA256SUMS.
The complete Arch package remains available through AUR. Browser previews and package checks do not extend the documented physical desktop acceptance. Development-branch preview features and compositor changes are outside this patch.
NiriFX 0.22.1
NiriFX 0.22.1 improves session update and startup recovery. Niri is the sole compositor target.
Effect defaults, compositor patches and document schemas are unchanged. Adopted
sessions keep their retained tools until an explicit reviewed update; see
upgrade guidance.
Changed
- Public guides and roadmap focus on Niri effects, the NiriFX session and
integrations for Niri-compatible shells.
Fixed
- Retrying an interrupted packaged-session update resumes matching partial
compositor copies for both shared and frozen settings. Changed or unexpected
files are preserved and refused; the previous selection remains available. - Session startup distinguishes an unavailable compositor executable from a
rejected configuration, and retained tool startup failures include recovery
guidance. Failed startup keeps the selected runtime and saved effects in place.
Installation and upgrades
Choose one complete AUR package: niri-fx or niri-fx-git. Both include the tools, compositor and login entry. Existing adopted sessions use /usr/bin/niri-fx native adopt without --config to review the update before Apply. See upgrading and Arch installation.
The Python wheel provides tools; the source archive contains the native build inputs. Package updates do not automatically select or restart a compositor.
Validation and limits
Validation includes 796 Python tests, 140 Node tests, browser rendering and Studio workflows, and GLSL/stock Niri checks for all 96 styles and profiles. Both complete Arch packages passed clean builds, archive inspection, two-user adoption/removal and dependency recovery checks. A rebuild of the signed 0.22.0 release upgraded to 0.22.1 with its saved recipe preserved; compositor and tools rollback also passed.
Physical login, GPU rendering, mixed monitors, screen sharing and suspend remain separate acceptance gates. This 0.x prerelease does not claim 1.0 stability. See validation.
NiriFX 0.22.0
NiriFX 0.22 packages the complete product in either niri-fx or niri-fx-git: Studio, CLI, presets, compositor and login entry. Choose the release channel or development channel; no separate compositor package is needed. You can keep using the tools with stock Niri.
Added
- Reviewed
native adoptfor packaged full sessions. It retains tools and the
compositor in user storage, preserves saved effects and shared desktop settings
on upgrade, and keeps earlier selections available for rollback. Package
replacement does not switch the running or next-login version automatically. - Complete Arch/AUR packages in two channels:
niri-fxfor releases and
niri-fx-gitfor development. Both include Studio, CLI, presets, the full
compositor and a login entry. They build tools and compositor from the same
source revision; no separate compositor package is needed. - Offline compilation from prepared pinned source and relocatable compositor
provenance. The producer strips its executable before recording its identity.
Changed
- Updating from the earlier Arch tools-only packages also installs the full
compositor. Existing users can keep using stock Niri and the tools; package
installation does not enable effects, adopt a session or change configuration. - Native output diagnostics compare both capture orders and count owned child
surface submissions against parent receipts. All 12 baseline cases still
reproduce stale output; the report narrows the investigation without claiming
a rendering or privacy fix.
Fixed
- The Arch compositor recipe disables makepkg's C/C++ LTO flags to avoid missing
PipeWire helper symbols when linking with Rust. Rust's release optimizations
remain enabled.
Installation
Arch installation and upgrades cover the complete AUR packages. Updating does not activate a session or change effects. The Python wheel remains available for standalone tools installations; the source archive includes the full native build inputs.
Validation and limits
Both complete packages passed clean Arch builds, upgrades from their published 0.21 tools-only packages, two-user adoption/removal and normal switching between channels. Each clean build passed 785 Python tests and 168 native test executions. Installed Studio first-use checks passed standalone Niri and the real iNiR helper with temporary settings.
Physical login, mixed monitors, capture, suspend and upgrades between two already-adopted native versions remain separate acceptance gates. This 0.x prerelease does not claim 1.0 stability. See validation.
NiriFX 0.21.0
Added
- Complete portable fragment recipes. Gentle, Tear and Cascade now save their
movement material and all response values together. Local, online and offline
Studio expose the same choices, with detailed delay, spread, rotation and
release controls under Customize fragment response. My profiles, JSON,
sharing and Undo/Redo retain the complete recipe. - Profile schema 4 carries explicit continuous-fragment settings and all five
action choices. Earlier profile schemas keep their meaning. Move Preserve,
Off or an incompatible material retains the response for later use; Timed
movement explicitly removes it. Stock exports omit native controls. profile --fragment-preset gentle|tear|cascadecreates a complete recipe.
native export BUNDLE_IDreads older managed recipes without changing their
files, preserving the response recorded in the bundle even if preset defaults
have since changed. See the migration guide.- Four importable continuous-fragment combos and a Studio workflow showcase.
The browser preview shows the movement material; continuous gesture response
still needs the NiriFX compositor.
Changed
- JSON imports and share links accept up to 32 KiB to accommodate complete
five-action recipes, desktop springs, pointer wobble and fragment response.
NiriFX 0.20 cannot read schema 4 documents; retain older exports when sharing
with older tools.
Fixed
- Standalone Apply and Restore check the running native renderer contract before
enabling continuous-fragment settings. Timed movement omits the shader marker
that would otherwise enable the compositor's default continuous response.
Upgrade
Download the wheel and SHA256SUMS from this release, verify the checksum, and
follow the 0.20 to 0.21 upgrade guide.
Managed installations use a new persistent environment and the reviewed
shared tool update.
Save open drafts and reopen Studio after switching tools.
Existing schemas 1, 2 and 3 keep their meaning. Complete fragment recipes use
schema 4, which 0.20 tools cannot read. Keep older exports and retained bundles
for recovery; managed tool rollback refuses incompatible selected or previous
bundles. The new native export command reads older saved responses without
modifying them.
The compositor patch stack is unchanged from 0.20. Compatible full NiriFX builds
remain usable. This prerelease contains the Python tools and matching source,
not a supported compositor binary or distribution package. Browser previews
show the movement material; continuous gesture response needs the NiriFX
compositor. Physical desktop acceptance remains separate from automated tests.
NiriFX 0.20.0
NiriFX 0.20.0 brings shared desktop settings, simpler action selection and reviewed session/tool updates together. This is a 0.x prerelease: 1.0 and its compatibility contract remain future milestones.
Install the wheel for the CLI and Studio. Use the source archive for the matching compositor build tools and patches. This release does not include a supported compositor binary or distribution package.
Added
-
Shared desktop settings for stock Niri and the NiriFX session. Reviewed adoption
keeps normal configuration files in place and uses one saved recipe to generate
stock-compatible effects plus native-only movement, swaps and pointer controls.
Both executables validate changes; external edits invalidate stale reviews.
Studio exposes sharing and frozen recovery in advanced settings; CLI equivalents
arenative shareandnative recover. Already-shared sessions watch includes;
first adoption or a changed compositor build takes effect at the next NiriFX login.
File updates are reported separately from confirmed live activation. -
Local Studio installation status identifies changed tool selections, unfinished
migration and unavailable installations. A notice explains when to save and
reopen, including same-version updates and rollbacks. About offers a manual
check; unsaved settings remain in the editor. -
Studio's footer shows its version and UI build in local, web and offline modes,
making different editor builds recognizable even when they share a version.
About explains how to load updates and separates Studio from compositor identity. -
Independent Swap styles for explicit left/right window swaps in updated NiriFX
builds. Move continues to control ordinary movement and dragging. Preserve
retains the underlying swap setting; older builds retain their shared behavior
and require an update before applying a separate swap override. -
Pixel Relay, Ripple Transit, Vortex Transit, Ribbon Cascade and Spring Rebound,
with a Movement collection, shader previews and native rearrangement showcases. -
Profile schema 3 and
profile --swapcarry a separate swap choice. Profiles
without an override continue to serialize as schema 2; stock exports omit swap
overrides. Native Apply checks the retained build and running swap renderer. -
Reviewed shared tool-runtime updates for CLI, Studio and the login launcher.
A one-time stable-entry migration keeps the working runtime selected until
registration is verified. Later updates share one selector, retain the previous
runtime, and check current compositor bundle compatibility before rollback. -
Studio's NiriFX session target applies reviewed effects directly to a verified
matching compositor and saves them for the next login. Stock, offline and
different-build sessions keep next-login selection. It retains the previous
binary/configuration pair, reopens saved recipes
and reviews rollback separately. Independent action choices and Gentle, Tear
and Cascade continuous-fragment presets use the retained build. Session and
file details are collapsed behind the main preset controls. -
native install --candidate DIR --config FILEprepares the full desktop build,
configuration snapshot, NiriFX login entry and next-login selection in one
reviewed transaction. Display-manager registration remains an administrator
step until distribution packages provide it. Shell sources and the running
session stay unchanged. -
native configureexposes the same immutable preset editing through the CLI
and agent discovery, with exact review fingerprints and retained rollback. -
native configure --liveandnative rollback --liveshare Studio's verified
desktop Apply flow. They require a live review fingerprint, refuse unavailable
sessions before staging, and report failed or unconfirmed reloads separately
from a saved next-login selection. -
One
build-nirifx-session.pycommand builds all compositor features with
desktop support, release optimization and focused regressions. A pinned native
compatibility matrix and isolated patch/build checks separate
upstream port failures from desktop updates. The native release checklist
covers dependency-aware packages, provenance, rollback and physical acceptance
before compositor binaries are advertised as supported downloads. -
native statusdistinguishes the advertised running session from next-login
and rollback selections, and reports each retained bundle's file and allocated
storage sizes. Missing selections stay visible.--offlineskips IPC; status
never executes a candidate or changes desktop settings. -
native stage --snapshot-includesimports split Niri configurations into a
closed, verified bundle while preserving include order and file boundaries.
Review covers every source, including absent optional files. Login entries
support custom names, anddoctorreports continuous-fragment capability
separately from timed movement. -
native stage,status,select,rollbackandsession-entry
commands prepare retained desktop binary/configuration pairs and reviewed
next-login selection. The per-user systemd launcher preserves the stock Niri
service lifecycle, pins one pair per login and falls back to stock for expired
leases. Display-manager registration remains an administrator step; physical
desktop acceptance and distribution packages are still pending. -
Isolated native build candidates preserve earlier source trees, Cargo outputs
and executables. Successful attempts publish their own manifest and copied
binary; explicit per-variant selection lets native tests use a candidate
without changing the login session or legacy demo selection. -
A reviewed migration removes the earlier compact iRiS source integration
without discarding newer upstream changes. Customized or ambiguous files are
preserved for manual review. -
Native build identity records the ordered patch stack, locked dependencies,
toolchain, target and features. A read-only inspector checks artifact identity
and desktop build prerequisites without starting or installing a compositor. -
Continuous square-fragment motion for pointer dragging, timed
movement and column reordering. Distant pieces initially lag behind the grabbed
region, then catch up with per-piece delay and response variation. Pressing can
expand the material before moving; held pauses keep that spread, and release
reconstructs the window. Native controls expose timing, variation, spread,
pinning, rotation, tilt and release. Focused native acceptance verifies
screen-position retention, independently delayed pieces, queued reversals,
long floating and tiled drags, stable endpoints and client input. Physical
desktop acceptance remains separate. -
Gentle, Tear and Cascade presets for continuous fragment motion, with
a local comparison window, preset buttons and keyboard shortcuts. Validated
native controls share one canonical definition. Settings and grid changes wait
until the active motion has settled; Off takes effect immediately. Unsupported
grids use protected fallback without repeated per-frame preparation. -
Native fragment checks cover shader failure and recovery, direct screenshot
privacy, interrupted clients and measured CPU state costs. -
Continuous-fragment diagnostics cover simultaneous two- and four-window motion,
dense input history and hardware GPU mesh workloads. CPU measurements expose
remaining recovery spikes after short pauses; particle defaults and limits
are unchanged. -
NiriFX session resize-to-close continuation retains the current material,
deformation phase and size paths while fading out. Borders and shadows follow
the changing geometry; each capture target owns a separate frozen material. -
Installed upgrade checks accept the published 0.19 package, including active
Preserve/Off choices. CLI and Library Restore must retain their recovery history
and refuse external edits before recovering the original files exactly. -
NiriFX session resize effects retain their deformation phase, piece layout and
current material across repeated size changes. Client content updates on a
separate clock; shader replacements take effect on the next resize episode.
Output and capture targets keep separate material caches and respond to
changes in capture restrictions. -
Native before/after comparisons for minimum-size width and height retargets
and retained fragment and triangle resize effects. -
A versioned 0.19 compatibility corpus shared by Python and browser tests,
covering document migration, action choices, rejected input, representative
catalog IDs and CLI JSON consumers. This begins compatibility testing toward
1.0; it does not freeze current 0.x interfaces. -
A clean-account first-use check for source and wheel installations, covering
Library selection, all action modes, saved profiles, review/cancel, Apply,
reopening Studio and exact Restore without connecting to a desktop session. -
An overlapping-pointer diagnostic covering idle-device removal, held-owner
removal, ownership changes and shared-button releases. It reproduces the
stale-grab failure in unmodified Niri and records the limits of global cleanup.
Changed
-
Studio calls whole-window pointer deformation Pointer wobble and explains
that its Off setting leaves continuous fragments enabled when Move uses them.
Move Off disables continuous fragments as well as the timed movement effect. -
Studio puts the current combo, primary Apply action and JSON download above the
preview. Profile tools are secondary, review stays beside the action that opens
it, and session details are collapsed. The narrow layout wraps controls and
keyboard selections retain focus and catalog position. -
Separate Move and Swap tabs preview each choice immediately. Movement choices
lead with curated presets; swap previews show two windows exchanging positions...
NiriFX 0.19.0
NiriFX 0.19.0 is a prerelease.
Added
- Independent Preserve / NiriFX Style / Off controls for opening, closing,
resizing, movement and pointer drag in Library and Studio, with matching CLI
choices, portable JSON, previews, shared styles and Undo. - A recorded action-selection workflow and native comparisons for resize
reversals, orthogonal retargets and timing reloads, with reproducible checks. - A path to 1.0 with proposed public-interface boundaries, backward compatibility
throughout 1.x and concrete acceptance criteria. Current 0.x interfaces remain
under development; this does not announce a stability freeze. - Public Discussions, GitHub Sponsors links, README badges and star history.
CodeQL scanning and grouped weekly dependency updates complement existing
secret scanning and push protection.
Changed
- Profiles export schema 2. Schema 1 imports retain their behavior. Preserve uses
the desktop configuration underneath NiriFX; Off disables the selected action. - Experimental movement and pointer contracts advance to version 2. Explicit
merge flags preserve sibling settings; timed movement Off no longer disables
pointer deformation. Rebuild the matching experimental compositor before native
activation. Stock exports continue to omit native overrides. - CI selects expensive checks by changed paths, caches dependency downloads and
runs independent browser/rendering matrices in parallel. A required aggregate
rejects missing or failed checks. The same local workload measured 127.8 seconds
sequentially and 74.1 seconds in parallel; this is not a GitHub runner benchmark. - User guides distinguish available features and support limits from future work;
contributor and maintainer references are grouped separately. - Refresh affected Studio, Library, picker and native showcases for the current
controls and compositor patches.
Fixed
- Interrupted resizes retain per-axis size velocity and timing alongside adjacent
tiles and columns. Unchanged axes keep their existing deadlines; reloaded timing
applies to new transitions. Extreme negative size samples are floored before
constructing renderer geometry, preventing a debug-build panic. Neighbor alignment
at that floor and retained resize shader state remain separate limitations. - Browser tests pass imported documents and geometry through protocol arguments
rather than interpolating fixture data into executable JavaScript.
Upgrade
Install the new wheel in the same environment and reopen Studio. Installation
preserves configuration, saved profiles, favorites, registrations and Restore
history. Saving a profile writes schema 2, which older versions cannot read.
Keep original exports for downgrades. Native activation requires a rebuilt
contract-2 compositor; installing NiriFX does not replace it.
See upgrading from 0.18.
Downloads
Choose the wheel for the CLI and Studio. The source archive includes the complete documentation, 209 showcases, test tools and experimental compositor patches. Verify downloads against SHA256SUMS before installing.
sha256sum --ignore-missing -c SHA256SUMS
python3 -m venv .venv
.venv/bin/python -m pip install --no-index --no-deps ./niri_fx-0.19.0-py3-none-any.whl
.venv/bin/niri-fx studioInstalling the package leaves your active desktop settings unchanged. Native movement and pointer effects require the separate contract-2 compositor; the package does not install it.
NiriFX 0.18.0
Added
- Interactive pointer dragging in Studio and a deterministic drag/reverse/release
phase in complete combo previews. Both use the experimental compositor's spring
and deformation math, with a keyboard demo and reduced-motion behavior. - Three portable pointer example combos and browser showcases with JSON downloads.
Browser playback previews synthetic input; live dragging still requires the
experimental compositor. - A pointer-wobble prototype for the pinned experimental compositor.
Windows bend around the grab point, respond to direction changes and settle
after release, with bounded spring motion and ordinary input/layout behavior. - Gentle, Rubber Sheet and Release Settle drag presets, native KDL examples and
an isolated demo with draggable synthetic cards. This optional native feature
responds to dragging separately from Studio's timed Elastic effects. - An optional compositor patch and separate build directory, with a dedicated
runtime capability query and real Wayland pointer lifecycle checks. - Three looping native pointer showcases with real return drags, exact
configuration downloads, input acceptance results and separately labelled
nested submission diagnostics. - Portable pointer settings and Library controls for preset choice, strength,
damping and frequency. JSON, saved profiles, sharing and Undo retain them;
stock exports omit experimental nodes. - Explicit experimental config downloads and capability-verified standalone
pointer Apply/Restore, including combined movement and zero-strength profiles.
--niri-binaryselects the executable used for diagnostics and validation. - Agent command discovery, canonical parameter metadata, compact catalog
summaries, a packaged reusable skill and public automation/contributor guides. - Isolated native checks for profile activation, runtime capability loss,
stock-binary mismatch and exact Restore through the Studio backend. - Native layout regressions for output removal and restoration during tiled and
floating pointer drags, checking spring continuity, window ownership and settle
cleanup. Physical monitor hotplug remains separate acceptance work. - Isolated pointer hardening checks for direct ScreenCapture privacy during
dragging and closing, changing privacy rules, and abrupt grabbed-client exit
followed by clicks and dragging in a surviving client. - An isolated unmodified Niri build and reproducible comparison of held-pointer
disconnection and stale nested output. Both failures reproduce without FX
patches; diagnostic results keep the remaining input/capture limits explicit. - An installed 0.17-to-0.18 upgrade check preserving existing Library profiles,
favorites, shell registrations and exact CLI/Library Restore histories.
Changed
- Expand the roadmap into native-pointer acceptance, Studio/profile integration
and physical presentation milestones, each with a concrete checklist. - Distinguish native KDL downloads from Studio JSON in the showcase gallery.
- Refresh Library, Studio, combo and pointer recordings for the current controls.
- Verify browser pointer math against traces generated from the native Rust
spring and retain GPL attribution for the derived browser adapter. - Allow pointer-only portable profiles in the isolated native demo.
- Document retained grabs after held-button virtual-pointer disconnection and a
failing optional two-compositor output probe. Keep Output/Screencast and
PipeWire privacy separate from the tested direct ScreenCapture path.
Fixed
- Verify current compositor support before Restore reactivates a previous native
pointer or movement selection. Returning to stock settings remains available. - Preserve the current profile operation when an earlier dialog's queued close
event arrives after a new dialog has opened, including rename conflict recovery.
Upgrade
Existing saved profiles, favorites, shell registrations and Restore history remain
supported. Pointer settings are optional profile metadata; existing profiles keep
pointer drag unset. The browser preview and agent commands are included in the
package. Live pointer deformation requires a separately built, verified native
extension and explicit activation. The compositor is not installed by the wheel.
See the upgrade guide and
pointer validation limits.
NiriFX 0.17.0
NiriFX 0.17.0 adds the shared Library, saved profiles and complete combo previews.
Added
- One-click complete combo previews with per-action styles and durations, selected
resize/movement loops, stable variations and reduced-motion endpoints. Playback
leaves editing, Undo and saved documents unchanged. - Five refined recommended combos and complete opening/pause/closing showcases:
Fragment Flow, Soft Landing, Ribbon Current, Playful Motion and Geometric Flow. - An isolated upgrade check using the official 0.16 wheel and saved settings,
favorites, shell registration and exact Restore, including installed Studio. - A Library view in the existing NiriFX app, with recommended looks, collections,
profile favorites, My profiles and a simple shared-style/per-action combo builder. - Reviewed Apply and Restore in the local app through standalone, iNiR and
connected Noctalia configurations. Paths remain fixed at launch, stale reviews
are rejected and external edits are preserved. - The same combo builder in Web Studio, with browser-local profiles and portable
JSON/config exports. Detailed Studio controls remain in the same app. - An optional compact iRiS entry with the NiriFX logo, active look, Choose effects,
Customize and Restore, plus a Noctalia 5 launcher shortcut. - Saved-profile copying, renaming and removal in the local and online Library,
with explicit replacement confirmation and preserved favorites on rename.
Changed
- DMS explicitly opens the standalone target. Quickshell/GTK preview dispatch
opens detailed Studio controls and carries the selected Niri config path.
Fixed
- Correct the validation guide's gallery total and reject stale GIF/preset
counts in the three public showcase guides during documentation checks. - Preserve other sessions' saved-profile edits and reject rename collisions.
Skip damaged saved documents individually and report invalid names in the UI. - Wait for Chrome's debugging-port file to finish writing within the bounded
startup deadline, with regression coverage for incomplete and invalid ports. - Enable browser lifecycle domains before startup hooks and navigation, with
regression coverage for error capture during repeated reloads and page-target
discovery during startup. Library checks
wait for completed operations and use an intact preview frame while separate
rendering checks retain intermediate-frame coverage.
Upgrade
Install the new package to use Library and combo previews. Existing exported JSON,
favorites, shell entries and CLI Restore snapshots remain valid. Named Library
profiles and Library Apply history are new in this version. Five built-in combos
have refined settings; re-export or re-register a shell pack to refresh them.
Updating a pack does not select an active style. Resize and movement remain unset
in every built-in profile. See the upgrade guide.
Download the wheel for a small installation, or the source archive for the complete catalog. Verify it with SHA256SUMS.
NiriFX 0.16.0
Choose Fragments Motion, Ribbons Motion or Elastic Motion for coordinated opening, closing and stock desktop timing. Studio suggests matching optional resize and movement settings; each action requires explicit inclusion. The existing CLI supports the same choices through profile --action-set.
- Three new profiles and an Action Sets collection, for 75 presets and 16 profiles across nine collections.
- Nine portable examples and nine new GIFs covering base effects, resize companions and real experimental swaps.
- Suggestions preserved across renamed imports and Undo, without changing saved document schemas.
- Native interruption/cleanup checks, measured resize shader costs, public guides, upgrade notes and an updated roadmap.
Resize stays unset in every built-in profile. Movement requires the separately built experimental Niri compositor and is omitted from stock exports. Existing preset defaults and the compositor patch are unchanged.
Try the action sets · Interactive gallery · Upgrade guide
Download the wheel for the small standalone package, or the source archive for the full examples and media. Verify downloads against SHA256SUMS before installing. This is a prerelease; no PyPI publication is provided.
Validation includes 153 Python tests, 69 Node tests, six browser checks, the complete 75-preset rendering/save suite, GLSL compilation and 91 stock exports. All three experimental companions pass swaps, seven reversals, fallback and close cleanup. All ten curated resize profiles pass native growth/shrink and empty endpoints. Quickshell, GTK and actual iNiR helper checks pass. Physical DRM, integrated-GPU and mixed-output acceptance remain roadmap work.
NiriFX 0.15.0
NiriFX 0.15.0 adds coordinated desktop motion and mixed fragment shapes while keeping ordinary preset defaults intact.
- Gentle, Balanced and Playful: finished window profiles with stock workspace, camera and overview springs. Choose them through the existing CLI, Studio or shell picker.
- Mixed Confetti and Orbiting Shapes: deterministic mixtures of two built-in shapes, with a secondary shape, mixture amount and stable layout seed.
- Verified experimental activation: a matching running compositor must advertise and compile movement contract 1. Explicit standalone Apply rechecks support; Restore retains the previous files.
- Native output feedback: separate Winit submissions, DRM presentation and capture delivery. Published nested measurements make no physical-scanout claim.
- Expanded acceptance: floating/tiled and resize/open/close overlap fixtures, strict picker review of window and desktop timing, refreshed native media and a complete catalog of 75 presets, 13 profiles and 187 showcases.
Resize and custom movement remain opt-in. No compositor is installed or replaced. Physical mixed-monitor measurements, integrated-GPU acceptance and pointer-driven wobble remain on the roadmap.
Update NiriFX before importing new mixture or desktop-motion settings. Re-register or re-export shell packs to expose the new names; this does not activate them. Rebuild the experimental compositor for runtime verification and frame feedback. Older experimental builds cannot pass live activation checks.
Use the wheel for normal installation; the source archive includes documentation, examples and showcase media. Download SHA256SUMS alongside your chosen package and run sha256sum --ignore-missing -c SHA256SUMS. The Git tag is signed.
Validation includes 147 Python tests, 69 Node tests, five real-browser tests, all 75 presets rendered in Chromium, GLSL compilation, 88 stock exports and actual iNiR helper validation, pinned compositor build/tests, native overlaps, Quickshell/GTK/AGS transactions, package inspection and a secret scan.
Quick start · Desktop motion · Shape mixtures · Upgrade notes · Gallery