Commit Graph

4 Commits (main)

Author SHA1 Message Date
Amir Alexander Abdelbaki 6ef9f31dee feat(hyprdrive): tune beacon notification open/close animation
- beacon: snappier in-app dissolve (OUTRO_DURATION 0.4 -> 0.2).
- hyprland.lua: split the global `layers` animation into layersIn/layersOut
  so open and close differ. layersIn keeps the springy myBezier slide-in;
  layersOut slides the surface back off-screen with a new easeInQuint-ish
  `slideOutLate` curve — it creeps slowly then whips away in the final
  quarter, instead of a uniform fade.
- windowrules.lua: drop `no_anim` from the beacon layerrule (keep blur) so
  notification cards ride those layer animations again (they slid in/out via
  the global anim before, since no per-namespace no_anim was deployed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 20:37:22 +02:00
Amir Alexander Abdelbaki b7eba3f967 feat(hyprdrive): switch notifications from dunst to beacon
beacon (the Cosmonaut Shell notif daemon) already renders its holo
fade-in-from-noise intro (materialise out of static), but dunst held the
org.freedesktop.Notifications bus so beacon never started. Make beacon the
deployed and active notification daemon:

- updater.conf: manage `config beacon`; drop `config dunst` (now `ignore`d,
  superseded). Also carries the pre-existing `config ghostty` line that was
  already sitting uncommitted in this file.
- beacon: add a SIGUSR1 close-all handler (window.close_all) so the old
  `dunstctl close-all` keybind has an equivalent.
- binds.lua: Super+Ctrl+C now runs `pkill -USR1 -f '[b]eacon/main.py'`
  (bracket idiom avoids pkill self-matching its own wrapper).
- screenrec.sh: `dunstctl close` -> freedesktop CloseNotification via gdbus.
- timer-run: resolve the session bus via the beacon process, not dunst.

hyprlua keeps its own independent updater.conf + dunst and is untouched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 20:04:13 +02:00
Amir Alexander Abdelbaki 74fc9aefaf feat(hyprdrive/beacon): draw the divider as a Cairo magenta sine path
Replaces the ∿-glyph label divider with a Gtk.DrawingArea that strokes a sampled
sine wave (soft-glow + bright-core passes), colour per urgency (magenta / accent),
phase-advanced each tick so it travels like a live signal. Background stays
transparent — a class-specific rule overrides the CyberQueer theme's universal
`background-color`, so no dark pill shows behind it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 17:36:04 +02:00
Amir Alexander Abdelbaki 838f954cad feat(hyprdrive/beacon): holographic notification daemon replacing dunst
beacon is a GTK4 layer-shell notification daemon in the Cosmonaut Shell idiom.
It owns org.freedesktop.Notifications and renders each notification as a
holographic card: scanline/sweep/noise overlay (shared lib/hologram.py) clipped
to a rounded violet holo-glass card, emitted-magenta text, glow-violet frame
(accent + squiggle for critical), materialise-out-of-static intro / dissolve
outro, top-centre stack.

Implements the interactive spec subset: body markup, urgency, replaces_id,
per-urgency timeouts, action pills, icons (name/path/raw), click-to-dismiss, and
the NotificationClosed / ActionInvoked signals.

- scripts/beacon-start.sh: LD_PRELOAD launcher
- autostart.lua: dunst -> beacon
- windowrules.lua: blur layer-rule for the `beacon` namespace (no_anim; it has
  its own hologram intro)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 16:22:01 +02:00