diff --git a/MTMR/Info.plist b/MTMR/Info.plist
index 06505cc..3f8a189 100644
--- a/MTMR/Info.plist
+++ b/MTMR/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.20.2
+ 0.20.3
CFBundleVersion
197
LSApplicationCategoryType
diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift
index 8fa1413..01095de 100644
--- a/MTMR/ItemsParsing.swift
+++ b/MTMR/ItemsParsing.swift
@@ -51,7 +51,7 @@ class SupportedTypesHolder {
private var supportedTypes: [String: ParametersDecoder] = [
"escape": { _ in (
item: .staticButton(title: "esc"),
- action: .keyPress(keycode: 53),
+ action: .keyPressSession(keycode: 53),
longAction: .none,
parameters: [.align: .align(.left)]
) },
@@ -447,7 +447,7 @@ enum ItemType: Decodable {
let workTime = try container.decodeIfPresent(Double.self, forKey: .workTime) ?? 1500.0
let restTime = try container.decodeIfPresent(Double.self, forKey: .restTime) ?? 600.0
self = .pomodoro(workTime: workTime, restTime: restTime)
-
+
case .network:
let flip = try container.decodeIfPresent(Bool.self, forKey: .flip) ?? false
self = .network(flip: flip)
@@ -459,6 +459,7 @@ enum ActionType: Decodable {
case none
case hidKey(keycode: Int32)
case keyPress(keycode: Int)
+ case keyPressSession(keycode: Int)
case appleScript(source: SourceProtocol)
case shellScript(executable: String, parameters: [String])
case custom(closure: () -> Void)
diff --git a/MTMR/KeyPress.swift b/MTMR/KeyPress.swift
index a4afe2b..c88b49f 100644
--- a/MTMR/KeyPress.swift
+++ b/MTMR/KeyPress.swift
@@ -23,6 +23,16 @@ extension KeyPress {
let keyDown = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: true)
let keyUp = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: false)
+ let loc: CGEventTapLocation = .cghidEventTap
+ keyDown?.post(tap: loc)
+ keyUp?.post(tap: loc)
+ }
+
+ func sendSession() {
+ let src = CGEventSource(stateID: .hidSystemState)
+ let keyDown = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: true)
+ let keyUp = CGEvent(keyboardEventSource: src, virtualKey: keyCode, keyDown: false)
+
let loc: CGEventTapLocation = .cgAnnotatedSessionEventTap
keyDown?.post(tap: loc)
keyUp?.post(tap: loc)
diff --git a/MTMR/TouchBarController.swift b/MTMR/TouchBarController.swift
index a23ebe8..43776a9 100644
--- a/MTMR/TouchBarController.swift
+++ b/MTMR/TouchBarController.swift
@@ -319,6 +319,8 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
return { HIDPostAuxKey(keycode) }
case let .keyPress(keycode: keycode):
return { GenericKeyPress(keyCode: CGKeyCode(keycode)).send() }
+ case let .keyPressSession(keycode: keycode):
+ return { GenericKeyPress(keyCode: CGKeyCode(keycode)).sendSession() }
case let .appleScript(source: source):
guard let appleScript = source.appleScript else {
print("cannot create apple script for item \(item)")