[Bug]: Windows 11: Keyboard MX Mechanical: Defining a key binding does not work
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
Description
### Pre-flight checklist
- [x] I searched [existing issues](https://github.com/AprilNEA/OpenLogi/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I am on the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest) or a recent `master` build.
- [x] I quit **Logi Options+** before running OpenLogi (the two apps fight over HID++ access and only one can own a receiver at a time).
### Which part of OpenLogi?
GUI (desktop app)
### OpenLogi version
0.8.1
### Operating system
Windows
### OS version & architecture
Windows 11 Enterprise 10.0.26100
### Device model
MX Mechanical
### How is the device connected?
Bluetooth (direct, no receiver)
### Affected area(s)
- [ ] Device discovery / detection
- [x] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [ ] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [ ] Other
### What happened?
I was trying to map Screenshot to one of the keys F16 to F18.
Screenshot is not getting executed.
### Steps to reproduce
1. Open keys screen for remapping
2. Remap one of F16 - F18 to Screenshot
3. Try if screenshot works
### Diagnostics report
```markdown
### OpenLogi Diagnostics
**App**
- OpenLogi (GUI): v0.8.1 (release)
- Agent: v0.8.1 (connected)
- IPC protocol: GUI 28 / agent 28
- Inventory: ready
- OS: Windows (x86_64)
- Locale: en-US (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: no · Menu bar: yes · Update check: off
- Running from: source build (dev)
- Config: schema 6 · 2 configured device(s) · thumbwheel 14
**Assets**
- Source: user cache · Index: loaded (210 models) · User cache: present
- Cache path: C:\Users\rfy\.local/share/openlogi\assets · Bundle assets: absent
**Devices (4)**
- Slot 1 — keyboard
- Connection: Logi Unifying receiver · Online: no · Battery: n/a
- Capabilities: not probed
- DPI: read failed
- Model: wpid4003
- Render: ⚠️ none (silhouette) · Slot 1
- Slot 6 — keyboard
- Connection: Logi Unifying receiver · Online: no · Battery: n/a
- Capabilities: not probed
- Model: wpid400d
- Render: ⚠️ none (silhouette) · Slot 6
- MX Mechanical — keyboard (codename: MX Mechanical)
- Connection: Bluetooth (direct) · Online: yes · Battery: 70% (discharging, full)
- Capabilities: buttons=yes, pointer=no, lighting=no
- DPI: unsupported
- Model: 0b366 (model-ids: b366/0000/0000, ext-model: 00)
- Transports: BTLE
- Render: mx_mechanical · direct
- Logitech Webcam C930e — camera
- Connection: unknown · Online: yes · Battery: n/a
- Capabilities: not probed
- Model: 0843
- Render: c930e · Slot 0
**Receivers (1)**
- Unifying Receiver (VID 046d / PID c52b)
```
### `openlogi list` output
```text
schema_version = 6
selected_device = "receiver:e8c59a61:slot:1"
[devices."serial:2414sct045b8".identity]
display_name = "MX Mechanical"
codename = "MX Mechanical"
kind = "keyboard"
[devices."receiver:e8c59a61:slot:1".lighting]
enabled = true
color = "ffffff"
brightness = 100
[app_settings]
launch_at_login = false
check_for_updates = false
auto_install_updates = false
update_prompt_seen = true
show_in_menu_bar = true
capture_mouse_events = true
smooth_scroll = false
vertical_scroll_sensitivity = 14
app_icon = "openlogi"
auto_download_assets = true
asset_source = "automatic"
thumbwheel_sensitivity = 14
appearance = "system"
ui_scale = "normal"
device_view_mode = "grid"
[devices."serial:2414sct045b8".identity.model_info]
entity_count = 4
unit_id = [
0,
0,
0,
0,
]
model_ids = [
45926,
0,
0,
]
extended_model_id = 0
[devices."serial:2414sct045b8".identity.model_info.transports]
usb = false
equad = false
btle = true
bluetooth = false
[devices."serial:2414sct045b8".identity.capabilities]
buttons = true
pointer = false
lighting = false
scroll_inversion = false
hires_wheel = false
thumbwheel = false
haptic_feedback = false
haptic_panel = false
[devices."serial:2414sct045b8".links."direct:046d:b366".capabilities]
buttons = true
pointer = false
lighting = false
scroll_inversion = false
hires_wheel = false
thumbwheel = false
haptic_feedback = false
haptic_panel = false
[keyboard]
[keyboard.bindings]
f16 = "Screenshot"
f18 = "CaptureRegion"
f17 = "Screenshot"
```
### Logs
```shell
```
### macOS permissions (if applicable)
- [ ] OpenLogi has **Accessibility** permission (needed to remap buttons via the event tap).
- [ ] OpenLogi has **Input Monitoring** permission (needed for Bluetooth-direct devices and capture).
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the issue from the GUI keys screen by binding F16-F18 to Screenshot and CaptureRegion, then compare the behavior with the keyboard.bindings entries shown by openlogi list. Done means the configured screenshot action executes reliably for those keys on Windows 11 over a direct Bluetooth connection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100