Skip to content

cleonhp88/edge-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edge Dashboard

A synthwave dashboard for an ultrawide secondary display on macOS (Apple Silicon). Big clock + Vietnamese lunar calendar, weather, real CPU / GPU / RAM / power stats, touch-friendly app launcher buttons, and rotating wallpapers — running as a native kiosk app, configurable from a built-in Settings panel.

Originally built for the Corsair Xeneon Edge (14.5" 2560×720), but works on any secondary display.

Edge Dashboard

Settings

English UI with a built-in Vietnamese lunar calendar (can be turned off in Settings).

Features

  • 🕐 Large clock (12/24h, optional seconds) + date
  • 🌙 Vietnamese lunar calendar (Hồ Ngọc Đức algorithm)
  • 🌦️ Weather via Open-Meteo (no API key) — auto-locate or manual
  • 📊 Real system stats: CPU, GPU, RAM, and total power draw (Watts) — read locally via vm_stat / ioreg / a tiny SMC reader, no sudo required
  • 🎛️ 6 touch buttons → open apps / websites / URL schemes
  • 🖼️ Auto-rotating wallpapers (add your own) over a procedural synthwave background
  • ⚙️ Settings UI (gear icon): location, clock format, buttons, wallpapers, effects — saved in localStorage
  • 🖥️ Native macOS app (WKWebView kiosk) + auto-start at login

Requirements

  • macOS 12+ on Apple Silicon (M1/M2/M3/M4…)
  • Xcode Command Line Tools: xcode-select --install
  • Python 3 (ships with the Command Line Tools)

Quick start

git clone https://github.com/<you>/edge-dashboard.git
cd edge-dashboard
./install.sh

This builds the app + SMC reader and installs three LaunchAgents (local web server, stats feed, the app) that auto-start at login. The app opens full-screen on the secondary display named like a Corsair Xeneon (falls back to the main display).

Open Settings with the gear icon (top-right) to set your city, clock format, button shortcuts, wallpapers, and effects.

Uninstall: ./uninstall.sh

Wallpapers

Ships with 14 free-license synthwave/neon wallpapers (from Pexels, Pexels License: free to use and redistribute, no attribution required) in dashboard/bg/, rotating on a timer over the procedural synthwave background.

Add your own: drop ultrawide images into dashboard/bg/, then list them in Settings → Backgrounds (e.g. bg/mine.jpg). Set rotation interval or turn it off there.

Buttons

Each button has an emoji icon, a label, a color, and a target URL:

  • Website: https://example.com
  • macOS app: file:///Applications/Safari.app
  • URL scheme: music://, x-apple.systempreferences:

The native app opens these via NSWorkspace, so app/website buttons work even though the dashboard itself stays on screen.

Touchscreen (optional)

macOS does not treat the Xeneon Edge as a touchscreen out of the box. To turn touches into clicks, use a community user-space driver such as ymlaine/TouchscreenDriver (MIT). It needs Accessibility + Input Monitoring permission. Not required for the dashboard itself — only for touch input.

How it works

EdgeDashboard.app (WKWebView, fullscreen kiosk)
        │ loads
        ▼
http://127.0.0.1:8787  (python -m http.server, localhost only)
        │ serves
        ▼
dashboard/index.html  ◀── reads stats.json (refreshed every ~3s by stats.py)
  • dashboard/stats.py — writes stats.json with CPU/GPU/RAM/power. RAM matches Activity Monitor ("Memory Used" = app + wired + compressed). Power is the SMC PSTR sensor.
  • dashboard/smc/smc.swift — minimal SMC reader for total system power.
  • app/EdgeDashboard.swift — native kiosk window + app menu (change wallpaper / reload / quit).

Security & privacy

  • The local web server binds to 127.0.0.1 only — stats are never exposed to your LAN.
  • No accounts, no telemetry, no API keys, no analytics.
  • Outbound requests: weather (api.open-meteo.com, sends lat/lon), IP geolocation (ipapi.co, only in auto location mode — switch to manual to avoid), and Google Fonts. That's all.

Credits

  • Fonts: Orbitron, Chakra Petch (Google Fonts, SIL OFL)
  • Wallpapers: Pexels (Pexels License)
  • Weather: Open-Meteo
  • SMC reading approach inspired by beltex/SMCKit
  • Touch driver: ymlaine/TouchscreenDriver

License

MIT — see LICENSE.

About

Synthwave dashboard for an ultrawide secondary display on macOS (Apple Silicon) — clock, lunar calendar, weather, real CPU/GPU/RAM/power, touch buttons, rotating wallpapers, in-app Settings.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors