Переназначить боковую сенсорную кнопку на мыши Microsoft Sculpt Comfort


12

Недавно я приобрел мышь Microsoft Sculpt Comfort. Он использует Bluetooth для подключения к моему ноутбуку, и все обычные кнопки мыши отлично работают как в Linux, так и в Windows 7. Однако эта мышь отличается тем, что у нее есть специальная клавиша Windows/ Superна боковой панели, которая запускает меню «Пуск» при нажатии. Он также имеет сенсорный датчик, который определяет, когда боковая кнопка нажимается вверх или вниз, и вибрирует мышь, подтверждая, что она активирована.

Конечно, в Windows есть программа, которая позволяет мне изменять то, что делают удары, и отключать вибрацию.

В Linux xev обнаруживает только нормальное нажатие клавиши при нажатии или нажатии боковой кнопки. Ксев не сообщает ни о каких нажатиях кнопок мыши.

Итак, мой вопрос, могу ли я изменить, какие нажатия клавиш отправляются под Linux?

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

Спасибо за любую помощь!


Вы ознакомились с инструкциями для мышей по адресу help.ubuntu.com/community/ManyButtonsMouseHowto ?
ubfan1

1
Спасибо за подсказку ubfan1, команда get-button-map из xinput дает мне 13 кнопок. Отчет об испытаниях xev и xinput только кнопки 1-7. Я попытался переназначить кнопки 8-13, используя xinput set-button-map и xbindkeys из ссылки, но ничего не изменилось. Нажатие на боковую клавишу отчетов о нажатии клавиши 133 (супер), проведите вверх по клавише отчетов, нажмите 22 (возврат), проведите вниз по клавише отчетов, нажмите 23 (вкладка).
user223544

Ответы:


5

Я только что купил один и обнаружил, что следующее работает идеально для меня.

  1. Откройте dconf-редактор ( sudo apt-get install dconf-editorесли он еще не установлен).
  2. Перейдите к org -> gnome -> desktop -> wm -> keybindings.
  3. Измените значение switch-to-workspace-down на

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

    и значение переключателя к рабочей области вверх , чтобы

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


Это решение работает более надежно, чем решение, которое я нашел с помощью xbindkeys. Единственный недостаток по сравнению с xbindkeys заключается в том, что решение xbindkeys, похоже, захватывало только события клавиш мыши, тогда как это решение также будет работать, если используются клавиши клавиатуры. Несмотря на это, надежность этого решения делает его лучшим решением.
user223544

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(Вы, кажется, сказали, что в вопросе не генерируются события мыши)?
Фолькер Сигел

Я отредактировал свое решение, чтобы объяснить, откуда взялись Control_L + Super_L. Я также объяснил назначение m: 0x0 + mod4 + m: 0x0 + c: 23.
user223544

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.