Skip to content

Commit c53e151

Browse files
committed
Add last key and last key code to terminal environment variables
1 parent 28e016b commit c53e151

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

App/Sources/Core/UserSpace.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,19 @@ final class UserSpace: @unchecked Sendable {
164164
}
165165
}
166166

167+
if let cgEvent = await UserSpace.shared.cgEvent {
168+
let keyCodes = await UserSpace.shared.keyCodes
169+
let specialKeys = Array(await UserSpace.shared.keyCodes.specialKeys().keys)
170+
let keyCode = Int(cgEvent.getIntegerValueField(.keyboardEventKeycode))
171+
172+
environment[.lastKeyCode] = "\(keyCode)"
173+
174+
let modifiers = VirtualModifierKey.modifiers(for: keyCode, flags: cgEvent.flags, specialKeys: specialKeys)
175+
if let displayValue = keyCodes.displayValue(for: keyCode, modifiers: modifiers) ?? keyCodes.displayValue(for: keyCode, modifiers: []) {
176+
environment[.lastKey] = displayValue
177+
}
178+
}
179+
167180
if let pasteboard = NSPasteboard.general.string(forType: .string) {
168181
environment[.pasteboard] = pasteboard
169182
}

0 commit comments

Comments
 (0)