AprilNEA / AprilNEA/OpenLogi

[Feature]: Allow click and drag to change pointer DPI

Open
#754 1 comment 0 reactions 0 assignees View on GitHub
needs: triage type: feature
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
1d 6h
Merged PRs (30d)
180

Description

### Pre-flight checklist

- [x] I searched existing issues and the [Roadmap](https://github.com/AprilNEA/OpenLogi#roadmap), and this isn't already tracked.

### Problem / motivation

An older version of Options had this feature, then Options+ dropped it for some reason. I'd like to see this implemented in OpenLogi.

### Proposed solution

It's basically this: a binding for Cycle DPI would work as it does now when clicked, but also allows you to click and drag, and from that point dragging left decreases the current DPI and drag right increases it, with a small UI slider appearing near the cursor to visualise the change. When you let go of the button, the selected value is persisted in the current slot as if you manually changed it in the UI. The setting is app-specific if applicable (or global if not).

Some people might find it useful to click and scroll to change DPI instead - I think it's also valid. Dragging up/down instead would be another possibility.

There are multiple possible ways I see this implemented in the UI:

1) Keep the current "Cycle DPI Presets" action in the bindings, but add a checkbox under Pointer tuning that controls whether click+drag/click+scroll is active.

2) Add a distinct action (named something like "Cycle DPI Presets / Drag to adjust") that combines the two as proposed.

### Alternatives considered

The last version of Options had this, Options+ dropped the feature.

### Related area(s)

- [x] GUI
- [ ] CLI
- [x] Button actions / remapping
- [x] DPI
- [ ] SmartShift
- [x] Per-application profiles
- [ ] Configuration (TOML)
- [ ] Auto-update
- [ ] Other

### Additional context

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing Cycle DPI Presets binding, Pointer tuning UI, and per-application profile handling mentioned in the issue. Clarify whether click-and-drag or click-and-scroll is in scope and which proposed UI design to use. Done means dragging changes DPI with visible feedback and persists the selected value in the current slot.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.