-
-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d3562f8
commit 35b6c7b
Showing
12 changed files
with
102 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import AppKit | ||
import Common | ||
|
||
struct TriggerBindingCommand: Command { | ||
let args: TriggerBindingCmdArgs | ||
|
||
func _run(_ state: CommandMutableState, stdin: String) -> Bool { | ||
check(Thread.current.isMainThread) | ||
return if let mode = config.modes[args.mode] { | ||
if let binding = mode.bindings[args.binding.val] { | ||
refreshSession(forceFocus: true) { binding.commands.run(state) } | ||
} else { | ||
failCmdWithMsg(state, "Binding '\(args.binding)' is not presented in mode '\(args.mode)'") | ||
} | ||
} else { | ||
failCmdWithMsg(state, "Mode '\(args.mode)' doesn't exist. " + | ||
"Available modes: \(config.modes.keys.joined(separator: ","))") | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
import AppKit | ||
import Common | ||
import Foundation | ||
import HotKey | ||
import TOMLKit | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
public struct TriggerBindingCmdArgs: RawCmdArgs, CmdArgs { | ||
public let rawArgs: EquatableNoop<[String]> | ||
public static let parser: CmdParser<Self> = cmdParser( | ||
kind: .triggerBinding, | ||
allowInConfig: true, | ||
help: """ | ||
USAGE: trigger-binding [-h|--help] <binding> --mode <mode-id> | ||
OPTIONS: | ||
-h, --help Print help | ||
--mode <mode-id> Mode to search <binding> in | ||
ARGUMENTS: | ||
<binding> Binding to trigger | ||
""", | ||
options: [ | ||
"--mode": singleValueOption(\._mode, "<mode-id>", { $0 }) | ||
], | ||
arguments: [newArgParser(\.binding, { arg, _ in .success(arg) }, mandatoryArgPlaceholder: "<binding>")] | ||
) | ||
|
||
public var _mode: String? = nil | ||
public var binding: Lateinit<String> = .uninitialized | ||
} | ||
|
||
public extension TriggerBindingCmdArgs { | ||
var mode: String { _mode! } | ||
} | ||
|
||
public func parseTriggerBindingCmdArgs(_ args: [String]) -> ParsedCmd<TriggerBindingCmdArgs> { | ||
parseRawCmdArgs(TriggerBindingCmdArgs(rawArgs: .init(args)), args) | ||
.filter("--mode flag is mandatory") { $0._mode != nil } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
= aerospace-trigger-binding(1) | ||
include::util/man-attributes.adoc[] | ||
:manname: aerospace-trigger-binding | ||
// tag::purpose[] | ||
:manpurpose: Trigger AeroSpace binding as if it was pressed by user | ||
// end::purpose[] | ||
|
||
== Synopsis | ||
// tag::synopsis[] | ||
aerospace trigger-binding [-h|--help] <binding> --mode <mode-id> | ||
// end::synopsis[] | ||
|
||
== Description | ||
|
||
// tag::body[] | ||
{manpurpose} | ||
|
||
include::util/conditional-options-header.adoc[] | ||
|
||
-h, --help:: Print help | ||
--mode <mode-id>:: Mode to search `<binding>` in | ||
|
||
include::util/conditional-arguments-header.adoc[] | ||
|
||
<binding>:: Binding to trigger | ||
|
||
// end::body[] | ||
|
||
include::util/man-footer.adoc[] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters