AprilNEA / AprilNEA/OpenLogi

[Feature]: Native "Minimize active window" button action

Open
#894 0 comments 1 reaction 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

There's no built-in action to minimize just the currently focused window. The only close options are `ShowDesktop` (minimizes *all* windows) and macOS-only `MissionControl`/`AppExpose`. On Windows, `CustomShortcut` mapped to the native "Win+Down" minimize shortcut doesn't work either — see the second issue I'm filing.

### Proposed solution

Add a dedicated `Minimize` (or `MinimizeActiveWindow`) built-in action, implemented natively per platform (e.g. on Windows via `ShowWindow(GetForegroundWindow(), SW_MINIMIZE)`, on macOS via the Accessibility API), so it works out of the box without scripting workarounds.

### Alternatives considered

- `RunShellCommand` with a PowerShell one-liner calling Win32 `ShowWindow`/`GetForegroundWindow` — works, but on Windows the command appears to be spawned via a shell wrapper without `CREATE_NO_WINDOW`, so a console window briefly flashes on every press. Also, this approach is flagged/quarantined by some corporate EDR tools (e.g. SentinelOne) when compiled into a standalone helper .exe, which isn't practical in managed environments.
- `Shell.Application.MinimizeAll()` via COM — minimizes *all* windows, not just the active one, so it doesn't fit the use case.

### Related area(s)

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

### Additional context

Device: Logitech Lift Vertical Ergonomic Mouse, OpenLogi on Windows 11. Would also be worth checking whether `RunShellCommand` sets `CREATE_NO_WINDOW` when spawning the shell wrapper on Windows — it currently doesn't seem to, causing a visible console flash for any RunShellCommand binding.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the built-in button-action definitions and the platform-specific window-control entry points in the Rust application. Compare the existing ShowDesktop and macOS actions, then verify how configuration exposes actions in TOML. Done means a Minimize action targets only the focused window on supported platforms and can be triggered through button remapping without minimizing every window.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.