[Feature]: Native "Move active window to next display" action (or working CustomShortcut path to Win+Shift+Arrow on Windows)
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 172
Description
Hi! I would love a built-in action that moves the current foreground window to the next monitor — similar in spirit to #635 / #894 (native window-management actions). Either of these would work:
1. **A native `MoveWindowNextDisplay` / `MoveWindowPreviousDisplay` action** in the catalog. On Windows it could synthesize Win+Shift+←/→; macOS/Linux have their own equivalents.
2. **Or fix the CustomShortcut path so it can send the Win key on Windows.** Currently `post_custom_shortcut` in `crates/openlogi-inject/src/inject/windows.rs` maps `has_command()` → `VK_CONTROL`, so writing `CustomShortcut = "Win+Shift+Right"` actually produces Ctrl+Shift+Right, and there is no way at all to reach very common Win-key chords (Win+Shift+Arrow for displays, Win+Arrow snapping, etc.). A dedicated `Meta` modifier that maps to `VK_LWIN` would unlock all of these.
Use case: binding a mouse side button (e.g. Back) to toss the current window to my second monitor. Today the only workaround is a `RunShellCommand` PowerShell script, but since the agent runs it via `cmd /C`, the console window steals focus and breaks foreground-window detection.
Thanks for the great project!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in crates/openlogi-inject/src/inject/windows.rs, especially post_custom_shortcut and its has_command() mapping. Compare the two proposed approaches and trace the existing action or shortcut path before choosing a scope. Done means the selected path can trigger Win+Shift+Arrow without the PowerShell workaround and preserves foreground-window behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100