Переназначить боковую сенсорную кнопку на мыши 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.