Skip to content

Releases: jeffreytse/winsoftvol

v0.3.0

14 Jun 13:07
06566a9

Choose a tag to compare

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_device in [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_presets in [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_percent in [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 PerMonitorV2 DPI 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.md to document all v0.3.0 features, expanded config table, and updated tray menu reference (06566a9)

πŸ’… Style & Formatting

  • Apply cargo fmt formatting (a9ee0f2)

Full Changelog: v0.2.0...v0.3.0

v0.2.0

11 Jun 12:20
fb1e600

Choose a tag to compare

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.toml with 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 GetMasterVolume fails (163296e)
  • Resolve incorrect string length calculation in UTF-16 encoding (c91e7be)
  • Clamp cap_percent to [10, 100] after TOML parse β€” a value of 0 previously silenced all audio (83476a5)
  • Embed comctl32 v6 manifest β€” fixes "procedure entry point TaskDialogIndirect could not be located" crash on startup (a57248e)

πŸ“ Documentation

  • Update README.md to reflect current features (3edc774)
  • Add LICENSE file (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

  • Resolve code formatting issues and align with styling guidelines (f504ef2, a3a90b7)

πŸ”§ Build & Maintenance

  • Add make lint command to check format and lint errors (0736974)
  • Add make fix command 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

01 Jun 16:41
194a6b2

Choose a tag to compare

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

  • Update README.md to reflect project goals and instructions (2778584, bdf0350)

πŸ§ͺ Tests & CI

  • CI: Change build workflow to a dedicated release workflow (d523fca)
  • Testing: Add test suites for better application stability (1d6ee49)

πŸ’… Style & Formatting

  • Resolve code formatting issues and align with styling guidelines (194a6b2, 8eaeb45)

πŸ”§ Chores & Maintenance

  • Rename the project officially to "winsoftvol" (6c4dd7b)
  • Add and update .gitignore file for cleaner source control (5d0ea60, 1d3d8cf)

Full Changelog: https://github.com/jeffreytse/winsoftvol/commits/v0.1.0