diff --git a/README.md b/README.md
index fcbd31c..00569a3 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
#
widgetsack
-
+
[**👉 installer download for the latest release**](https://github.com/gyng/widgetsack/releases/latest)
@@ -30,14 +30,16 @@ docs regenerate from the code with `npm run gen:docs`.
- **Widgets:** gauges, bars, sparklines, text, digital + analog clocks, a month calendar, a per-core
CPU grid, a GPU panel, a battery indicator, a disk/storage panel, a top-process monitor, an audio
spectrum, a now-playing card, a weather card, a stock ticker, an application fence or zone, a web
- iframe, action buttons, and Home Assistant tiles — sensor- or [formula-driven](docs/templating.md)
+ iframe, action buttons, a DDC monitor input switcher, an audio output switcher, and Home Assistant
+ tiles — sensor- or [formula-driven](docs/templating.md)
and fully restylable ([reference](docs/widgets.md)).
- **Sensors:** CPU (total/per-core/freq), memory + swap, network, disks (+ I/O), uptime, battery, the
busiest process (by CPU/RAM/disk/GPU), and NVIDIA GPU (NVML) — demand-gated, so only what's on screen
is sampled.
- **Now playing:** Windows media via GSMTC — Spotify, foobar2000, browsers, and more
([support table](https://github.com/ModernFlyouts-Community/ModernFlyouts/blob/main/docs/GSMTC-Support-And-Popular-Apps.md)).
-- **Integrations:** Home Assistant (live states + light/climate controls), MQTT, stock quotes, and
+- **Integrations:** Home Assistant (live states + light/climate/fan/cover/lock/scene/switch/media
+ controls), MQTT, stock quotes, and
weather (Open-Meteo, keyless).
- **Overlay:** transparent, click-through, always-on-top, one per monitor — per-widget
click-through still lets buttons/controls catch clicks. Single-instance, optional autostart.
diff --git a/client/gallery/Gallery.tsx b/client/gallery/Gallery.tsx
index 524c2b4..98147aa 100644
--- a/client/gallery/Gallery.tsx
+++ b/client/gallery/Gallery.tsx
@@ -74,7 +74,8 @@ const OVERRIDES: Record = {
{ id: 'hdmi', name: 'HDMI Display' }
],
default_audio_output: 'spk',
- get_audio_volume: { level: 0.62, muted: false }
+ get_audio_volume: { level: 0.62, muted: false },
+ // The Monitor Switch sources its rows from list_monitor_inputs (DDC/CI VCP 0x60), not the hub —
+ // canned a representative 4K monitor (current = HDMI 1; DP/HDMI×2/USB-C supported) so it renders.
+ list_monitor_inputs: [
+ {
+ gdi: '\\\\.\\DISPLAY1',
+ friendly: 'Dell U2723QE',
+ primary: true,
+ current_input: 0x11, // HDMI 1
+ supported: [0x0f, 0x11, 0x12, 0x15], // DisplayPort 1, HDMI 1, HDMI 2, USB-C
+ width: 2560,
+ height: 1440,
+ refresh_hz: 144
+ }
+ ]
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(window as any).__TAURI_INTERNALS__ = {
diff --git a/docs/img/demo.png b/docs/img/demo.png
index 950026f..7441d8b 100644
Binary files a/docs/img/demo.png and b/docs/img/demo.png differ
diff --git a/docs/img/studio.png b/docs/img/studio.png
index 2b856ce..16869e3 100644
Binary files a/docs/img/studio.png and b/docs/img/studio.png differ
diff --git a/docs/img/widgets/agenda.png b/docs/img/widgets/agenda.png
index f60d44c..fd962b5 100644
Binary files a/docs/img/widgets/agenda.png and b/docs/img/widgets/agenda.png differ
diff --git a/docs/img/widgets/airquality.png b/docs/img/widgets/airquality.png
index 3591679..5ab93b4 100644
Binary files a/docs/img/widgets/airquality.png and b/docs/img/widgets/airquality.png differ
diff --git a/docs/img/widgets/autotheme.png b/docs/img/widgets/autotheme.png
index 187594c..08d4bb5 100644
Binary files a/docs/img/widgets/autotheme.png and b/docs/img/widgets/autotheme.png differ
diff --git a/docs/img/widgets/gpu.png b/docs/img/widgets/gpu.png
index f12077a..7f14eeb 100644
Binary files a/docs/img/widgets/gpu.png and b/docs/img/widgets/gpu.png differ
diff --git a/docs/img/widgets/ha.binary_sensor.png b/docs/img/widgets/ha.binary_sensor.png
new file mode 100644
index 0000000..3f67688
Binary files /dev/null and b/docs/img/widgets/ha.binary_sensor.png differ
diff --git a/docs/img/widgets/ha.climate.png b/docs/img/widgets/ha.climate.png
index 092d22e..27aa437 100644
Binary files a/docs/img/widgets/ha.climate.png and b/docs/img/widgets/ha.climate.png differ
diff --git a/docs/img/widgets/ha.cover.png b/docs/img/widgets/ha.cover.png
new file mode 100644
index 0000000..fddb0f7
Binary files /dev/null and b/docs/img/widgets/ha.cover.png differ
diff --git a/docs/img/widgets/ha.fan.png b/docs/img/widgets/ha.fan.png
new file mode 100644
index 0000000..07f1bfa
Binary files /dev/null and b/docs/img/widgets/ha.fan.png differ
diff --git a/docs/img/widgets/ha.input.png b/docs/img/widgets/ha.input.png
new file mode 100644
index 0000000..92334f7
Binary files /dev/null and b/docs/img/widgets/ha.input.png differ
diff --git a/docs/img/widgets/ha.light.png b/docs/img/widgets/ha.light.png
index a1af153..bb827f5 100644
Binary files a/docs/img/widgets/ha.light.png and b/docs/img/widgets/ha.light.png differ
diff --git a/docs/img/widgets/ha.lock.png b/docs/img/widgets/ha.lock.png
new file mode 100644
index 0000000..f709b76
Binary files /dev/null and b/docs/img/widgets/ha.lock.png differ
diff --git a/docs/img/widgets/ha.media_player.png b/docs/img/widgets/ha.media_player.png
new file mode 100644
index 0000000..8184305
Binary files /dev/null and b/docs/img/widgets/ha.media_player.png differ
diff --git a/docs/img/widgets/ha.scene.png b/docs/img/widgets/ha.scene.png
new file mode 100644
index 0000000..a5c8691
Binary files /dev/null and b/docs/img/widgets/ha.scene.png differ
diff --git a/docs/img/widgets/ha.sensor.png b/docs/img/widgets/ha.sensor.png
index 23d9af2..969aebb 100644
Binary files a/docs/img/widgets/ha.sensor.png and b/docs/img/widgets/ha.sensor.png differ
diff --git a/docs/img/widgets/ha.switch.png b/docs/img/widgets/ha.switch.png
new file mode 100644
index 0000000..3b73fe6
Binary files /dev/null and b/docs/img/widgets/ha.switch.png differ
diff --git a/docs/img/widgets/monitorswitch.png b/docs/img/widgets/monitorswitch.png
new file mode 100644
index 0000000..199b9bd
Binary files /dev/null and b/docs/img/widgets/monitorswitch.png differ
diff --git a/docs/img/widgets/nowplaying.png b/docs/img/widgets/nowplaying.png
index 0b4df47..c55fb5e 100644
Binary files a/docs/img/widgets/nowplaying.png and b/docs/img/widgets/nowplaying.png differ
diff --git a/docs/img/widgets/rss.png b/docs/img/widgets/rss.png
index 532c8bc..85ae54a 100644
Binary files a/docs/img/widgets/rss.png and b/docs/img/widgets/rss.png differ
diff --git a/docs/img/widgets/sunmoon.png b/docs/img/widgets/sunmoon.png
index 1afa0a5..ba7bb01 100644
Binary files a/docs/img/widgets/sunmoon.png and b/docs/img/widgets/sunmoon.png differ
diff --git a/docs/img/widgets/ticker.png b/docs/img/widgets/ticker.png
index 7b082a5..65e9996 100644
Binary files a/docs/img/widgets/ticker.png and b/docs/img/widgets/ticker.png differ
diff --git a/docs/img/widgets/weather.png b/docs/img/widgets/weather.png
index e8ce89d..bb13672 100644
Binary files a/docs/img/widgets/weather.png and b/docs/img/widgets/weather.png differ