私はよくEclipseでコンパイルできないコードになってしまうので、中マウスボタンを貼り付けるのは好きではありません。すべてのプログラムでこれをオフにするにはどうすればよいですか?Fedoraを実行しています。
私はよくEclipseでコンパイルできないコードになってしまうので、中マウスボタンを貼り付けるのは好きではありません。すべてのプログラムでこれをオフにするにはどうすればよいですか?Fedoraを実行しています。
回答:
このソリューションはグローバルに機能し、中マウスの機能を保持します。
インストール xbindkeys xsel xdotool
これを入れる ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
リロード xbindkeys -p
xbindkeys
起動時に実行して、pkill xbindkeys
停止します。
Fedora 24ではgnome-tweak-tool
、次のコマンドを使用してインストールできます。
$ sudo dnf install gnome-tweak-tool
開いてgnome-tweak-tool
[キーボードとマウス]タブに移動し、[中クリックペースト]を無効にします。
中央のボタンを貼り付けることは、左のボタンを選択またはアクティブにし、右のボタンで何か他のこと(拡張、切り替え、メニューの起動など)を行うなど、Unixユーザーインターフェイスの標準です。ほとんどのUNIXアプリケーションで貼り付けにバインドされていることがわかります。
ホイールに指を置いたときにマウスが敏感すぎるという問題がある場合は、より良いマウスを入手することをお勧めします。安価なまともなマウスがたくさんあります。
マウスボタン2を別の番号に再割り当てできます。アプリケーションは、左、中央、右のマウスボタンをそれぞれボタン1、2、3として識別します。Xセッションの開始時に実行されるスクリプトにこのコードを配置します(その方法はデスクトップ環境によって異なります)。
echo 'pointer = 1 6 3 4 5' | xmodmap -
スクロールホイールマウスは、スクロールホイールを押したときに中ボタンのクリックイベントをサポートします。これはすばらしい機能ですが、いらいらするかもしれません。幸いなことに無効にすることができます。
まず、次のようにマウスのIDを知る必要があります。
$ xinput list | grep 'id='
次のようなものを印刷します
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ PixArt Dell MS116 USB Optical Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Power Button id=6 [slave keyboard (3)]
Video Bus id=7 [slave keyboard (3)]
Power Button id=8 [slave keyboard (3)]
Sleep Button id=9 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=10 [slave keyboard (3)]
Dell KB216 Wired Keyboard id=11 [slave keyboard (3)]
Eee PC WMI hotkeys id=13 [slave keyboard (3)]
ここでid = 12のDell Usbマウスが印刷されました
そのため、次のようなマウスボタンマッピングを表示できます。
$ xinput get-button-map 12
印刷する
1 2 3 4 5 6 7 8 9 10 11 12
ここでは、最初の3つの数字だけが意味を持ちます。これらは、左、中央、および右のマウスボタンを表します。
0に設定すると、マウスの中央ボタンをオフにできます。
$ xinput set-button-map 12 1 0 3
または、中マウスボタンを左マウスボタンに変更するには、1に設定します。
$ xinput set-button-map 12 1 1 3
それは私のために働く(kubuntu 18.04 LTS)
xinput set-button-map 12 1 0 3
あなたのためにすべてのボタンを設定することです(この例では1〜12 xinput set-button-map 12 1 0 3 4 5 6 7 8 9 10 11 12
)
ミドルクリックを機能させたままにする場合(たとえば、新しいタブでクリックしてリンクを開く場合)に貼り付けを行わずにできることは次のとおりです。
最初にsxhkdとxselをインストールします。
次に、。/。config / .sxhkd / sxhkdrcを次のように構成します
~button2
echo -n | xsel -n -i
~control + c
echo -n | xsel -n -i
~control + shift + c
echo -n | xsel -n -i
~control + x
echo -n | xsel -n -i
そして、それは基本的にそれです。
次に、sxhkdを起動します(または起動時に起動するように構成します)。現在、中央のマウスは何も貼り付けませんが、それ以外は通常のように機能します。
~/.config/sxhkd/sxhkdrc
編集:私はちょうど私が投稿したソリューションの問題を発見しました:いくつかのプログラム(gitk
少なくとも、それがどのくらい一般的かはわかりません)では、これはテキスト選択が機能しなくなるでしょう。試してみてください。ただし、定期的に使用するプログラムでテキストの選択に問題がある場合、解決策はこれを使用しないことです。
をインストールしxsel
、次のシェルスクリプトを実行します。
#!/bin/sh
while true; do
xsel -fin </dev/null
done
このスクリプトが実行されている限り(ログイン時に実行するように設定できます)、マウスの中ボタンはどのアプリケーションにも貼り付けられません。技術的には貼り付けられますが、貼り付けるものは常にありません。
それが動作する方法は、実行され、バックグラウンドにフォークせずにxsel
(-i
)の内容をコピー()し、その空の文字列を単にクリアして終了するのではなく、バッファに実際に保持する()ことです。終了するたびに、同じオプションで再度呼び出されます。ので、別のプログラムは、「義務のそれを解放」するまで、他の何かをコピーして実行し続けるだろう、それは常に、それが再び必要になるまでの代わりに、正確に実行する単一のプロセスを維持する、新しいプロセスを作成しません。(スクリプトの複数のインスタンスを実行している場合を除き、それを行う必要はありません。)/dev/null
-n
-f
xsel
xsel
また、これは通常のコピー/貼り付けの妨げにはなりません。中クリックの貼り付けでは別のクリップボードが使用されるためです。
これが私のスクリプトです。微調整が必要な場合があります
#!/bin/bash
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo
id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
for(i=1; i<=NF; i++) {
tmp=match($i, /id=[0-9]+/)
if(tmp) {
print $i
}
}
}' $1 | tr -d '[:alpha:]='
)
echo fixing $id:
xinput set-button-map $id 1 10 2 4 5 6 7 8 9 3
echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------