Skip to content

Instantly share code, notes, and snippets.

@swillits
Last active October 22, 2024 15:30
Show Gist options
  • Save swillits/df648e87016772c7f7e5dbed2b345066 to your computer and use it in GitHub Desktop.
Save swillits/df648e87016772c7f7e5dbed2b345066 to your computer and use it in GitHub Desktop.
Swift Keyboard Keycodes
struct Keycode {
// Layout-independent Keys
// eg.These key codes are always the same key on all layouts.
static let returnKey : UInt16 = 0x24
static let enter : UInt16 = 0x4C
static let tab : UInt16 = 0x30
static let space : UInt16 = 0x31
static let delete : UInt16 = 0x33
static let escape : UInt16 = 0x35
static let command : UInt16 = 0x37
static let shift : UInt16 = 0x38
static let capsLock : UInt16 = 0x39
static let option : UInt16 = 0x3A
static let control : UInt16 = 0x3B
static let rightCommand : UInt16 = 0x36
static let rightShift : UInt16 = 0x3C
static let rightOption : UInt16 = 0x3D
static let rightControl : UInt16 = 0x3E
static let leftArrow : UInt16 = 0x7B
static let rightArrow : UInt16 = 0x7C
static let downArrow : UInt16 = 0x7D
static let upArrow : UInt16 = 0x7E
static let volumeUp : UInt16 = 0x48
static let volumeDown : UInt16 = 0x49
static let mute : UInt16 = 0x4A
static let help : UInt16 = 0x72
static let home : UInt16 = 0x73
static let pageUp : UInt16 = 0x74
static let forwardDelete : UInt16 = 0x75
static let end : UInt16 = 0x77
static let pageDown : UInt16 = 0x79
static let function : UInt16 = 0x3F
static let f1 : UInt16 = 0x7A
static let f2 : UInt16 = 0x78
static let f4 : UInt16 = 0x76
static let f5 : UInt16 = 0x60
static let f6 : UInt16 = 0x61
static let f7 : UInt16 = 0x62
static let f3 : UInt16 = 0x63
static let f8 : UInt16 = 0x64
static let f9 : UInt16 = 0x65
static let f10 : UInt16 = 0x6D
static let f11 : UInt16 = 0x67
static let f12 : UInt16 = 0x6F
static let f13 : UInt16 = 0x69
static let f14 : UInt16 = 0x6B
static let f15 : UInt16 = 0x71
static let f16 : UInt16 = 0x6A
static let f17 : UInt16 = 0x40
static let f18 : UInt16 = 0x4F
static let f19 : UInt16 = 0x50
static let f20 : UInt16 = 0x5A
// US-ANSI Keyboard Positions
// eg. These key codes are for the physical key (in any keyboard layout)
// at the location of the named key in the US-ANSI layout.
static let a : UInt16 = 0x00
static let b : UInt16 = 0x0B
static let c : UInt16 = 0x08
static let d : UInt16 = 0x02
static let e : UInt16 = 0x0E
static let f : UInt16 = 0x03
static let g : UInt16 = 0x05
static let h : UInt16 = 0x04
static let i : UInt16 = 0x22
static let j : UInt16 = 0x26
static let k : UInt16 = 0x28
static let l : UInt16 = 0x25
static let m : UInt16 = 0x2E
static let n : UInt16 = 0x2D
static let o : UInt16 = 0x1F
static let p : UInt16 = 0x23
static let q : UInt16 = 0x0C
static let r : UInt16 = 0x0F
static let s : UInt16 = 0x01
static let t : UInt16 = 0x11
static let u : UInt16 = 0x20
static let v : UInt16 = 0x09
static let w : UInt16 = 0x0D
static let x : UInt16 = 0x07
static let y : UInt16 = 0x10
static let z : UInt16 = 0x06
static let zero : UInt16 = 0x1D
static let one : UInt16 = 0x12
static let two : UInt16 = 0x13
static let three : UInt16 = 0x14
static let four : UInt16 = 0x15
static let five : UInt16 = 0x17
static let six : UInt16 = 0x16
static let seven : UInt16 = 0x1A
static let eight : UInt16 = 0x1C
static let nine : UInt16 = 0x19
static let equals : UInt16 = 0x18
static let minus : UInt16 = 0x1B
static let semicolon : UInt16 = 0x29
static let apostrophe : UInt16 = 0x27
static let comma : UInt16 = 0x2B
static let period : UInt16 = 0x2F
static let forwardSlash : UInt16 = 0x2C
static let backslash : UInt16 = 0x2A
static let grave : UInt16 = 0x32
static let leftBracket : UInt16 = 0x21
static let rightBracket : UInt16 = 0x1E
static let keypadDecimal : UInt16 = 0x41
static let keypadMultiply : UInt16 = 0x43
static let keypadPlus : UInt16 = 0x45
static let keypadClear : UInt16 = 0x47
static let keypadDivide : UInt16 = 0x4B
static let keypadEnter : UInt16 = 0x4C
static let keypadMinus : UInt16 = 0x4E
static let keypadEquals : UInt16 = 0x51
static let keypad0 : UInt16 = 0x52
static let keypad1 : UInt16 = 0x53
static let keypad2 : UInt16 = 0x54
static let keypad3 : UInt16 = 0x55
static let keypad4 : UInt16 = 0x56
static let keypad5 : UInt16 = 0x57
static let keypad6 : UInt16 = 0x58
static let keypad7 : UInt16 = 0x59
static let keypad8 : UInt16 = 0x5B
static let keypad9 : UInt16 = 0x5C
}
@ris58h
Copy link

ris58h commented Aug 19, 2023

Right Command is missing. Should be

static let rightCommand              : UInt16 = 0x36

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment