Различайте две клавиатуры по идентификатору USB, чтобы настроить одну клавишу по-разному на каждой из них.

Вопрос или проблема

Возможно ли различать различные USB-устройства, которые в остальном идентичны, с помощью xbindkeys?

У меня есть две идентичные клавиатуры на одном компьютере, и я хотел бы, чтобы одна и та же клавиша ведла себя по-разному в зависимости от того, с какой клавиатуры… предположительно, по USB-идентификатору каким-то образом, но xev не показывает этой информации.


Этот вопрос сведен к более короткому изначальному сообщению здесь, с подробным описанием случая использования:

https://forums.linuxmint.com/viewtopic.php?p=2551460#p2551460

.

Ответ или решение

К сожалению, стандартные инструменты Linux, такие как xbindkeys и xev, не позволяют напрямую различать идентичные USB-устройства, такие как клавиатуры, поскольку они не отображают уникальные идентификаторы устройств. Тем не менее, вы можете использовать другие методы для достижения вашей цели. В этой статье рассматривается, как можно различать две одинаковые клавиатуры по их USB-идентификатору и настроить их клавиши по-разному, в зависимости от их источника.

1. Установите необходимые инструменты

Для начала убедитесь, что у вас установлены необходимые пакеты. Вам понадобятся:

  • xbindkeys для переназначения клавиш
  • xbindkeys-config для графической настройки xbindkeys
  • evtest для получения информации о событиях устройств
  • showkey для мониторинга клавиатурных событий

Вы можете установить их с помощью вашего пакетного менеджера. Например, в Ubuntu вы можете запустить:

sudo apt-get install xbindkeys xbindkeys-config evtest

2. Найдите идентификаторы USB

Чтобы различить клавиатуры по их USB-идентификатору, используйте команду lsusb. Запустите следующую команду в терминале:

lsusb

Эта команда выведет список всех USB-устройств, подключенных к вашему компьютеру. Найдите строки, которые соответствуют вашим клавиатурам. Обратите внимание наBus и DeviceNum, чтобы отличить их.

3. Определите события клавиш

Следующий шаг — использование evtest для получения информации о нажатиях кнопок на каждой клавиатуре. Запустите evtest:

sudo evtest

Выберите соответствующее устройство клавиатуры. После этого программа будет выводить события, когда вы нажимаете клавиши на выбранной клавиатуре. Обратите внимание на коды событий и идентификаторы клавиш.

4. Настройка xbindkeys для каждой клавиатуры

Создайте файл конфигурации для xbindkeys. Обычно это файл ~/.xbindkeysrc. Если он не существует, создайте его:

touch ~/.xbindkeysrc

Теперь вы можете указать свои назначения клавиш. Для этого вам нужно будет использовать комбинации клавиш и их коды, полученные на предыдущем шаге.

Пример записи:

# Клавиша "A" на первой клавиатуре
"your-command"
    m:0x10 + c:30

# Клавиша "A" на второй клавиатуре
"another-command"
    m:0x20 + c:30

Здесь m:0x10 и m:0x20 могут представлять разные идентификаторы ваших клавиатур. Вам нужно будет заменить их на те, которые соответствуют вашим клавиатам.

5. Запустите xbindkeys

Теперь вы можете запустить xbindkeys, чтобы активировать настройки:

xbindkeys

Вы также можете добавить xbindkeys в автозагрузку вашего рабочего стола, чтобы он запускался автоматически при каждом входе в систему.

Заключение

Используя lsusb и evtest, вы можете различать идентичные USB-клавиатуры и переназначать клавиши в зависимости от источника. Эта методология предоставляет гибкие возможности настроек для пользователей, требующих индивидуальные решения для разных устройств.

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

Оцените материал
Добавить комментарий

Капча загружается...