Если сменить раскладку с английской на какую то другую, то в java программах будет возвращаться неверное значение KeyCode(KeyCode отличается от KeyChar).
Репродюсится на Ubuntu 11.10, 12.04 с разными версиями java(1.7_51, 1.7_45, 1.6).
На Ubuntu 13.10 все работает как положено(java 1.7_51).
Пример: на немецкой клавиатуре поменяны местами клавиши y и z.
Если запустить данный пример:
http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html ,
переключится на немецкую раскладку и нажать клавишу z, то на Windows и Ubuntu 13.10 увидим:
KEY PRESSED:
key code = 89 (Y)
extended modifiers = 0 (no extended modifiers)
KEY TYPED:
key character = 'y'
extended modifiers = 0 (no extended modifiers)
KEY RELEASED:
key code = 89 (Y)
extended modifiers = 0 (no extended modifiers)
на Ubuntu 11.10, 12.04
KEY PRESSED:
key code = 90 (Z)
extended modifiers = 65536(Button6)
KEY TYPED:
key character = 'y'
extended modifiers = 65536(Button6)
KEY RELEASED:
key code = 90 (Z)
extended modifiers = 65536(Button6)
Собрал простой пример на gtk и там не увидел никаких проблем...
Конкретное приложение(java) может иметь свои настройки локали в Ubuntu?
Куда посоветуете смотреть?