Как сопоставить комбинации аппаратных клавиш с клавишами в Motorola Photon Q XT897?

У меня есть рутированный XT897 (Motorola Photon Q) под управлением Android 4.1.2, хотя это должно относиться к любому телефону с физической клавиатурой. На клавиатуре телефона катастрофически не хватает таких клавиш, как <, >, {, },, [, ], `, \, |, и ~. У него есть кнопка «sym», которая иногда вызывает маленькое окно, в котором я могу выбрать, какой символ не на клавиатуре, который я хотел бы ввести.

Большую часть времени он абсолютно ничего не делает. Мне известны файлы раскладки клавиш Android , и я уже модифицировал свой таким образом, чтобы бесполезная клавиша Caps Lock была CTRLвместо нее клавишей. Однако они не позволяют сопоставлять комбинации клавиш с другими отдельными клавишами (насколько я могу судить). Я бы хотел что-то вроде xmodmap, где я мог бы сопоставлять SYM + Pи ]делать это для всех ключей.

Есть ли способ сделать это? На странице файлов раскладки клавиш упоминается, что она сопоставляет коды клавиш Linux с кодами клавиш Android, возможно, я могу отредактировать файл сопоставления клавиш Linux. Где бы это было? Это даже сработает?

Вы слышали о клавиатуре хакера ? Это может не помочь, если ваша цель — научиться составлять карту, а не ее конечный результат.
@Narayanan У меня есть, и я им пользуюсь. Я по-прежнему предпочитаю физическую клавиатуру. Моя цель - абсолютно конечная цель заставить этот телефон набирать вышеупомянутые клавиши через физическую клавиатуру.

Ответы (1)

В аппаратном нажатии клавиши -> символ для вставки в текстовое поле есть два «слоя». Слой после ключевых файлов макета — это Key Character Map Files . Они берут ключ (например, «А») и диктуют, что должно получиться из различных комбинаций клавиш. Например:

key A {
  label: "A" # What to 'name' the key
  base: "a" # pressing this key with no modifiers
  shift, capslock: "A" # if either shift or capslock is on, do a capital a instead
  ctrl, alt, meta: none # do nothing if any other combinations are pressed
}

Сделайте резервную копию, затем отредактируйте .kcmфайл, соответствующий аппаратной клавиатуре. Вам понадобится рут.

Если в вашем файле есть какие-либо синтаксические ошибки, он просто вернется к раскладке клавиатуры по умолчанию, которая в основном, но не полностью верна. Единственный способ проверить наличие синтаксических ошибок, помимо загрузки файла и перезагрузки устройства, — это скомпилировать весь исходный код Android.