Skip to content

Feature: Configurable volume step snapping (1-50%) - #1792

Open
dantheman4700 wants to merge 3 commits into
File-New-Project:devfrom
dantheman4700:feature/volume-step-snapping-dev
Open

Feature: Configurable volume step snapping (1-50%)#1792
dantheman4700 wants to merge 3 commits into
File-New-Project:devfrom
dantheman4700:feature/volume-step-snapping-dev

Conversation

@dantheman4700

@dantheman4700 dantheman4700 commented Jan 12, 2026

Copy link
Copy Markdown

Adds a configurable volume step, with optional snapping to that step's grid.

Settings (Community settings page)

  • VolumeStepAmount — 1-50%, default 2%, which matches today's behaviour
  • UseRangeSnapping — the volume lands on the step grid instead of offsetting from wherever it happens to sit
  • UseSliderSnap — slider drag snaps to the step grid

Where the step applies

The step applies to every control that nudges the volume, so the setting behaves the same however you adjust it:

  • the flyout and mixer sliders, both wheel and drag
  • the tray icon scroll wheel
  • the global mouse wheel hook
  • the absolute volume up/down hotkeys

VolumeStepper is the single place that decides how far one nudge moves and where it lands, so the snap maths isn't duplicated per control. 100% stays reachable even when the step doesn't divide evenly into it.

Deliberately unchanged

  • Logarithmic volume keeps its existing per-control step. These settings are expressed in percent and don't map onto decibels.
  • Action-configuration sliders (UseCustomRange) carry their own units and bounds, so they keep their current behaviour rather than snapping to a 0-100 grid.

Made discussion but no attention: 1788

@CLAassistant

CLAassistant commented Jan 12, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

- Add VolumeStepAmount setting (1-50%, default 2%)

- Add UseRangeSnapping setting to snap scroll wheel to volume grid

- Add UseSliderSnap setting to snap slider drag to volume steps

- Snapping features are disabled when UseLogarithmicVolume is ON

- Update VolumeSlider with snap point calculation logic

- Add UI controls in Community Settings page

- Add localized resource strings
@dantheman4700
dantheman4700 force-pushed the feature/volume-step-snapping-dev branch from 86d57eb to d562157 Compare January 12, 2026 21:35
@riverar

riverar commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Will take a look tomorrow (Thursday), thanks!

The configurable step and snapping settings only reached the flyout
sliders. Everything else still moved the volume by a hardcoded 2%, so the
setting appeared to do nothing depending on how the volume was adjusted.

Add VolumeStepper as the single place that decides how far one nudge moves
and where it lands, and route the remaining controls through it:

- the tray icon scroll wheel
- the global mouse wheel hook, which also ignored logarithmic volume
- the absolute volume up/down hotkeys

VolumeSlider now shares that helper rather than carrying its own copy of
the snap maths.

Logarithmic volume keeps its existing per-control step, since the step and
snapping settings are defined in percent and do not apply to decibels.
Action-configuration sliders (UseCustomRange) are likewise left alone -
they carry their own units and bounds, so snapping them to a 0-100 grid
was wrong.

Also clamp VolumeStepAmount when reading it. The setter already bounded
the value, but a step of zero written straight to the registry would have
reached the snap maths and divided by zero.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YT7kv6fxQcdQqWcvZt2kKd
@dantheman4700
dantheman4700 force-pushed the feature/volume-step-snapping-dev branch from 03d51d6 to c23b729 Compare August 27, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants