* feat: parallax-scroll wallpaper
Add a `Scrolling` wallpaper fill mode that translates the wallpaper crop
with the active workspace — like Android home-screen parallax, but along
niri's vertical workspace axis.
The image is scaled to cover the screen on its non-scroll axis, and the
active workspace index drives a fractional offset into the cropped
overflow along the scroll axis. Scroll position is spring-animated
CPU-side and handed to a minimal single-texture shader as a UV offset.
Per-monitor scroll position is published into SessionData so the lock
screen renders the same crop as the active workspace, keeping visual
continuity across lock/unlock.
Two implementation details worth calling out for review:
- QSG_USE_SIMPLE_ANIMATION_DRIVER=1 is exported to the spawned quickshell
process. The default animation driver advances in fixed ~16ms steps,
capping the scroll at 60Hz and desyncing it from compositor motion on
high-refresh displays; the simple driver advances by real elapsed time,
restoring native-refresh pacing. Removing it visibly regresses to 60Hz.
- The wallpaper survives wl_output rebind cycles (e.g. OLED image-cleaning
on DPMS soft-off), which otherwise leave a stuck or void background.
Recovery re-anchors the scroll target on output-lifecycle signals,
rebuilds the ShaderEffect against the current render context, and
re-attaches the wallpaper-layer surface on unlock for parallax-active
monitors — guarded against lock state so the shader gets reliable frame
hints.
* simplify bindings and gate lock screen shader in a loader
---------
Co-authored-by: bbedward <bbedward@gmail.com>
- Introduce multi-account greeter login with per-user theme previews
- Add `dms greeter sync --profile` for secondary users with or without sudo
- Add Manage greeter group membership from Settings UI → Users Tab
* feat(Spotlight): fix submenu keyboard navigation
* feat(Launcher/Spotlight): disable persisting last mode when changed by triggers
* feat(Launcher/Spotlight): add option to disable last mode being persisted
* fix(Launcher/Spotlight): fix context menu keys navigation
* fix(NiriOverviewOverlay): fix context menu keys navigation and position
Move system update flow to GO, with a CLI (convenient AIO tool) and
server integration. All lifecycle, scheduling, execution occurs on
backend side.
Run some backends via pkexec, some via terminal like paru/yay.
Incorporate flatpak as an option to update.
Add terminal override setting in GUI, in addition to $TERMINAL env
variable.
fixes#2307fixes#822fixes#1102fixes#1812fixes#1087fixes#1743
* feat: add sun and moon view to WeatherTab
* feat: hourly forecast and scrollable date
* fix: put listviews in loaders to prevent ui blocking
* dankdash/weather: wrap all tab content in loaders, weather updates
- remove a bunch of transitions that make things feel glitchy
- use animation durations from Theme
- configurable detailed/compact hourly view
* weather: fix scroll and some display issues
---------
Co-authored-by: bbedward <bbedward@gmail.com>