[Feature]: Native "Minimize active window" button action
- 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