| 25 | * Check if a specific modifier key is currently pressed (synchronous). |
| 26 | */ |
| 27 | export function isModifierPressed(modifier: ModifierKey): boolean { |
| 28 | if (process.platform !== 'darwin') { |
| 29 | return false |
| 30 | } |
| 31 | try { |
| 32 | // Dynamic import to avoid loading native module at top level |
| 33 | const { isModifierPressed: nativeIsModifierPressed } = |
| 34 | // eslint-disable-next-line @typescript-eslint/no-require-imports |
| 35 | require('modifiers-napi') as { isModifierPressed: (m: string) => boolean } |
| 36 | return nativeIsModifierPressed(modifier) |
| 37 | } catch { |
| 38 | // Native module not available (e.g. not installed or incompatible runtime) |
| 39 | return false |
| 40 | } |
| 41 | } |