Commit Graph

8 Commits (c16a17f10b904b6d98fd25334d2fb11db1c86a70)

Author SHA1 Message Date
Amir Alexander Abdelbaki bda4640b54 feat(hyprdrive,hyprlua): add supersonic-booster/audio-panel PipeWire mixer panel
A new layer-shell mixer panel with four tabs (Applications / Input Devices /
Output Devices / General Settings): per-app and per-device volume meters with
an independent left/right toggle, mute, live parec-based amplitude bars (so a
silent stream is visually distinct from a quiet one), output-device routing,
card profile switching (pro-audio vs stereo duplex etc.), and default-device
pickers. Backed by pactl -f json + pactl subscribe over pipewire-pulse
(verified against this box's real pactl; wpctl was dropped for lacking
per-channel volume and profile verbs).

hyprdrive gets the hologram-styled original (supersonic-booster); hyprlua's
plain-themed audio-panel is generated by a new
desktopenvs/hyprlua/scripts/regen-audio-panel.sh, extending the existing
regen-beacon.sh derivation pattern rather than hand-duplicating the app.

Wired into both DEs: Super+Shift+S keybind, autostart, config-updater,
apply-theme.sh, and the respective bars (station-bar's volume badge now opens
the panel; eww/eww-touch/eww-nobattery's volume slider does too, replacing
the old pavucontrol launch).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TkkH9eiCBfpWysUXAD9bDG
2026-07-29 15:41:57 +02:00
Amir Alexander Abdelbaki 3f05f64281 feat(hyprdrive,hyprlua): trap pointer to focused window in monocle (super+ctrl+f)
Monocle now also confines the cursor to the focused full-size window so it
can't slip onto another monitor. Hyprland has no cursor-confine dispatcher, so
this drives the confine_pointer window rule: one lazily-created rule per
workspace, matched by workspace id (follows focus), enabled/disabled in
lock-step with the monocle toggle and refreshed immediately.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-26 17:35:00 +02:00
Amir Alexander Abdelbaki c86afef147 feat(hyprdrive): add beacon notification history/controls + transmitter-panel viewer
beacon gains a disk-persisted history D-Bus interface (eu.abdelbaki.beacon.History1
- List/Get/Pop/PopLatest/Remove/Clear/InvokeAction, live Added/Removed/Cleared
signals) and support for apps to embed rich controls (toggle/slider/entry, not
just fire-and-dismiss buttons) via a custom x-beacon-controls notification hint,
plus a beaconctl CLI. transmitter-panel is a new Cosmonaut Shell popup (Super+
Ctrl+N) that browses that history, with a Clear All button and a per-entry
close button.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 11:48:16 +02:00
Amir Alexander Abdelbaki ba12c31e3e feat(hypr): rework Super+E/F binds, add magnifier zoom and monocle toggle
Super+E now toggles cursor "glass magnifier" zoom (wiki trick); Thunar
moves to Super+Shift+E and the pcmanfm-qt alt bind is dropped. Super+Alt+F
drops the calculator launch in favor of a real fullscreen toggle, and
Super+Ctrl+F is added to toggle the workspace's "monocle" layout via the
existing layouts registry. Also inlines unified-rotate.sh cw/ccw directly
in the Super+Ctrl+E/D rotation binds instead of going through the
confusingly-named (and reversed) screenrotationwcw/acw.sh wrapper scripts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 10:49:59 +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 8dfd505ce4 feat(hyprdrive): materialize animations, dmenu mode, ship-systems astro rework
Second daily-driving pass over the Cosmonaut Shell suite.

Animations (all four surfaces):
- Removed every slide-in reveal; each surface now only "materialises out of
  static" (compositor no_anim layerrule + in-app hologram intro). Longer, noisier,
  gradual fade-in: the content opacity ramps 0->1 (fade_widget) instead of a solid
  haze block popping on. Added a quick reverse "dissolve into static" outro on
  close. horizon-dock/orbit-menu use a slower 2.4s intro. Fixed a warm-reopen bug
  where a stale frame-clock baseline skipped the intro entirely.

horizon-dock:
- Center planet: bigger, sinks ~1/4 below the screen edge, translucent holographic
  body with a wide bloom halo, specular sheen, rim glow and a breathing pulse.
- Ornamental satellite glyphs: two rings framing the windows orbit, each with a
  random 3-7 satellites whose motion source is randomised (toward-cursor / mouseX
  / mouseY), so the quiet edges feel alive.
- Super+D now opens horizon-dock (astro-menu moved to Super+Shift+D).

orbit-menu:
- Classic dmenu mode: `--dmenu` reads newline items from stdin, shows them as ring
  nodes, prints the choice to stdout (exit 1 on cancel). Standalone NON_UNIQUE app
  so it never routes to the resident daemon; scripts/orbit-dmenu.sh wraps it with
  the gtk4-layer-shell preload.

astro-menu (sci-fi rework):
- Replaced the map module with "Ship Systems": a Gtk.Grid system monitor backed by
  backend/sysmon.sh. CPU->Thrusters, GPU->Hyperdrive, RAM->Life Support Systems,
  Storage->Cargo Hold (one aligned row per mounted drive with capacity), each a
  bracketed -<████░░░░>- usage meter + -( 54°C )- temperature readout.
- Renamed Bluetooth -> System Radio, Network -> Laser Antenna Uplink.
- Weather gains a "Planetary Environment Report" headline.

station-bar:
- The battery readout uses a fuel-tank glyph (the ship runs on fuel).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 17:17:48 +02:00
Amir Alexander Abdelbaki f48c70273a fix(hyprdrive): holographic Cosmonaut Shell fixes + per-monitor station bar
Daily-driving pass over the Cosmonaut Shell suite: transparency, holographic
effects, and layout/geometry fixes across every component built for the DE.

Global holographic layer (astro-menu/horizon-dock/station-bar lib/hologram.py):
- edge-fade mask (A8 DEST_OUT) so scanlines fade out at panel borders
- magenta particle field; "materialize from static" noise-mask intro animation
- optional clip_func so the mask follows non-rectangular / animated content
- universal `* { background-color: transparent }` at USER+1 to defeat the
  CyberQueer theme painting opaque bg on plain containers; blur layer_rules

astro-menu: magenta text (alt red) for readability; thinner, glowier borders;
rounded map-texture corners; fixed transparency stacking + square corners.

orbit-menu: scanline mask now follows the zoom transition into a submenu.

horizon-dock: reworked into an orbit-menu node ~1/3 on-screen (<=2/3 width) with
horizon perspective (arched orbit rows), a non-functional center clock-sphere,
orbit glyph decorations, graceful edge fade-out, and centered/filled orbits;
tray removed; giant-surface clip fixed.

station-bar: redesigned as an extra Horizon Dock orbit — bare glowing color-coded
glyphs (no pills), width-adaptive, one bar per monitor, Super+Z toggles the
focused monitor's bar. Clickable HUD trapezoid around the title opens Astro Menu.
Workspaces are now per-monitor: each bar shows only its own monitor's workspaces
and highlights that monitor's active workspace. Populated workspaces show the
station glyph, empty ones the bare spaceship + number; the focused one is framed
by a `-< >-` reticle with the rocket prepended when there's a station to dock at.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 10:34:40 +02:00
Amir Alexander Abdelbaki 90375a5733 feat(hyprdrive): add hyprdrive DE with full Cosmonaut Shell suite
New leaner Hyprland DE (setup/modules/Desktop-Environments/hyprdrive.sh),
a sibling of hyprlua that drops the older EWW/nwg-shell/wofi/walker/
ulauncher stack in favor of a purpose-built, GTK4 layer-shell component
suite sharing one CyberQueer hologram visual language:

- orbit-menu    radial power/utility menu (focal-point zoom nav, holographic
                overlay, cosmetic satellites)
- horizon-dock  hover-scrollable orbital app dock (open windows/favorites/
                all apps orbits, SNI tray satellite)
- astro-menu    astal-menu re-themed as a hologram info display (Location/
                Weather/Bluetooth/Network quads, taskbar, app drawer)
- station-bar   the EWW top bar's replacement ("Voidstation Status Bar"):
                a thin curved layer-shell bar tracking Hyprland workspaces/
                active window natively over .socket2.sock, no polling

Every component now shares one consistent hologram treatment: translucent
violet panel/node fills (replacing solid gray), a config-toggleable
scanline+sweep+noise overlay (lib/hologram.py, ported to horizon-dock and
station-bar to match orbit-menu/astro-menu), and glow-on-hover throughout.

Also adds horizon-dock to hyprlua (built there first, before hyprdrive
existed) and wires dependency checks, config-updater entries, and
apply-theme.sh color sync for every new component across both DEs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nu8JkQ95hPAT8vADeGDAmL
2026-07-17 15:28:07 +02:00