Переназначить Windows ключ на MS Sculpt Comfort Mouse
1088
Pavel Kriz
Я хотел бы переназначить «кнопку Windows» на MS Sculpt Comfort Mouse на другую кнопку (например, кнопку «Назад») на моем компьютере с Linux (Linux Mint 18.2 «Sonya»).
Согласно xinput list, мышь распознается как указатель устройства (id = 12).
remote_id=$( xinput list | sed -n 's/.*Microsoft Sculpt Comfort Mouse.*id=\([0-9]*\).*/\1/p' ) [ "$remote_id" ] || exit # remap Windows button on MS Sculpt Mouse to Back button mkdir -p /tmp/xkb/symbols cat >/tmp/xkb/symbols/custom <<\EOF xkb_symbols "remote" { key <LWIN> { [ XF86Back ] }; }; EOF setxkbmap -device $remote_id -print | sed 's/\(xkb_symbols.*\)"/\1+custom(remote)"/' | xkbcomp -I/tmp/xkb -i $remote_id -synch - $DISPLAY 2>/dev/null
Я также попробовал аналогичный подход, описанный в Remap / изменить ваши вторичные / USB-клавиатуры . Пытался поменять коды например. для <LWIN>и <VOL+>. Но безуспешно, клавиша Windows для мыши по-прежнему интерпретируется как клавиша Windows.
Затем я попытался переназначить клавишу Windows (поменять местами) на клавиатуре USB (id = 9), используя второй подход (чистый xkbcomp), и он сработал, НО также изменил поведение кнопки мыши аналогичным образом (независимо от того, как была отображена кнопка). для мыши). Странно то, что когда я нажимаю кнопку Windows на встроенной клавиатуре ноутбука (не переназначается), а затем на мыши, она интерпретируется как кнопка Windows. Когда я нажимаю кнопку Windows на клавиатуре USB (переназначается на VOL +), а затем на мышь, она интерпретируется как VOL +. Может быть связано с ошибкой 91571 - xkb, установленный через xkbcomp, похоже, не применяется к -i (или не привязывается, если используется на обычном устройстве) .
К сожалению, я не могу переназначить кнопку только для конкретного устройства.
1) Может ли xkbcompинструмент корректно работать только с устройствами «подчиненная клавиатура»? (Не с указателем раба)
2) Есть ли способ рассматривать эту мышь как «подчиненную клавиатуру»?
3) Или есть другой способ переназначить «кнопку Windows» только для этого конкретного устройства (а не для основной клавиатуры USB)?
1 ответ на вопрос
1
Pavel Kriz
Отвечая на мой собственный вопрос № 3: udev может это сделать. Мой /etc/udev/hwdb.d/10-ms-sculpt-back.hwdbфайл:
# remap MS Sculpt Comfort Mouse (Bluetooth) Windows key to Back key evdev:input:b0005v045Ep07A2* KEYBOARD_KEY_700e3=back