私は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)]
私のDell Usbマウスがここに印刷されました。id= 12
したがって、次のようにマウスボタンのマッピングを表示できます。
$ 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)
ここでは、貼り付けを行わずにミドルクリック機能(たとえば、新しいタブでリンクを開くためにクリックする)を維持したい場合に実行できる操作を示します。
最初に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を起動します(または起動時に起動するように構成します)。これで、中マウスボタンは何も貼り付けなくなりますが、それ以外は通常のように機能します。
編集:私が投稿したソリューションに問題が見つかりました:一部のプログラム(少なくともgitk
、一般的ではないか不明)では、テキストの選択が機能しなくなります。試してみてください。ただし、定期的に使用するプログラムでテキストの選択に問題がある場合は、解決策としてこれを使用しないようにしてください。
xsel
をインストールしてから、次のシェルスクリプトを実行します。
#!/bin/sh
while true; do
xsel -fin </dev/null
done
このスクリプトが実行されている限り(ログイン時に実行するように設定できます)、中マウスボタンはどのアプリケーションにも貼り付けられません。したがって、技術的には貼り付けられますが、貼り付けるものは常にありません。
それが動作する方法は、それがxsel
を実行し、バックグラウンド(-i
)にフォークせずに/dev/null
の内容をコピー(-n
)し、実際に保持することです。バッファをクリアして終了するのではなく、バッファ内の空の文字列(-f
)。終了するたびに、同じオプションを使用してxsel
を再度呼び出します。 xsel
は、別のプログラムが別のプログラムをコピーして「義務を軽減する」まで実行を続けるため、新しいプロセスが常に作成されるわけではなく、単一のプロセスが再び必要になるまで正確に実行され続けます。 (スクリプトの複数のインスタンスを実行している場合を除いて、実行する必要はありません。)
また、いいえ、これは通常のコピー/貼り付けの妨げにはなりません。中クリックで貼り付けが別のクリップボードを使用するためです。
これは、多くのプログラムが従う一般的な規則です。これをオフにするグローバルな方法はありません。プログラムごとに行う必要があります。
編集:(Gillesが言うように、マウスボタン2を無効にするのではなく、一部のプログラムにはマウスボタン2の他の用途があるため、これはお勧めしません。)
これは私のスクリプトです。微調整が必要な場合があります
#!/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 ---------------------------------------------------------------------------------