Releases: jeffreytse/winsoftvol
v0.3.0
Release v0.3.0
This release adds scheduled night mode, startup volume, per-device pinning, configurable cap presets, configurable scroll step, and a live tray tooltip β all configurable from config.toml with hot-reload and most togglable directly from the tray menu.
π Features
- Night Mode: Automatically lower the volume cap on a configurable time window (e.g. 22:00β07:00). Enabled/disabled from the tray "Night mode" toggle; saved to config immediately. Wraps midnight correctly (b04432c)
- Startup Volume: Set a fixed volume level on every launch, regardless of what Windows last had. Selectable from the new "Startup volume" tray submenu (Off + cap presets) (e8b6a46)
- Device Pinning: Lock WinSoftVol to a specific audio device by friendly name via
pin_devicein[general]. Falls back to the Windows default device with a toast notification when the pinned device is absent. Per-device[device."..."]config sections are now wired up and apply their cap/softvol settings when the matching device is active (33d8394) - Configurable Cap Presets: Replace the hardcoded 100/80/60/40 presets with
cap_presetsin[general]. Any sorted list of values in 10β100 is accepted; the tray submenu rebuilds from config on hot-reload (661d8a4) - Configurable Scroll Step:
scroll_step_percentin[general]controls how much each scroll notch adjusts volume (default 2%, range 1β20%). Hot-reload applies the new step immediately (d13197d) - Tray Tooltip: Hovering the tray icon now shows the current volume percentage and active cap (e.g.
75% | cap: 80%;Muted | cap: 80%) (6f44c15) - DPI Awareness: Application manifest updated to
PerMonitorV2DPI awareness so the tray icon renders correctly on high-DPI displays (ea7d4be)
π Bug Fixes
- Volume cap now applies immediately to existing audio sessions when a preset is selected from the tray menu or when the config is hot-reloaded β previously, the new cap only took effect after the next volume change (3f3d8b2)
π Documentation
- Update
README.mdto document all v0.3.0 features, expanded config table, and updated tray menu reference (06566a9)
π Style & Formatting
- Apply
cargo fmtformatting (a9ee0f2)
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Release v0.2.0
This release significantly expands WinSoftVol with new tray interactions, a persistent config file with hot-reload, volume cap controls, device change notifications, exclusive mode detection, an upgraded About dialog, and automatic update detection.
π Features
- Volume Cap: Add volume cap support β set a ceiling on maximum output (100% / 80% / 60% / 40%) from the tray menu (52288f4)
- Scroll Wheel: Adjust volume Β±2% per notch directly on the tray icon (2ca5a6b)
- Left-click Mute: Toggle mute/unmute with a single left-click on the tray icon (da4a7ed)
- Dynamic Tray Icon: Real-time volume bar overlay on the tray icon; bar turns red when muted (e0338d1)
- Device Change Notification: Toast notification confirms re-initialization after USB plug/unplug (cadd0f9)
- Exclusive Mode Warning: Detects when a game or DAW takes WASAPI exclusive mode and notifies the user (a444ca4)
- Config File: Persistent settings in
%APPDATA%\WinSoftVol\config.tomlwith hot-reload β changes apply without restarting; supports per-device overrides (3e67028) - About Dialog: Upgraded to TaskDialog with clickable links to the project homepage and GitHub Sponsors; shows a download link when a newer version is available (e7c630a)
- Auto-update Check: Background thread checks GitHub for new releases on startup. Fires a clickable toast notification (opens the release page directly) and surfaces a download link inside the About dialog when a newer version is found (5db0ddc)
π Bug Fixes
- Resolve volume cap logic bugs (81d5f2d)
- Volume cap menu items now correctly uncheck the previously selected preset (85e7a35)
- Left-click tray icon now correctly opens the popup menu (82b4361)
- Resolve wrong volume applied when
GetMasterVolumefails (163296e) - Resolve incorrect string length calculation in UTF-16 encoding (c91e7be)
- Clamp
cap_percentto[10, 100]after TOML parse β a value of0previously silenced all audio (83476a5) - Embed comctl32 v6 manifest β fixes "procedure entry point TaskDialogIndirect could not be located" crash on startup (a57248e)
π Documentation
- Update
README.mdto reflect current features (3edc774) - Add
LICENSEfile (d8b9aa8) - Add
CONTRIBUTING.md(6215abc) - Document config file, hot-reload, and About dialog links in README (48bdb85)
- Document auto-update check feature in README (06d7528)
π§ͺ Tests & CI
- Expand test coverage across audio session management, config parsing, and tray presets (4ecdd19)
π Style & Formatting
π§ Build & Maintenance
- Add
make lintcommand to check format and lint errors (0736974) - Add
make fixcommand to quickly apply fmt and lint fixes (271d5b7) - Update funding sources in
FUNDING.yml(ede4c2c)
Full Changelog: v0.1.0...v0.2.0
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Release v0.1.0 (Initial Release)
Welcome to the initial release of winsoftvol! π
This release introduces the core functionality of the project, establishing the foundation for software-based volume control and per-app audio balancing.
π Features
- Core: Add softvol support to disable hardware volume (6ea2254)
- Audio Management: Preserve per-app balance when setting all sessions volume (e1c9cce)
- Foundation: Initial commit and project structure (b486650)
π Documentation
π§ͺ Tests & CI
- CI: Change build workflow to a dedicated release workflow (d523fca)
- Testing: Add test suites for better application stability (1d6ee49)
π Style & Formatting
π§ Chores & Maintenance
- Rename the project officially to
"winsoftvol"(6c4dd7b) - Add and update
.gitignorefile for cleaner source control (5d0ea60, 1d3d8cf)
Full Changelog: https://github.com/jeffreytse/winsoftvol/commits/v0.1.0