web-dev-qa-db-ja.com

Microsoft Sculpt Comfort Mouseのサイドタッチボタンを再マップする

最近、Microsoft Sculpt Comfort Mouseを購入しました。 Bluetoothを使用してラップトップに接続し、通常のマウスボタンはすべてLinuxとWindows 7の両方で完璧に機能します。ただし、このマウスの違いは、特別なマウスボタンがあることです。 Windows/Super 押したときにスタート/メニューを起動する側のキー。また、サイドボタンが上下にストロークしたことを検出し、マウスが振動してアクティブになったことを確認するタッチセンサーもあります。

もちろん、Windowsには、ストロークの動作を変更し、振動をオフにするプログラムがあります。

Linuxでは、xevは、サイドボタンが押されるかスワイプされると、通常のキーストロークのみを検出します。 Xevは、マウスボタンが押されたことを報告しません。

だから私の質問は、Linuxの下で送信されるキープレスを変更できますか?

キーバインディングを変更したい tab に down、 backspace に up、(xevが報告するもの) ctrl+alt+left/right ワークスペースを切り替える。

助けてくれてありがとう!

12
user223544

私は自分で1つ購入しましたが、次のことがうまく機能していることがわかりました。

  1. Dconf-editorを開きます(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']

    およびswitch-to-workspace-upの値

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

Microsoft Sculpt Comfort Mouseは、スーパージェスチャやスワイプジェスチャのマウスボタンの押下を登録するのではなく、キーボードキーの押下を登録するので、「xautomation」および「xbindkeys」パッケージを使用して、それらのキー押下をリッスンして送信します Ctrl+Alt+Right/Left ワークスペースを切り替える。これは理想的なソリューションではありませんが、10回のうち8回のように機能します。

#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+leftsuper+backspace。マウスを下にスワイプすると、キーストロークが送信されます left control+leftsuper+tab。 m:0x4 + mod4 + m:0x0 + c22は、xbindkeysによって検出される実際のキーコードの組み合わせです。

効率を改善できるかどうかを確認するためにもう少し混乱させますが、今のところはこれで仕事は完了です。私はただ願っています tab そして backspace マウスの出力が、私がやっていることを妨げないこと。

2
user223544

同じボタンをマップして、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
0
user3229974