Сканкоды клавиатуры osx mavericks отображаются на одни и те же символы независимо от языковой карты

В моем профиле пользователя клавиатура набирает одни и те же символы независимо от настроек языка клавиатуры.

При использовании этих четырех комбинаций клавиш всегда появляются одинаковые символы:

alt-7 {
alt-8 [
alt-9 ]
alt-0 }

Мой макет по умолчанию немецкий, поэтому он должен быть | { } ≠

Но даже в английской и Neo Layout комбинации клавиш дают одинаковые четыре символа, будь то в терминале или в любом другом встроенном приложении. Использование обзора экранной клавиатуры показывает то же поведение. Я могу видеть символ трубы на экранной клавиатуре, но он вводит фигурную скобку.

Единственное приложение, которое отображает правильные символы Intellij Idea, Я подозреваю, что это может быть Java или же Idea может просто получить доступ к scancodes непосредственно.

Другая учетная запись пользователя на том же компьютере не показывает такое поведение (клавиатура отображает ожидаемые символы), поэтому оно должно быть определенным для моего профиля пользователя.

Я сделал обширный поиск в Google, но я не смог найти, как отображение из scancodes персонажам работает в OSX на основе профиля пользователя.

Так как в состоянии напечатать '|' характер для меня важен, я был бы очень признателен за вашу помощь!

1 ответ

Я нашел это: по-видимому, я создал свою проблему несколько лет назад, когда пытался использовать клавиатуру Windows на моем Mac для ввода в VirtualMachine. Мне стыдно.

Вот решение. В моем домашнем каталоге находится файл ~/Library/KeyBindings/DefaultKeyBinding.dict

С такими записями:

{
"\UF729"  = "moveToBeginningOfLine:"; /* pos1 */
"^\UF729" = "moveToBeginningOfDocument:"; /* crtl + pos1 */
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";
"\UF72b"  = "moveToEndOfLine:"; /* end */
"^\UF72B" = "moveToEndOfDocument:"; /* ctrl + end */
"$\UF72B" = "moveToEndOfLineAndModifySelection:";
"\UF72C"  = "pageUp:";
"\UF72D"  = "pageDown:";
"^~7" = ("insertText:", "|"); /* orig alt 7 */
"^~8" = ("insertText:", "{"); /* orig alt 8 */
"^~9" = ("insertText:", "}"); /* orig alt 9 */
"^\U00DF" = ("insertText:", "\U00BF");
"^+" = ("insertText:", "\U00B1");
"~<" = ("insertText:", "|");
"~7" = ("insertText:", "{");
"~0" = ("insertText:", "}");
"~8" = ("insertText:", "[");
"~9" = ("insertText:", "]");
"~+" = ("insertText:", "~");
"~\U00DF" = ("insertText:", "\U005C");
"~q" = ("insertText:", "@");
"^x" = "cut:";
"^c" = "copy:";
"^v" = "paste:";
}
Другие вопросы по тегам