Перезавантажте бічну сенсорну кнопку на Microsoft Sculpt Comfort Mouse


12

Нещодавно я придбав Microsoft Sculpt Comfort Mouse. Він використовує Bluetooth для підключення до мого ноутбука, і всі звичайні кнопки миші працюють ідеально під Linux і Windows 7. Однак, що відрізняється від цієї миші, це те, що вона має спеціальну Windows/ Superклавішу збоку, яка запускає пуск / меню при натисканні. Він також має сенсорний сенсор, який визначає, коли бічну кнопку погладжують вгору або вниз, і вібрує мишу, щоб підтвердити, що вона активована.

Звичайно, в Windows є програма, яка дозволяє мені змінювати, що виконують удари, і вимикати вібрацію.

У Linux xev виявляє лише звичайний натискання клавіші, коли бічну кнопку натискає або переводить пальцем. Xev не повідомляє про жодне натискання кнопки миші.

Отже, моє запитання полягає в тому, чи можу я змінити, які натискання клавіш надсилаються під Linux?

Я хотів би змінити прив’язку клавіш з tabна down, backspaceдо up, (що повідомляє xev) на ctrl+ alt+ left/, rightщоб переключитися між робочими просторами.

Дякуємо за будь-яку допомогу!


Ви перевірили як користуватися мишами на help.ubuntu.com/community/ManyButtonsMouseHowto ?
ubfan1

1
Дякую за пораду ubfan1, xinput get-button-map дає мені 13 кнопок. xev та xinput test звітують лише кнопки 1-7. Я спробував перевпорядкувати кнопки 8-13 за допомогою xinput set-button-map та xbindkeys від посилання, але нічого не змінилося. Натискаючи клавішу 133 звіт про бічну клавішу, натисніть 133 (супер), проведіть пальцем вгору, натисніть клавішу 22 (повернення назад), проведіть пальцем вниз, натисніть клавішу 23 (вкладка)
користувач223544

Відповіді:


5

Я щойно купив один і виявив, що наступне працює для мене ідеально.

  1. Відкрийте редактор dconf ( sudo apt-get install dconf-editorякщо він ще не встановлений).
  2. Перейдіть до org -> gnome -> desktop -> wm -> клавіші.
  3. Змініть значення перемикання на робочу область вниз на

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    і значення переходу на робочу область до

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']


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

2

Отже, оскільки Microsoft Sculpt Comfort Mouse не реєструє натискання кнопок миші для супер-та пальців жестами, а натомість реєструє натискання клавіш на клавіатурі, я використовував пакунки 'xautomation' та 'xbindkeys', щоб слухати ці натискання клавіш та надсилати Ctrl+ Alt+ Right/ Leftдля перемикання між робочими просторами. Це не ідеальне рішення, але він працює як 8 з 10 разів.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Це сценарій xbindkeys - це він слухає натискання клавіш, які миші проведуть вгору і проведіть пальцями вниз жестами, що надсилаються на комп'ютер. Якщо виявлено, xautomation надсилає стандартний натискання клавіші на робочому столі control+ alt+ left/ right.

Підведення пальцем вгору мишею надсилає натискання клавіші left control+ left super+ backspace. Рух пальцем вниз мишкою передає натискання клавіші left control+ left super+ tab. m: 0x4 + mod4 + m: 0x0 + c22 - фактична комбінація коду ключів, яку виявляють xbindkeys.

Я трохи поблукаю з цим, щоб побачити, чи можу я підвищити ефективність, але поки це виконає роботу. Я просто сподіваюся, що tabі backspaceте, що результати миші не грішать жодною роботою, яку я роблю.


1
Чи можете ви пояснити, як працює рішення? Чи надсилається миша Control_L+Super_L+Tab(звідки беруться Control_L + Super_L)? Або ви збігаєте кнопки миші з m:0x4+mod4+m:0x0+c:23(Ви, здавалося, говорите, що подій миші не генерується у питанні)?
Volker Siegel

Я відредагував своє рішення, щоб пояснити, звідки беруться Control_L + Super_L. Я також пояснив призначення m: 0x0 + mod4 + m: 0x0 + c: 23.
користувач223544

0

Я хотів відобразити однакові кнопки для навігації по вкладках у Firefox в обох напрямках. Я використовую xbindkeys та xmacro. Це працює досить добре!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.