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)")