Skip to content

Commit

Permalink
Add last key and last key code to terminal environment variables
Browse files Browse the repository at this point in the history
  • Loading branch information
zenangst committed Nov 21, 2024
1 parent 28e016b commit c53e151
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions App/Sources/Core/UserSpace.swift
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,19 @@ final class UserSpace: @unchecked Sendable {
}
}

if let cgEvent = await UserSpace.shared.cgEvent {
let keyCodes = await UserSpace.shared.keyCodes
let specialKeys = Array(await UserSpace.shared.keyCodes.specialKeys().keys)
let keyCode = Int(cgEvent.getIntegerValueField(.keyboardEventKeycode))

environment[.lastKeyCode] = "\(keyCode)"

let modifiers = VirtualModifierKey.modifiers(for: keyCode, flags: cgEvent.flags, specialKeys: specialKeys)
if let displayValue = keyCodes.displayValue(for: keyCode, modifiers: modifiers) ?? keyCodes.displayValue(for: keyCode, modifiers: []) {
environment[.lastKey] = displayValue
}
}

if let pasteboard = NSPasteboard.general.string(forType: .string) {
environment[.pasteboard] = pasteboard
}
Expand Down

0 comments on commit c53e151

Please # to comment.