const FLAG_SHIFT = 0x20000; const FLAG_CONTROL = 0x40000; const FLAG_OPTION = 0x80000; const FLAG_COMMAND = 0x100000; const modifierFlags: Record = { shift: FLAG_SHIFT, control: FLAG_CONTROL, option: FLAG_OPTION, command: FLAG_COMMAND, }; // kCGEventSourceStateCombinedSessionState = 0 const kCGEventSourceStateCombinedSessionState = 0; let cgEventSourceFlagsState: ((stateID: number) => number) | null = null; let ffiLoadAttempted = false; async function loadFFI(): Promise { if (ffiLoadAttempted || process.platform !== "darwin") { return; } ffiLoadAttempted = true; try { const ffi = await import("bun:ffi"); const lib = ffi.dlopen( `/System/Library/Frameworks/Carbon.framework/Carbon`, { CGEventSourceFlagsState: { args: [ffi.FFIType.i32], returns: ffi.FFIType.u64, }, } ); cgEventSourceFlagsState = (stateID: number): number => { return Number(lib.symbols.CGEventSourceFlagsState(stateID)); }; } catch { cgEventSourceFlagsState = null; } } export async function prewarm(): Promise { await loadFFI(); } export function isModifierPressed(modifier: string): boolean { if (process.platform !== "darwin") { return false; } if (cgEventSourceFlagsState === null) { return false; } const flag = modifierFlags[modifier]; if (flag === undefined) { return false; } const currentFlags = cgEventSourceFlagsState( kCGEventSourceStateCombinedSessionState ); return (currentFlags & flag) !== 0; }