Я пытаюсь переназначить клавишу CapsLock kbd>, чтобы она была Control kbd> при использовании клавиатуры Model M (с трекпоинтом) с PS2 переходник на USB.
Если теперь переназначенная управляющая клавиша остается нажатой в течение более половины секунды, она прекращает изменение последующих символов. То есть, если я нажму control kbd>, нажму и отпущу x kbd>, подожду полсекунды, нажму и отпущу c kbd>, я получу управление kbd> - x kbd> c kbd> вместо control kbd> - x kbd> control kbd> - < KBD> с KBD>. Вы можете себе представить, что это может быть проблемой для пользователей emacs и bash!
Эта проблема не не проявляется при использовании обычных клавиатур USB, со встроенными клавиатурами ноутбуков, в Windows или если я не переназначу колпачок для контроля.
Я использовал Системные настройки> Устройства ввода> Клавиатура в Kubuntu, чтобы сделать переназначение, а также я сделал прямую xmodmap. Такое же поведение Поскольку setkeycodes не влияет на USB-клавиатуры, я не могу это использовать.
Решением, которое я рассматриваю , является построение одного из этих и повторное отображение таким образом, но это немного экстремально. Я бы предпочел сделать это в программном обеспечении.
Это оказалось аппаратной проблемой. В какой-то момент замеченный, что другой адаптер PS2-USB не имел той проблемы, переключенной на тот бренд и проблему, решил себя.
устройство, которое работает хорошо, сделано (повторно упакованным, действительно) Belkin, и признает себя
ID 0d3d:0001 Tangtop Technology Co., Ltd HID Keyboard
(Да, это только говорит "клавиатуру", но lsusb -v
шоу, что имеет и клавиатуру и дескриптор мыши, очевидно).
Вы можете решать проблему путем обнаружения соответствующих идентификационных данных PS/2-> USB-адаптер и клавиатура.
Попробуйте команду
lsusb
Для меня это показало, среди прочего, что существует a
Bus 001 Device 018: ID 04d9:1400 Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller
Первая часть идентификационного кода USB (04d9) определяет производителя и второе продукт.
Теперь можно использовать ту информацию для обнаружения идентификационных данных устройств, подключенных к тому адаптеру путем ввода
xinput list --long | grep 04d9
То, что я получил, было
↳ HID 04d9:1400 id=9 [slave pointer (2)]
↳ HID 04d9:1400 id=8 [slave keyboard (3)]
У меня нет клавиатуры, подключенной к адаптеру, но существует моя старая мышь шарового манипулятора, Logitech TrackMan Marble FX.
Таким образом, я хотел знать больше об устройстве, определенном выше как id=9
, и я использовал xinput
команда для получения то, что я хотел:
xinput list-props 9
Первая строка списка была
Device 'HID 04d9:1400':
Список также показывает свойства устройства, и я использовал их для создания команд, необходимых для изменения тех свойств. То, чем я закончил, было двумя командами:
xinput set-int-prop "pointer:HID 04d9:1400" "Evdev Wheel Emulation Button" 8 3
xinput set-int-prop "pointer:HID 04d9:1400" "Evdev Wheel Emulation" 8 1
Первая строка превращает Кнопку 3 мыши TrackMan в кнопку эмуляции Колеса. (Кнопка 4 иначе "8", кажется, не работает вообще). "Указатель" в командах относится к мыши и предотвращает запутывающие вещи с "клавиатурой", которая могла быть присоединена к тому же адаптеру (не в моей системе).
Так же Вы могли, возможно, изменить свойства своей клавиатуры с командами как
xinput set-int-prop "keyboard:HID (keyboard usb-identifier) (property to be set)
и т.д. с другими отдельными свойствами