Я только что установил Ubuntu 16.04.3 LTS на настольном ПК. Я использую этот компьютер в качестве медиа / игрового ПК. У меня есть пульт управления Harmony 350 Control IR (MCE R6), который используется в основном для управления мультимедийным приложением, однако я хотел бы использовать некоторые из кнопок на пульте дистанционного управления для запуска приложений и, в противном случае, управления ПК.
Я сопоставляю кнопки с командами, используя меню «Настройки системы -> Клавиатура ->« Ярлыки ». Я использовал файл / lib / udev / keymaps / rc6_mce и поместил его в / etc / rc_keymaps
Большинство кнопок работают. Например, я набрал кнопку «Медиа», чтобы запустить Spotify, нажимая кнопку «Audio Media» моего пульта, чтобы запустить ее.
Успешно сопоставлен с Media
Но я не могу нарисуйте кнопку INFO моего пульта, чтобы запустить Kodi. Когда я отправляюсь назначать его, приложение Mapboard Mapping не «видит» его.
Оба ключа находятся в файле / etc / rc_keymaps / rc6_mce:
0x800f040d KEY_MEDIA
0x800f040f KEY_INFO
И когда я использую ir-keytable -t, оба работают так, как ожидалось, поэтому компьютер получает их:
1515875517.689915: event type EV_MSC(0x04): scancode = 0x800f040d
1515875517.689915: event type EV_KEY(0x01) key_down: KEY_MEDIA(0x00e2)
1515875517.689915: event type EV_SYN(0x00).
1515875517.964577: event type EV_KEY(0x01) key_up: KEY_MEDIA(0x00e2)
1515875517.964577: event type EV_SYN(0x00).
1515875518.928910: event type EV_MSC(0x04): scancode = 0x800f040f
1515875518.928910: event type EV_KEY(0x01) key_down: KEY_INFO(0x0166)
1515875518.928910: event type EV_SYN(0x00).
1515875519.212562: event type EV_KEY(0x01) key_up: KEY_INFO(0x0166)
1515875519.212562: event type EV_SYN(0x00).
Но при попытке сопоставить их, приложение ярлыка клавиатуры увидит только KEY_MEDIA.
И снова это не только эти две кнопки. Эти два являются просто хорошими примерами, потому что они настолько похожи. Работает много других кнопок (FastForwrd, Rewind, Record и т. Д.), И много нет (вся цифровая панель, меню, руководство и т. Д.) С той же проблемой. ir-keytable отлично их видит, но приложение «Настройки клавиатуры» не работает.
Итак, что между клавишами и клавишами быстрого доступа, которые «едят», моя кнопка нажимает?
Спасибо.
Я понял это.
X11 понимает только коды сканирования до 255. Половина кнопок на пульте дистанционного управления использует более высокие scancodes. Итак, я сначала получил список всех scancodes, которые используют мои удаленные приложения:
ir-keytable --read --device = / dev / input / event19
(/ dev / input / event19 - это устройство, на котором мой пульт включен. Запуск ir-keytable без параметров скажет вам, какой у вас есть.)
Это создает список, подобный этому. Это число в скобках - это то, что нас интересует.
scancode 0x800f0410 = KEY_VOLUMEUP (0x73)
scancode 0x800f0411 = KEY_VOLUMEDOWN (0x72)
scancode 0x800f0412 = KEY_CHANNELUP (0x192)
scancode 0x800f0413 = KEY_CHANNELDOWN (0x193)
scancode 0x800f0414 = KEY_FASTFORWARD (0xd0)
Все, что в этом списке больше 0xFF, не будет работать. (Или, проще говоря, все, что имеет три цифры. Поэтому CHANNELUP (0x192) и CHANNELDOWN (0x193) в этом случае)
Затем я только что отредактировал файл / etc / rc_keymaps / rc6_mce и набрал эти кнопки для то, что я знал, было ниже.
Это также решило проблему, с которой я столкнулся с Kodi, когда некоторые кнопки не работали на моем пульте. KEY_INFO, KEY_STOP и некоторые другие. Я перенаправил их на обычные нажатия клавиш (KEY_INFO на KEY_I и т. Д.), И это тоже работает.
Я понял это.
X11 понимает только коды сканирования до 255. Половина кнопок на пульте дистанционного управления использует более высокие scancodes. Итак, я сначала получил список всех scancodes, которые используют мои удаленные приложения:
ir-keytable --read --device = / dev / input / event19
(/ dev / input / event19 - это устройство, на котором мой пульт включен. Запуск ir-keytable без параметров скажет вам, какой у вас есть.)
Это создает список, подобный этому. Это число в скобках - это то, что нас интересует.
scancode 0x800f0410 = KEY_VOLUMEUP (0x73)
scancode 0x800f0411 = KEY_VOLUMEDOWN (0x72)
scancode 0x800f0412 = KEY_CHANNELUP (0x192)
scancode 0x800f0413 = KEY_CHANNELDOWN (0x193)
scancode 0x800f0414 = KEY_FASTFORWARD (0xd0)
Все, что в этом списке больше 0xFF, не будет работать. (Или, проще говоря, все, что имеет три цифры. Поэтому CHANNELUP (0x192) и CHANNELDOWN (0x193) в этом случае)
Затем я только что отредактировал файл / etc / rc_keymaps / rc6_mce и набрал эти кнопки для то, что я знал, было ниже.
Это также решило проблему, с которой я столкнулся с Kodi, когда некоторые кнопки не работали на моем пульте. KEY_INFO, KEY_STOP и некоторые другие. Я перенаправил их на обычные нажатия клавиш (KEY_INFO на KEY_I и т. Д.), И это тоже работает.