Як я можу перезавантажити натискання клавіші відтворення від гарнітури Bluetooth в ОС X?


13

У мене є стереогарнітура Bluetooth Tone (HBS 700) Bluetooth, і я використовую її з OS X Lion.

У гарнітурі є кнопка перемикання відтворення / пауза, але на відміну від кнопки відтворення на моїй клавіатурі, яка буде перемикати програвання / паузу для, скажімо, медіаплеєра VLC, якщо він працює, кнопка відтворення гарнітури запустить iTunes, якщо вона вже не відкрита, або перемикання / пауза в iTunes, якщо вона вже відкрита. Він не перемикає програвання / паузу в будь-якому іншому медіаплеєрі.

Чи може хтось пояснити, яка системна подія, ймовірно, спрацьовує, коли я натискаю програвати? Зрозуміло, що деякий системний демон прослуховує щось, оскільки iTunes запускається і може просто інтерпретувати відтворення / паузу / наступний / prev контроль ... Чи є спосіб я перехопити подію клавіші та переробити її функцію? Я хотів би, щоб вона мала таку саму поведінку, як кнопка відтворення клавіатури.

Спасибі за вашу допомогу!

Відповіді:


7

Ви шукаєте Демон дистанційного керування, розташований у:

/System/Library/CoreServices/rcd.app

Його можна відключити за допомогою команди

sudo chmod a-x /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd
killall -9 rcd

(Якщо ви просто вбите, launchdперезавантажте його знову). Щоб відновити його знову,

sudo chmod a+x /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd

Потім вийдіть і поверніться, щоб launchdзапустити його.

Якщо у вас достатньо амбіцій, ви можете спробувати редагувати його за допомогою шестигранного редактора. Це поза моєю сферою знань, але у мене є дві пропозиції.

  1. Відкриття швидкості (просто порожнє, нічого у ньому) у фоновому режимі може перешкодити демону використовувати iTunes. Це залежить від того, чи ваш пристрій використовує ту саму системну подію.

  2. Крім того, є безкоштовна утиліта, розташована за наступним посиланням, яке виправляє демона для вас. Після його запуску демон буде використовувати активну програму замість iTunes. Однак це не перезапустить VLC, оскільки програма буде відкрита при натисканні кнопки відтворення. Він розроблений для медіа-клавіш на клавіатурі, але я вважаю, що ОС бачить кнопку Вашого LG Tone як ту саму системну подію. Це посилання: http://lifehacker.com/5651055/free-your-macs-media-keys-from-itunes-no-manual-hacking-required

Нарешті, я можу вам сказати, що Apple ще не запропонувала простий спосіб зміни налаштувань дистанційного керування. Це прикро, оскільки це поширене питання щодо медіа-клавіш на клавіатурах та інших елементів керування на таких пристроях, як ваш. Замість того, щоб запропонувати рішення, здається, що вони вносили зміни в ОС раніше, щоб переконатися, що iTunes є програмою, якою користується цей демон. На жаль, кращого виправлення, ніж це, швидше за все, немає.


3
На мій досвід, пристрої Bluetooth, що передають сигнали відтворення / паузи, не інтерпретуються так само, як інтерпретуються медіа-клавіші клавіатури. Використовуючи згаданий патч, моя клавіатура поводиться так, як очікувалося, але моя Bluetooth-гарнітура продовжує запускати iTunes. Просто подумав, що це не заради нащадків.
Вілько

Будь-яка порада, як зробити цю зміну в OS X Sierra? У них є система захисту від ос, і такі зміни зробити досить важко.
AB

3

Спочатку вам знадобиться стороннє додаток для перезавантаження клавіатури під назвою Karabiner (раніше KeyRemap4MacBook). Додаток трохи непривітний для користувачів, але теоретично це потрібно зробити лише один раз. Також він наразі не працює на MacOS Sierra ... тому майте це на увазі.

Ось і ми...

Встановіть Karabiner

https://pqrs.org/osx/karabiner/index.html.en

Запустити Карабінер

Ви повинні надати йому деякі права доступу, якщо ви хочете, щоб усі функції.

Використовуйте програму Helper "EventViewer", щоб отримати ключові коди

Відкрийте EventViewer, щоб отримати ключові коди / ідентифікатори додатків:

введіть тут опис зображення

Перейдіть на вкладку "Головне", а потім натисніть клавіші на клавіатурі, пульт Bluetooth та ін. У цьому випадку на моєму пульті Bluetooth Satechi Bluetooth (який я хочу повторно зіставити на клавіші зі стрілками вліво / вправо) можна побачити кодові клавіші для Media-Forward та Media-Back.

введіть тут опис зображення

Вперед і "скопіюйте на картон" і вставте його в текстовий документ для подальшого. Тепер залежно від випадку використання ви можете перейти на додаток або вкладку Пристрої.

Якщо ви хочете обмежити перекомпонування ключів певними програмами, вам потрібно створити правило зіставлення, яке призначене для конкретного ідентифікатора програми (наприклад, Google Chrome chrome). Отже, ви перейдете на вкладку програми та отримаєте ідентифікатор програми для вашого додатка, що цікавить (він буде використаний пізніше, коли ми створимо правило).

введіть тут опис зображення

У моєму випадку Я ТІЛЬКО хочу перезаписати ці клавіші на пульті Bluetooth Satechi Bluetooth і не хочу псувати, як працюють мої існуючі клавіші клавіатури ... тому я хочу створити правило для пристрою. Тому я переходжу на вкладку Пристрої.

введіть тут опис зображення

Примітка!!! Для додатків і пристроїв слід також скопіювати та вставити у текстовий файл, щоб у вас було повне рядки ідентифікатора пристрою / додатка для використання в нашому правилі.

Побудова правил

Тепер, коли у вас є копії ключів, ідентифікатори додатків та / або пристроїв, скопійовані та вставлені в текстовий файл для ознайомлення пізніше, ви можете закрити EventViewer і повернутися до основного додатку.

Правила за замовчуванням для нас не дуже цікаві, тому нам потрібно створити спеціальне правило, але редагування private.xml

введіть тут опис зображення

Це просто запустить вікно пошуку, де відображається private.xml. Вперед та відкрийте private.xml у вашому улюбленому текстовому редакторі.

Тепер ви готові створити правила ...

Документація щодо формату цього файлу знаходиться тут: https://pqrs.org/osx/karabiner/xml.html.en

Для кожного <item>вам потрібно мінімум <name> <identifier> і <autogen>. Ім'я - це лише назва для вас. Ідентифікатор також складено вами, але він повинен бути унікальним. autogen - це місце, де ви вказуєте правило / відображення (тобто ключ, що цікавить, повинен надсилати клавіші foo bar).

З іншого боку, ви можете вказати, що правило працює лише для конкретних активних додатків (я думаю, саме тут вступають у дію дозволи на доступність MacOS ... щоб Karabiner міг визначити активне вікно). Це робиться за допомогою <only>.

Також мене цікавить те, <device_only>що дозволяє мені скласти правило лише для конкретної клавіатури (тобто мого пульта Bluetooth Bluetooth Satechi). Дивіться посилання вище для отримання більш детальної інформації.

У всякому разі. Використовуйте ідентифікатори ключового коду, ідентифікатори пристрою та ідентифікатори додатків, отримані від EventViewer, щоб створити свої власні правила.

Моя виглядає так:

<?xml version="1.0"?>
<root>
    <item>
        <name>Satechi Right</name>
        <identifier>private.satechi.right</identifier>
        <device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
        <autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_NEXT_17, KeyCode::CURSOR_RIGHT</autogen>
    </item>
    <item>
        <name>Satechi Left</name>
        <identifier>private.satechi.left</identifier>
        <device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
        <autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PREV_18, KeyCode::CURSOR_LEFT</autogen>
    </item>
</root>

Підсумок: 2 правила. Тільки віддалений пристрій Bluetooth Satechi. "next" медіа-кнопка відображає стрілку вправо, "prev" медіа-кнопку стрілку вліво. Застосовується для всіх програм.

Завантажте правила

Збережіть свій XML-файл. Поверніться до програми Karabiner. Перейдіть на вкладку «Змінити ключ». Натисніть "Перезавантажити XML" у верхньому лівому куті. Тепер ваші нові правила мають з’явитися. Поставте прапорці, щоб включити правила. Перевірте, чи працюють ваші нові ключові відображення, як очікувалося.

введіть тут опис зображення

Додаток, безумовно, не є зручним для користувачів, але дозволив мені налаштувати саме те, що я хотів, досить легко, як тільки я зрозумів варіанти. Карабінер трохи баггі ... У мене в переглядачі подій деякі події перестали відображатися, хоча правила перезавантаження все ще працювали ... перезапуск допомагає.


1
Здається, що наступник Karabiner, Karabiner-Elements, який є необхідним оновленням для більш нових версій MacOS, не бачить елементів керування медіа-пристроями Bluetooth. Новий EventViewer взагалі не реєструє таких натискань кнопок, але iTunes все одно запускається. :(
wfaulk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.