Virtual key codes are _per se_ fine with me. But I would really opt to stand on the shoulders of giants and not invent our own. I think that SDL or QT might have the most compatible list (libsdl.org is down, so no link…)
Or if we are interested in the physical ones, [USB HID Usage IDs](https://usb.org/sites/default/files/hut1_21.pdf) or SDL scancodes.