feat: new cli command to focus a window using focus order (closes #4610)
This commit is contained in:
1 parent
a1cfd1de25
commit
84166ab954
2 files changed
+10
-2
No files matched your search
@@ -55,7 +55,10 @@ Change the shortcut keys, switch to a Windows theme and more, using the Preferen
|
|||||||
You can run CLI commands directly on the executable inside the .app bundle (e.g. `/Applications/AltTab.app/Contents/MacOS/AltTab`)
|
You can run CLI commands directly on the executable inside the .app bundle (e.g. `/Applications/AltTab.app/Contents/MacOS/AltTab`)
|
||||||
|
|
||||||
* `AltTab --list` will return the list of windows (ID and title) in JSON
|
* `AltTab --list` will return the list of windows (ID and title) in JSON
|
||||||
* `AltTab --focus=window_id` will focus the window with the specified window ID
|
* `AltTab --detailed-list` will return the list of windows (lots of info) in JSON
|
||||||
|
* `AltTab --show=shortcut_index` will show AltTab UI, as if the corresponding shortcut was pressed
|
||||||
|
* `AltTab --focus=window_id` will focus the window with the specified ID (get it from --list)
|
||||||
|
* `AltTab --focusUsingLastFocusOrder=focus_order` will focus the window with the specified focus-order (get it from --detailed-list)
|
||||||
|
|
||||||
For this to work, you need AltTab.app to be running, to keep track of the state of windows, and execute the commands
|
For this to work, you need AltTab.app to be running, to keep track of the state of windows, and execute the commands
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,11 @@ class CliServer {
|
|||||||
window.focus()
|
window.focus()
|
||||||
return noOutput
|
return noOutput
|
||||||
}
|
}
|
||||||
|
if rawValue.hasPrefix("--focusUsingLastFocusOrder="),
|
||||||
|
let lastFocusOrder = Int(rawValue.dropFirst("--focusUsingLastFocusOrder=".count)), let window = (Windows.list.first { $0.lastFocusOrder == lastFocusOrder }) {
|
||||||
|
window.focus()
|
||||||
|
return noOutput
|
||||||
|
}
|
||||||
if rawValue.hasPrefix("--show="),
|
if rawValue.hasPrefix("--show="),
|
||||||
let shortcutIndex = Int(rawValue.dropFirst("--show=".count)), (0...3).contains(shortcutIndex) {
|
let shortcutIndex = Int(rawValue.dropFirst("--show=".count)), (0...3).contains(shortcutIndex) {
|
||||||
App.app.showUi(shortcutIndex)
|
App.app.showUi(shortcutIndex)
|
||||||
@@ -122,7 +127,7 @@ class CliClient {
|
|||||||
static func detectCommand() -> String? {
|
static func detectCommand() -> String? {
|
||||||
let args = CommandLine.arguments
|
let args = CommandLine.arguments
|
||||||
if args.count == 2 && !args[1].starts(with: "--logs=") {
|
if args.count == 2 && !args[1].starts(with: "--logs=") {
|
||||||
if args[1] == "--list" || args[1] == "--detailed-list" || args[1].hasPrefix("--focus=") || args[1].hasPrefix("--show=") {
|
if args[1] == "--list" || args[1] == "--detailed-list" || args[1].hasPrefix("--focus=") || args[1].hasPrefix("--focusUsingLastFocusOrder=") || args[1].hasPrefix("--show=") {
|
||||||
return args[1]
|
return args[1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user