Skip to content

Volumey 2.0.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Oct 20:26
· 2 commits to main since this release

Downloads

  • Volumey_2.0.0.0_x64.zip: everything included, starts on any Windows 10/11 PC (64-bit). The in-app update uses this one.
  • Volumey_2.0.0.0_x64_framework-dependent.zip: smaller, but requires the .NET 10 Desktop Runtime (x64).
  • Or get it from the Microsoft Store.

SHA-256:

fe410ce4c203fbbeee799041c87dcef1f82e27d5e46a55890dea8f3234413786  Volumey_2.0.0.0_x64_framework-dependent.zip
2bfd9be04bf6db2091ad4e2560f39c7b1b4df3a27e5eaa4dbd9316e151425fba  Volumey_2.0.0.0_x64.zip

Changes since 1.5.4.0

  • The new app icon in the package assets and the exe (05285e3)
  • About: only the version and the update check, no app icon or name (46a154c)
  • README: the new icon, from the repository (f1fdafb)
  • Version 2.0.0.0 (9e00769)
  • Russian: simpler wording for the tray, hotkey mode, volume step, OSD and About texts (3d1639e)
  • UI tests: rest the pointer on the tray icon before right-clicking it (70c15fd)
  • UI tests: find a saved app's card by its expand pattern (d12f772)
  • UI tests: skip a tray icon that goes away while the tray is searched (869653e)
  • UI tests: GitHub link tests are inconclusive without internet (932e251)
  • UI tests: resize the mixer away from the screen's edge (079fc78)
  • UI tests: keep Windows 10's hidden icons flyout from closing under them (e96fc75)
  • Name list rows, the hotkey mode choices and card expand buttons for screen readers (249514a)
  • UI tests: find the Windows 10 tray icon, survive a slow start in a VM (efb1299)
  • Retry a settings save while settings.json is in use (a0780ff)
  • UI tests in a VM: install the .NET 10 Desktop Runtime from the host (aa70e24)
  • UI tests in a VM: keep the settings file in the repository's root, ignored by git (c13e636)
  • UI tests in a VM: read the VM and its sign-in from a settings file (6ae172e)
  • Keep the OSD on screen with large distances from the edges (ee72281)
  • UI tests: run them in a VMware VM from the builds alone (cc42420)
  • Keep the settings folder override in the autostart entry and shortcut (5c3a5c6)
  • Keep the settings folder override when Windows restarts the app (edea88c)
  • Tidy the README and show the 2.0 mixer (8464ded)
  • Require Windows 10 2004 (build 19041) (345f000)
  • Follow device renames in the Devices page's device list (3fa8f65)
  • Update the README for 2.0 (50abb1a)
  • Turn on nullable reference types in the views and the remaining files (193773a)
  • Turn on nullable reference types in Services and Helper (444e6bd)
  • Grey out the sliders of muted apps and devices (bf966d3)
  • Turn on nullable reference types in the view models (579a8fb)
  • Turn on nullable reference types in Model and DataProvider (6890375)
  • Read the Start menu shortcut off the UI thread at start (bc8d84e)
  • Release the Start menu shortcut's COM objects right away (38ba612)
  • Seal the classes nothing derives from (bd9470f)
  • Don't add HotKeyBox's handlers again when its template is applied again (afa05f8)
  • Remove two finalizers that never run (09320cd)
  • Remove the unused ObservableConcurrentDictionary (f8d7255)
  • Report each app volume or mute change once (b273693)
  • Fix the pressed color of WPF-UI's ui:Button (ca45326)
  • Show the icon of an app's window, like the taskbar and Windows' mixer (74bacac)
  • Remove the rows of apps that can't be watched for their exit (c6bf445)
  • Read app icons with ExtractIconEx, straight into the image (6676df6)
  • Use an app's first visible icon when the exe's first icon is empty (04161a7)
  • Read the path, name and description of apps that can't be opened (d2bf081)
  • Read each app's icon once and share it as a frozen image (b0d4687)
  • Mark the default device in the mixer's device list (aaeb469)
  • Pick the device with real clicks in the mixer's device picker UI test (05376e7)
  • Pick a device in the mixer's combo box with the mouse (0cbc16f)
  • Compare device IDs ordinally (038fafa)
  • Don't hold a pool thread while the screen list is applied (0954ac9)
  • Keep one model per device when Windows reports a new device twice (1da09a7)
  • Take an outside device volume change over without writing it back (0ccc8b6)
  • Update the tray tooltip at most every 100 ms (eaf3b3d)
  • Queue one OSD update per app at a time (3581aaa)
  • Pass channel level changes that come together on to the UI thread once (b08bfb3)
  • Sync the app volumes once for device volume changes that come together (e50d296)
  • Fewer calls to Windows per app volume change (8c19da9)
  • Follow channel levels only for the selected device on a visible Devices page (50301b1)
  • Release the device icon when its model is disposed (a4694e2)
  • Match the foreground app by process id before opening its process (8bf688b)
  • Fit the settings window on small screens (48754fe)
  • Test that the volume step box arrows save the step (5a07118)
  • Save the volume step and limit when their arrows are clicked (0fff488)
  • Build portable PDBs in Release and Store (e24021a)
  • Remove an unused using (ad8f43f)
  • Remove AppServices and the view model resources (3b61e4c)
  • Pass the hotkey service and mode to the hotkey boxes and note through bindings (a364ac2)
  • Bind the mixer window, mixer and tray to MainViewModel (fcce56a)
  • Rename SettingsViewModel to HotkeyModeViewModel (3858806)
  • Give each settings page its view model through its constructor (fb59793)
  • Create the settings view models in the container (94887bf)
  • Create services and view models in a container at startup (6db15d0)
  • Fail UI tests on logged binding errors (4570d2d)
  • Log binding errors in Debug builds (56c45eb)
  • Keep comments to explaining the code (f6b156c)
  • Release startup sessions that don't end up in the mixer (82b03f6)
  • Read a device's formats again when exclusive mode is allowed (536538c)
  • Show device volume changes caused by a balance change (0164b89)
  • Match devices by ID before name for the make-default hotkeys (336488e)
  • Wait for a settings write that's already running when flushing (32d461f)
  • Keep window mode's position in physical pixels and the mixer on its screen (596cdeb)
  • Keep the pop-up's remembered position in physical pixels (e052bfc)
  • Change a saved app's hotkey on every running process of the app (d3bc503)
  • Release an app's process when its model is disposed (1f7b0ec)
  • Show an error when saved device or app hotkeys fail to register (ebbf910)
  • UI test workflow: not on draft pull requests (fb7819b)
  • UI test workflow: runs on pull requests and by hand, no ci/ui-tests branch (986cc72)
  • UI tests: the update dialog fits the pop-up and Later closes it (110a73b)
  • Translations: Russian OK button "ОК", Turkish Exit capitalized (485504d)
  • Debug builds: VOLUMEY_SHOW_UPDATE_DIALOG=1 shows the Store build's update dialog (c44f527)
  • Update dialog: the text wraps to the dialog's width (b993cc5)
  • Mixer: the expand badge's chevron in the theme's text color (b6e65cf)
  • Release workflow: the notes list every commit since the previous version (f594e19)
  • Release workflow: a version tag builds the zips and drafts the GitHub release (8451ed8)
  • Start with Windows works on a profile without a Run key; UI tests on CI (62dfbaa)
  • UI test workflow: don't end the step at the test run's first stderr line (80963aa)
  • UI test workflow: failed tests as annotations and in the run's summary (10098d4)
  • UI test workflow: TEMP/TMP in the step, runner.temp isn't available in the job's env (f175b12)
  • UI tests: the two-session test reads the sessions' names right; tray tests and CI without audio (f135e27)
  • Package: a new test certificate (the old one expired in 2023) (888513e)
  • Release zips: a self-contained one for the updater and a framework-dependent one (459ac5e)
  • UI test: an app with two sessions; session sliders and the expand button get names (7ae8e90)
  • UI tests: Notifications and About pages (23ceb5a)
  • UI tests: App hotkeys and Devices pages; device list tags exposed to screen readers (1d08239)
  • UI tests: General page, Volume mixer page, mixer window and tray menu (68eddaf)
  • UI tests: foreground-app and media key hotkeys, restart checks for the App hotkeys and Devices pages (bf8805d)
  • Hotkey boxes say when a combination is taken instead of staying empty (009484d)
  • Notifications: sliders for the edge distances, the sample OSD shows where it lands (3a15e5b)
  • OSD: Windows 11's flyout shape (8 px corners) and a regular-weight number (32fdeed)
  • WindowChrome: ignore any COMException of the frame extension, not only 0x80263001 (df51efc)
  • Survive two WPF bugs: a popup resized before it was positioned, a tablet list refresh (ce298a5)
  • Devices: retry reaching Windows audio at start, then in the background (a8fbf78)
  • Logging: expected process path and icon failures are debug, Loggly gets info and above (e6a7d11)
  • Survive WindowChrome's "desktop composition is disabled" failure (5fa907a)
  • UI tests: the pop-up is dragged with the position not remembered and reopens by the tray (bdd0f7d)
  • Mixer: the pop-up is dragged whether its position is remembered or not (15b489b)
  • UI tests: window mode is dragged by an empty spot and still by its title bar (fe368fa)
  • Mixer: window mode is dragged by any spot that isn't a control, like the pop-up (fdda208)
  • UI tests: the pop-up is dragged by an app's name (7d476f3)
  • Mixer: the pop-up is dragged by any spot inside the apps list too (c1fcb4a)
  • Remember position: clearer hint on dragging the pop-up (en, ru, uk) (31fcbbf)
  • Notifications page: the distance labels above their boxes (133f283)
  • Mixer: an option to remember its position, in both modes (339231c)
  • Mixer: one width for both modes, 1/5 narrower (368 px) (923d882)
  • Settings: the hotkey mode note at the top of every page that sets hotkeys (898697f)
  • Devices page: one header for the default device's volume hotkeys (a335ca8)
  • UI tests: the General, Volume mixer and Notifications pages survive a restart (b7fef40)
  • UI tests: the OSD (9ab4c14)
  • UI tests: the mixer's app rows and device controls (b2dbc88)
  • Mixer: the device's slider and mute button have automation IDs, the slider the device's name (66697ef)
  • UI tests: start Volumey in English (ebd83fe)
  • Media keys: names wrap, the boxes end at the card's edge (e5454ff)
  • Hotkey box: a placeholder too long for the box gets smaller instead of cut off (757146d)
  • Tests: every language translates every string with the same placeholders (e13427d)
  • Translations: every string in all 11 languages (91a23d5)
  • Localization: the OSD preview and the device format follow the language (96f88e8)
  • Resources: drop the 1.x strings the new UI doesn't use (08b9b98)
  • scripts: a README on running the UI tests (53f50d0)
  • UI tests: run script and a manual GitHub workflow (51891bf)
  • UI tests: device hotkeys and the hotkey mode (0249075)
  • UI tests: app hotkeys (25d3d83)
  • UI tests: media keys (c679069)
  • UI tests: project and the open-mixer hotkey (97d4421)
  • Settings: no footer items in the navigation (0af4cc8)
  • Settings: no separator above the navigation's footer (3cc06f6)
  • Settings window: at least 800 wide (a2538bb)
  • Volume mixer: the hotkey mode note under the open-mixer hotkey (eef0fb4)
  • Devices: the hotkey mode note right after the hotkey cards (c3f5fd5)
  • Settings: the hotkey mode note on every page with hotkeys (a9efdd9)
  • Settings: shorter notes (0b8a28d)
  • Devices: drop spatial sound (df5de9a)
  • Devices: drop the audio enhancements switch (d7e181b)
  • Settings: no Source code item in the navigation (d886e34)
  • About page (40bcf71)
  • OSD: right place and sharp text on a scaled screen (0868940)
  • Notifications page (14a9b17)
  • Own OSD window instead of the Notification.Wpf fork (b891f7e)
  • Placeholder text in every hotkey box (900cdfc)
  • Media keys page (f418f48)
  • Devices: spatial sound, enhancements, exclusive mode and balance (30e63c0)
  • Device mute hotkey: unmute again (0d702f3)
  • Devices: change a device's format (a5fc0b4)
  • Settings: the Devices page (40ad113)
  • Mixer: volume numbers in the normal text color (4db8cf4)
  • Captions in the secondary text color (149c2fa)
  • Toggle switches keep their color on hover (a2d24ff)
  • Hotkey boxes: readable keys while disabled (e09a12c)
  • Settings: the App hotkeys page (4ec82e0)
  • Update dialog: apply WPF-UI's dialog style (ca13e38)
  • Hotkey boxes: show the keys as key caps (65a9c37)
  • Settings pages: scroll anywhere on the page; hotkey mode stays selected (7af95ad)
  • Settings: the Volume mixer page (f3fb3f0)
  • Volume step box: show the clamped value even when it doesn't change (c194616)
  • Volume step box: commit the typed value when the window loses focus (10aafff)
  • Volume step box: digits only (033c33a)
  • General page: wider volume step box (74d23b5)
  • Mixer: keep the scroll bar off the mute buttons (6dde65d)
  • Mixer: the bottom bar with Sound settings and settings in window mode too (aa8fb24)
  • Slider thumb: 10 px inner circle in the fill's accent color, like Windows (9885436)
  • Slider thumb grows on hover like Windows 11 instead of changing color (201652e)
  • Fix black text on the settings pages after a dark start (185b5b2)
  • Redesign: tray menu from the mockup, mute button names, settings window size (5fbc67b)
  • Redesign prototype on WPF-UI: mixer flyout, window mode, settings window (5919fd9)
  • Respect the OSD switch for foreground-app hotkeys (024fe56)
  • Update Autoupdater.NET to 1.9.3 (d9a8c8b)
  • Turn on nullable reference types in the audio wrapper (3da2948)
  • Take the Loggly key out of the repository, update log4net to 3.5.0 (19b4b38)
  • Test the Win32 calls behind hotkeys, the window menu, restarts and the second start (bb6cb6f)
  • Small cleanups: one percent conversion, Math.Clamp, static loggers, one catch for volume writes (bef1b78)
  • Generate view model properties and commands with CommunityToolkit.Mvvm (ef5519f)
  • Share the hotkey and screen view model plumbing (00247a5)
  • Generate the Win32 declarations with CsWin32 (c1db554)
  • Remove dead code (c46a45a)
  • Reformat the code to the style baseline (c3d40fc)
  • Add .editorconfig with the code style baseline (061e09c)
  • Remove CLAUDE.md (f6d2d33)
  • Update the status notes in CLAUDE.md (f66f2c0)
  • Fix the remaining small bugs from the audit (82042de)
  • Write settings on the UI thread and debounce the file writes (2d6ed2b)
  • Fix hotkey lifecycle bugs (bf0a98d)
  • Fix hotkey user counting and the duplicate check (8279134)
  • Replace async void handlers with logged fire-and-forget tasks (799a3f7)
  • Remove UI-thread waits from audio callbacks and releases; fix a flaky test (62ab53c)
  • Fix icon ownership and stop waiting for the UI thread to extract icons (53f0aa6)
  • Log crashes on every thread in every build (d9a8aab)
  • Plan: code quality audit and modernization (item I) (cb536a5)
  • Notes: the OSD under exclusive fullscreen games (#63) (9e0855a)
  • Apply the re-checked screen on the UI thread (d9a1aeb)
  • Add dev-only diagnostics for the foreground-app hotkeys (#63, #88) (d009daf)
  • Place the OSD correctly on a scaled screen (#76) (f47b5fb)
  • Fix the crash after sleep and wake (#57) (0a2e3ba)
  • Limit logging of the ignored window update failure and refresh windows (#58, #66) (34ac2bc)
  • Plan: a view of each device's supported features (item H) (26fa7a2)
  • Rebuild a reconfigured device instead of restarting the app (#82, #85) (1780821)
  • Drop the settings migration; import 1.x screen indexes directly (60397f3)
  • Remember screens by device name, not by index (#92) (a0a5f7c)
  • Show saved default-device hotkeys on the settings page (#18) (bc7cae3)
  • Open the popup when the app is started again in popup mode (#74) (1d30f18)
  • Switch the tray icon to H.NotifyIcon.Wpf with the native tooltip (839cf2f)
  • Add handoff notes and a test-session helper (453b47e)
  • Survive the WPF window update quota failure; triage the GitHub issues (26ea073)
  • Mark the 1.x Store import path as unchecked in CLAUDE.md (689a3f3)
  • Record the tray and installed MSIX checks; correct the MSIX settings path note (729aac7)
  • Record the 2.0 runtime checks in CLAUDE.md (484b1f3)
  • Keep dev builds away from the installed app's autostart and shortcut (e77c55b)
  • Replace the app's statics with a composition root and constructor injection (67db3e1)
  • Defer the tray icon change to the UI redesign in CLAUDE.md (4c2df3a)
  • Test that hotkeys block by default; record the owner's hotkey check (ad1cf1e)
  • Add non-blocking hotkeys through SharpHook (b7b7235)
  • Add audio integration tests and fix repeated session echoes (07137de)
  • Add ViewModel tests and fix the bugs they found (56aa7e2)
  • Add unit tests for converters, controls, localization and settings loading (b6e9b3e)
  • Update CLAUDE.md: NAudio step verified (b4dd4d5)
  • Fix a hang when an audio device is disabled (70206d3)
  • Record NAudio device volume checks in CLAUDE.md (5319475)
  • Record NAudio session checks in CLAUDE.md (c3be828)
  • Move the audio layer to NAudio.Wasapi 3.1 (ddcd290)
  • Plan hotkeys via a library and the H.NotifyIcon tray icon in CLAUDE.md (aa16771)
  • Update current state in CLAUDE.md (de5f473)
  • Clean up build warnings, packaging and dependencies; add CI (75e9294)
  • Update git remotes note in CLAUDE.md (c20686f)
  • Add isolated dev runs and UI inspection scripts (4e29414)
  • Replace BinaryFormatter settings with settings.json (Nucs.JsonSettings) (d172985)
  • Describe release/2.0 branching workflow in CLAUDE.md (fb3c403)
  • Document NAudio coverage gaps in CLAUDE.md (029e78b)
  • Add CLAUDE.md with project notes for coding agents (8c9f26a)
  • Retarget to .NET 10 and move tests to MSTest 4 (e07cdb1)
  • Switch tests from xUnit to MSTest (1443a48)