Настройка раскладки клавиатуры для конкретного устройства с помощью xkbcomp

Я использую xkbcomp для замены клавиш Alt и Win на моей клавиатуре Apple.

Это работает:

xkbcomp -w0 -I"$DIR" "$DIR/keymap/mykbd" $DISPLAY

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

Я взял на себя труд указать устройство. xkbcomp Справочный текст гласит: -i <deviceid> Specifies device ID (not name) to compile for

xkbcomp -w0 -I"$DIR" -i 16 "$DIR/keymap/mykbd" $DISPLAY

... но это, похоже, не дает никакого эффекта!

Я взял id 16 из xinput list | grep Magic\ Keyboard. Я также попробовал /dev/input/event18 в качестве идентификатора, взятого из xinput list-props 16 | grep 'Device Node', но это не дает лучшего эффекта.

Обновление:

Удивительно, но когда я предоставляю идентификатор Virtual core keyboard вместо Magic Keyboard, я получаю , получаю эффект: новое отображение получает Применительно к моей Magic Keyboard, и , если я продолжу печатать на встроенной клавиатуре ноутбука, раскладка клавиатуры , а затем вернется к исходной конфигурации.

1122 Я не могу этого объяснить. У кого-нибудь есть понимание?

3
задан 13 January 2018 в 19:52

1 ответ

Вы можете использовать метод, описанный здесь .

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

0
ответ дан 13 January 2018 в 19:52
  • 1
    Для кого-либо еще спотыкающегося через это старое сообщение, ищущее ответ, Arindam Mani Das' s ответ работает отлично. Если Вы получаете " никакой такой entity" ошибка, выполненный ' pactl перечисляют cards' и проверьте, какие порты доступны для Вашего устройства. Я должен был изменить " speaker-output" к " headset-output" во второй команде, так как мое устройство не имеет порта выхода динамика. – Billy Farrington 22 May 2018 в 03:46
  • 2
    Для кого-либо еще спотыкающегося через это старое сообщение, ищущее ответ, Arindam Mani Das' s ответ работает отлично. Если Вы получаете " никакой такой entity" ошибка, выполненный ' pactl перечисляют cards' и проверьте, какие порты доступны для Вашего устройства. Я должен был изменить " speaker-output" к " headset-output" во второй команде, так как мое устройство не имеет порта выхода динамика. – Billy Farrington 22 May 2018 в 03:46

Другие вопросы по тегам:

Похожие вопросы: