zmk icon indicating copy to clipboard operation
zmk copied to clipboard

All 9 International & all 9 language keys recognized on macOS 15.6.1

Open peterjc opened this issue 5 months ago • 3 comments

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.

peterjc avatar Sep 04 '25 17:09 peterjc

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...

peterjc avatar Sep 04 '25 18:09 peterjc

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?

nmunnich avatar Sep 09 '25 17:09 nmunnich

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.

peterjc avatar Sep 09 '25 18:09 peterjc