boppreh / keyboard

Hook and simulate global keyboard events on Windows and Linux.
MIT License
3.77k stars 432 forks source link

Wrong scan code conversion for special key like '@' or '#' on MacOS Mojave 10.14.6 #289

Open RookiePC opened 5 years ago

RookiePC commented 5 years ago

When I tried to listen to keyword like '@@', no callback would be triggered. And then I tried to call the key_to_scan_codes() on MacOS and i get the output below:

keyboard.key_to_scan_codes('@')
(19,)
keyboard.key_to_scan_codes('2')
(19,)
keyboard.key_to_scan_codes('#')
(20,)
keyboard.key_to_scan_codes('3')
(20,)

while on Windows i get :

keyboard.key_to_scan_codes('@')
(3,)
keyboard.key_to_scan_codes('2')
(3, 80)
keyboard.key_to_scan_codes('#')
(4,)
keyboard.key_to_scan_codes('3')
(4, 81)

More interestingly, instead of listen to '@@', if callback on word '22' is set, it would be triggered every time you type '@@'. I guess this may have something to do with the scan codes conversion.

RookiePC commented 5 years ago

BTW I'm currently using Magic keyboard like this, dont know if there's anything to do with it.