All 9 International & all 9 language keys recognized on macOS 15.6.1
Testing with Karabiner-EventViewer, reported as:
- international1
- japanese_pc_katakana
- international3
- japanese_pc_xfer
- international5
- international6
- japanese_pc_nfer
- international8
- international9
And:
- japanese_eisuu (leave Japanese mode)
- japanese_kana (enter Japanese mode)
- lang3
- lang4
- lang5
- lang6
- lang7
- lang8
- lang9
PR check-list
- [x] Branch has a clean commit history
- [ ] Additional tests are included, if changing behaviors/core code that is testable.
- [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
- [ ] Pre-commit used to check formatting of files, commit messages, etc.
- [ ] Includes any necessary documentation changes.
As noted of Discord, unclear if true (gold star in docs) should mean supported at OS level, or just keypress detected even if it does nothing by default. Perhaps another state is needed for that...
Could you adjust this with the MacOS comments in footnotes, along with footnotes when the key does nothing when you would expect it to do something but is detected?
OK - I can put them as footnotes.
I only have personal experience of an Apple Japanese keyboard on macOS (LANG1 and LANG2 buttons are used essentially to turn Japanese IME on/off, International 1 & 3 represent the ro (ろ) and yen keys).
I've found an uncredited usb_hid_keys.h file with entries presumably reflecting IBM/Windows style keyboards and Linux/Windows behaviour:
#define KEY_RO 0x87 // Keyboard International1
#define KEY_KATAKANAHIRAGANA 0x88 // Keyboard International2
#define KEY_YEN 0x89 // Keyboard International3
#define KEY_HENKAN 0x8a // Keyboard International4
#define KEY_MUHENKAN 0x8b // Keyboard International5
#define KEY_KPJPCOMMA 0x8c // Keyboard International6
// 0x8d Keyboard International7
// 0x8e Keyboard International8
// 0x8f Keyboard International9
#define KEY_HANGEUL 0x90 // Keyboard LANG1
#define KEY_HANJA 0x91 // Keyboard LANG2
#define KEY_KATAKANA 0x92 // Keyboard LANG3
#define KEY_HIRAGANA 0x93 // Keyboard LANG4
#define KEY_ZENKAKUHANKAKU 0x94 // Keyboard LANG5
// 0x95 Keyboard LANG6
// 0x96 Keyboard LANG7
// 0x97 Keyboard LANG8
// 0x98 Keyboard LANG9
This would seem to match https://en.wikipedia.org/wiki/Language_input_keys which sadly does not (currently) use the 1-9 naming.