Repository navigation
Releases
Releases · jorjanion/BatteryDock
v0.1.11
Full Changelog: v0.1.10...v0.1.11
BatteryDock v0.1.10
Fixes & Code Quality in v0.1.10
- Zero Warnings & Formatting: Eliminated all compiler dead-code warnings, all 20+ Clippy lints (
cargo clippy --all-targets -- -D warnings), and allrustfmtdiffs (cargo fmt --check). - Win11/Win10 Search Host Safeguard: Added
searchapp.exetois_shell_flyout_exe_and_classalongsidesearchhost.exe/searchui.exeso Windows Search overlays never falsely hide the dock. - Settings UI Polish: Wired
DeviceType::display_name()as hover tooltip text on device icons in Settings. - Full v0.1.9 Fixes Included: Strict taskbar-coupled visibility, Z-order above
Shell_TrayWnd, crisp vector charging bolt indicator, G HUB WebSocket + HID++0x1004/0x1000charging accuracy, native Win32 drag & context menu, and standalone Settings/Reset/Restart/Exit.
Full Changelog: v0.1.9...v0.1.10
v0.1.9
BatteryDock v0.1.8 - Exact Taskbar Visibility, Z-Order Lock and Charging Icon
Fixes & Improvements in v0.1.8
- Strict Taskbar-Coupled Visibility: Shows BatteryDock when the target taskbar is visible and unobstructed; hides immediately (
SW_HIDE) whenever fullscreen videos/games cover the monitor/taskbar or auto-hide hides the taskbar, and ignores desktop focus, Focus Assist, or other monitors. - Windows Key & Z-Order Lock: Continuously preserves
WS_EX_TOOLWINDOW | WS_EX_TOPMOSTwithoutwinitstyle resets and keeps the pill aboveShell_TrayWndso pressing the Windows key or clicking the taskbar never hides it. - Exact Positioning, Multi-Monitor & Drag: Enables Per-Monitor V2 DPI awareness before geometry queries, centers cleanly inside the taskbar next to
TrayNotifyWnd, supports negative multi-monitor coordinates inCustommode, and replacesStartDragwith a >5px threshold drag handler. - Vector Charging Icon & Accurate Detection: Adds a crisp two-triangle vector charging badge when peripherals are charging, removes
27⚡%text formatting, parses RFC 6455 G HUB WebSocket frames +/devices/list+ HID++0x1004get_status(0x11) /0x1000with error-frame filtering. - Settings & Sync: Fixes the dock gear icon button, adds single-instance protection for
--settings, keepsBatteryEnginelive in Settings (Refresh Now), and syncs all config fields atomically.
Full Changelog: v0.1.7...v0.1.8
BatteryDock v0.1.7 - Standalone Settings Window, Desktop PID Immunity & Clean Restart
Changes in v0.1.7
- Dedicated Standalone Settings Window (--settings):
- Completely replaced the experimental multi-viewport architecture (which fails to create secondary OpenGL surfaces on Windows with glow) with a dedicated native settings process.
- Clicking ⚙ Settings or double-clicking the tray icon now opens a rock-solid, fully decorated, opaque native window centered on your screen.
- Changes made in the settings window (battery thresholds, position, auto-start) are automatically picked up live by the running dock within ~1.5s.
- Added a dedicated BatteryDock Settings shortcut in the Start Menu.
- Desktop & Explorer PID Immunity:
- Resolved the desktop-click bug: whenever clicking on desktop icons (\SysListView32) or wallpaper, Windows focuses a shell control.
- Fullscreen detection now compares the foreground window's process ID directly with \GetShellWindow()\ (\explorer.exe). Any window or control owned by Explorer is completely exempt from fullscreen hiding.
- The dock will never falsely disappear when clicking the desktop, touching icons, or opening folders.
- Clean ShellExecute Restart:
- Fixed the CMD \\\\ syntax error dialog shown when clicking Restart BatteryDock.
- Replaced CMD timeout with in-memory mutex closure followed by native \ShellExecuteW.
- Restarting is now instantaneous (10ms), completely silent, with zero CMD terminal windows or error dialogs.
- Packaging:
- Updated Inno Setup installer (\BatteryDock-Setup-v0.1.7.exe) and portable archive (\BatteryDock-v0.1.7-windows-x64.zip).
Full Changelog: v0.1.6...v0.1.7
BatteryDock v0.1.6 - Multi-Monitor Precision, Solid Settings & Delayed Restart
Changes in v0.1.6
- Multi-Monitor Aware Fullscreen Detection:
- Fullscreen detection now checks \MONITORINFOF_PRIMARY. If the foreground application is on a secondary/vertical monitor, it will never hide the dock on the primary taskbar.
- Eliminated window teleportation to off-screen coordinates: the dock remains anchored to its taskbar position and simply switches to transparent + clickthrough (\MousePassthrough(true)) only when a true fullscreen video/game covers the primary screen.
- Opaque Settings Panel:
- Fixed transparent background bug in settings viewport by providing explicit solid dark background styling (\Frame::NONE.fill(Color32::from_rgb(26, 28, 34))) and dark visual override. The settings window is now completely opaque, focused, and centered on the primary monitor.
- Delayed Restart Command:
- Fixed single-instance mutex contention on restart: clicking Restart BatteryDock now launches a 1-second delayed process that waits for the previous instance to exit cleanly and release the mutex before spawning.
- Packaging:
- Updated Inno Setup installer (\BatteryDock-Setup-v0.1.6.exe) and portable archive (\BatteryDock-v0.1.6-windows-x64.zip).
Full Changelog: v0.1.5...v0.1.6
BatteryDock v0.1.5 - Desktop Immunity, Settings Focus & Reload Actions
Changes in v0.1.5
- Desktop False-Positive Fixed:
- When closing Explorer or switching to an empty desktop, the desktop window (#32769, \WorkerW, \Progman) covers the screen area. Previously, this was mistakenly identified as a fullscreen application.
- Added comprehensive shell window and desktop class filters and eliminated \SHQueryUserNotificationState\ (which returned false positives when Windows Focus Assist / Do Not Disturb was active).
- Maximized windows, Explorer windows, desktop wallpaper, and the taskbar itself are guaranteed to keep the dock visible.
- Settings Window Fixes:
- Centered the settings window on the user's primary monitor so it never opens off-screen.
- Enabled .with_always_on_top(), .with_active(true), and .with_visible(true)\ so the settings window pops up with focus immediately when clicked.
- Opening settings automatically ensures the dock is not in a hidden state.
- New Recovery & Restart Actions:
- Added 📌 Reset Dock Position to both the system tray menu and the dock right-click context menu (snaps dock back to the taskbar clock and forces a fresh scan).
- Added ♻ Restart BatteryDock to both menus (cleanly relaunches the application process in-place).
- Packaging:
- Updated installer (\BatteryDock-Setup-v0.1.5.exe) and portable archive (\BatteryDock-v0.1.5-windows-x64.zip).
Full Changelog: v0.1.4...v0.1.5
BatteryDock v0.1.4 - Decoupled Tray Thread & Robust Fullscreen Auto-Restore
Changes in v0.1.4
- Decoupled Tray Thread:
- System tray menu events (Exit, Settings, Refresh) and tray icon clicks are now processed in a dedicated native OS thread.
- Clicking Exit BatteryDock now calls std::process::exit(0) immediately within 30ms, completely immune to GUI event loop state.
- Clicking Settings or Left-Clicking the tray icon reliably opens the independent settings window.
- Robust Fullscreen Auto-Hide & Auto-Restore:
- Replaced SW_HIDE (Visible(false)) with instant off-screen translation. Because the window is never hidden with SW_HIDE, Windows and winit event loop timers never freeze or go to sleep.
- Fullscreen detection precisely differentiates between maximized windows (which stop at the taskbar) and true fullscreen apps/videos (which cover all 4 screen edges).
- Background thread heartbeat keeps the GUI event loop alive, guaranteeing instant reappearance of the dock when exiting YouTube fullscreen or games.
- Packaging:
- Includes Inno Setup installer (\BatteryDock-Setup-v0.1.4.exe) and portable archive (\BatteryDock-v0.1.4-windows-x64.zip).
Full Changelog: v0.1.3...v0.1.4
BatteryDock v0.1.3 - Instant Fullscreen Toggle & Auto-Restore
🚀 BatteryDock v0.1.3
🌟 Bug Fixes & Improvements
- Instant Fullscreen Auto-Hide & Auto-Restore: When watching YouTube in fullscreen or gaming, the dock hides in under 120ms without suspending the application event loop. As soon as you exit fullscreen, it immediately restores itself onto the taskbar.
- Transparent Click-Through (\MousePassthrough\): While in fullscreen mode, mouse clicks pass directly through to video controls (seek bar, pause, settings) seamlessly.
- Dedicated 120ms Watcher Thread: Ensures zero delay entering or exiting fullscreen while keeping 0% CPU consumption.
📦 Downloads
- Installer (.exe): BatteryDock-Setup-v0.1.3.exe
- Portable Edition (.zip): BatteryDock-v0.1.3-windows-x64.zip
Full Changelog: v0.1.2...v0.1.3
BatteryDock v0.1.2 - Fullscreen Auto-Hide & Tray Event Fix
🚀 BatteryDock v0.1.2
🌟 Key Improvements
- Fullscreen Video & Game Auto-Hide: The taskbar pill now detects when you are watching YouTube in fullscreen, streaming, or playing a game, and automatically hides itself so it never overlays your content. As soon as you exit fullscreen, it returns to the taskbar.
- Fixed Tray Menu & Exit Button: Dedicated event forwarding channel resolves the issue where clicking Exit BatteryDock, Settings, or Refresh Devices in the system tray did not respond.
- Taskbar Geometry Tracking via Windows Shell AppBar API: Uses official Win32 \SHAppBarMessage(ABM_GETTASKBARPOS)\ with automatic fallback, placing the dock right next to the system tray/clock area cleanly.
- Installer Process Cleanup: Inno Setup installer now forces running instances to close gracefully before updating (\CloseApplications=force).
📦 Downloads
- Installer (.exe): BatteryDock-Setup-v0.1.2.exe
- Portable Edition (.zip): BatteryDock-v0.1.2-windows-x64.zip
Full Changelog: v0.1.1...v0.1.2