Commit Graph
12 Commits
Author SHA1 Message Date
Kaloyan DanchevandClaude Opus 4.6 e29050dc32 Add curtain/blinds cover cards with daylight glow and navy darkening
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
New HaCardType::Curtain and HaCardType::Blinds with:
- Scroll to adjust position (10% steps via cover.set_cover_position)
- OK to toggle open/close
- Dark navy overlay when closed, warm daylight glow when open
- Curtain glow radiates from center, blinds from top

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v0.2.0
2026-10-24 14:46:09 +03:00
Kaloyan DanchevandClaude Opus 4.6 c8e6fcb659 Redesign HA cards with fill-based backgrounds and add media player
Navigation: arrow keys now always navigate the card grid (removed
left/right value adjustment from Range/Climate cards). Scroll wheel
on the Magic Remote adjusts range values instead.

Cards: 4-column layout with taller (160px) cards. Each card shows a
fill bar proportional to its value — brightness for lights, target
temperature for climate, volume for media. State-based accent colors
(warm yellow for lights, orange/red for heating, blue for cooling,
purple for media playback).

New card type: Media (media_player) — shows artist, track title,
volume fill, and album art placeholder. OK toggles play/pause,
scroll wheel adjusts volume.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 13:48:10 +03:00
Kaloyan DanchevandClaude Opus 4.6 a7dd876c63 Fix D-pad input by using RPATH instead of RUNPATH
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Buster's linker defaults to RUNPATH, which is searched after
LD_LIBRARY_PATH. The TV's LD_LIBRARY_PATH includes /usr/lib which
has the system SDL2 (without remote control input support). With
RPATH, $ORIGIN/lib is searched first, loading the SDL-webOS community
fork that handles Magic Remote D-pad key events.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 13:25:06 +03:00
Kaloyan DanchevandClaude Opus 4.6 df271d738c Add Docker cross-compilation for webOS ARM (glibc 2.28)
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Debian buster base matches the TV's glibc version. Includes fake
WEBOS_NDK wrapping standard cross-compiler, stub shared libraries
for luna-service2 and glib-2.0, and a build script that produces
a deployable ARM soft-float binary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 12:56:57 +03:00
Kaloyan DanchevandClaude Opus 4.6 dce4f172ca Add visual config editor for HA tab
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Self-contained HTML page that connects to HA WebSocket for entity
discovery, provides visual editing of rooms/cards/weather/vacuum
config, and exports config.json. Hosted from HA's /local/ directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 12:23:21 +03:00
Kaloyan DanchevandClaude Opus 4.6 764af371b9 Add glass card rendering and 6 card types for HA tab
Implement the full Home Assistant tab with room-based navigation
and glass-morphism card rendering:

- Toggle card: on/off for lights, switches, covers with state indicator
- Range card: dimmable lights with brightness bar and D-pad ±10% control
- Climate card: current/target temp, HVAC mode, D-pad ±0.5°C, sparkline
- Action card: one-shot activation for scenes and scripts
- Vacuum card: summary card that opens room selection modal
- Weather card: hero card with condition icon, temp, humidity, wind

Navigation: room tabs (horizontal pills), card grid (3-col), vacuum
modal with room multi-select, cleaning mode cycle, and start button.
Back button cascades: vacuum modal → card grid → room tabs → Home page.

Glass design: rgba(255,255,255,0.12) fill, 22px radius, 1px border at
0.15 opacity, elevated shadow on focus. Accent color #7EB8DA for active
entities, warm orange for heating, cool blue for cooling.

Wires Effect::Ha to dispatch toggle/brightness/temperature/scene/vacuum
service calls through ha_client. Adds 6 new SVG icons matching the
existing Lucide stroke style.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 12:14:07 +03:00
Kaloyan DanchevandClaude Opus 4.6 98dd75ab0e Add Notification Center and Game Optimizer themes
Extend Luma-style dark theme to two more Enact web overlays:
- com.webos.app.notificationcenter: dark pills, transparent
  compositor, notification-specific components
- com.webos.app.gameoptimizer: same plus GameItem, GameButton,
  GameSwitch, GamePanel custom components

Rename build.js → build.cjs (ESM compat) and update to build
all three themes from a single script.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 12:07:09 +03:00
Kaloyan DanchevandClaude Opus 4.6 14db4f6e71 Add Home Assistant WebSocket client module
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
- New ha_client.rs: background-thread WebSocket client using tungstenite
  with rustls TLS. Handles auth, state subscription, service calls, and
  recorder/statistics history fetch for climate graphs. Auto-reconnects
  on disconnect with 5s delay.
- HaState added to State struct: tracks connection status, entity states,
  and temperature history per entity.
- main.rs loads ha-home/config.json at startup, extracts all referenced
  entity IDs, and creates the HaService. ha_tick() drains responses into
  state each frame, matching the weather_tick pattern.
- tungstenite 0.24 added to Cargo.toml with handshake + rustls features.

All 84 existing tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 12:00:09 +03:00
Kaloyan DanchevandClaude Opus 4.6 cbea5a322f Merge Luma launcher fork into monorepo
CI / Identify a merged version PR (push) Canceled after 0s
CI / Rust checks, rendering, and native package (push) Canceled after 0s
CI / Publish release and Homebrew feed (push) Canceled after 0s
Release PR / Maintain Version Packages PR (push) Canceled after 0s
Move trampoline files (boot-hook, watcher, overlay) into trampoline/
subdirectory. Add upstream Luma v2.3.1 source at repo root with our
additions:

- Page::Ha (4th nav tab) with placeholder empty state
- HA tab config schema and default entity mapping (ha-home/)
- Nav keys renamed: "home" → "start", new "ha" tab between Apps and Settings
- All state.rs/view.rs/main.rs/tests.rs updated for 4-tab navigation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 11:52:55 +03:00
Kaloyan DanchevandClaude Opus 4.6 bc3ca0f3b9 Add build script and gitignore for settings theme
Build script minifies and base64-encodes the theme for telnet transfer.
Outputs to settings-theme/dist/ (gitignored).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 11:44:04 +03:00
Kaloyan DanchevandClaude Opus 4.6 ad306bc6bc Add Settings app transparent theme (V5.6)
Enact-injected CSS/JS theme that makes com.palm.app.settings fully
transparent so the Luma wallpaper shows through. Uses PalmSystem
compositor transparency + a global wildcard to strip all backgrounds,
then selectively restores dark pills (0.65 opacity) on menu items and
white pills on focused elements.

Key features:
- Dark transparent pills on all menu items (both sidebar tabs and
  content items)
- White pill + dark text on focused items
- Collapsed sidebar: white circle with dark icon for selected tab
- Disabled items: forced opacity on content children to remain readable
- All CSS transitions/animations disabled to prevent grey intermediate
  states during navigation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-24 11:41:25 +03:00
Kaloyan DanchevandClaude Opus 4.6 332bbc8fe2 Initial commit — Luma Home trampoline for webOS 5/6
Bind-mounts a transparent web page over LG Home that launches Luma
via WebOSServiceBridge, with a subscription-based background watcher
as fallback. Tested on LG 65NANO813PA, webOS 6.5.3.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-23 19:01:45 +03:00