すべてのプログラムで「マウスの中央ボタンの貼り付け」機能をオフにするにはどうすればよいですか?


43

私はよくEclipseでコンパイルできないコードになってしまうので、中マウスボタンを貼り付けるのは好きではありません。すべてのプログラムでこれをオフにするにはどうすればよいですか?Fedoraを実行しています。


4
中クリックして選択範囲を挿入することは、基本的にX11の動作の一部です。http://www.jwz.org/doc/x-cut-and-paste.htmlを参照してください
一時的な

1
@Gilles:すべてのプログラムで。:)
derekhh

4
中央のマウスボタンを完全に壊したり、Xをハックしたり、通常のクリップボードにねじ込んだりすることなく、これを行う簡単な方法は見たことがありません。どこでもテキストURLを強調表示して、私の(FF)ブラウザーウィンドウで中クリックすることでそこに行くことができるのは非常に便利です。
jw013

4
@ephemient「選択を挿入するためのミドルクリックは、基本的にX11の動作の一部です」...信号を取得するためにミドルボタンに約1ポンドの圧力を必要とするSun Optical Mouseがあったときの方法。今日、中央のボタンはヘアトリガー上にあり、さらにホイールとして使用されます。この「基本的な」ものは(X btwの「基本的な」ものとして非常に多く)
デビッドトンホーファー

3
必要なものをすべて無効にする機能は、Linuxのさらに基本的な側面だと思います。
ウェインブロッサム

回答:


24

このソリューションはグローバルに機能し、中マウスの機能を保持します。

インストール xbindkeys xsel xdotool

これを入れる ~/.xbindkeysrc

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

リロード xbindkeys -p

xbindkeys起動時に実行して、pkill xbindkeys停止します。


7
ありがとうございました!!!唯一の有効なソリューションが、正確に2年間、0票で座っているとは信じられません。
Retr0id

4
最後に、Ubuntu Mate 17.10で私のために働いたソリューション。ありがとうございました!
ドミトリーフランク

5
@spiilこのソリューションを試してみたところ、望みの効果が得られました。テキストフィールドで中クリックしても何も起こりませんが、リンクを中クリックして中クリックしてタブを閉じると、Chromium、Firefox、Waterfox(テストした3つのブラウザー)で動作します。
user7214865

4
このソリューションでは、中央のクリックアンドホールドボタンによるスクロールが機能しなくなりました:/
Marc.2377

2
あなたは伝説です。スクロールの目的でトラックボールの中央のボタンを使用しましたが、貼り付け機能が私の人生を悲惨にしました。再び完全に明るい色になりました、ありがとう!
redsPL

16

Fedora 24ではgnome-tweak-tool、次のコマンドを使用してインストールできます。

$ sudo dnf install gnome-tweak-tool

開いてgnome-tweak-tool[キーボードとマウス]タブに移動し、[中クリックペースト]を無効にします。


4
これはUbuntu 16.04でも利用可能です:sudo apt-get install gnome-tweak-tool
Tyranin

1
これは、gedit、gnome-terminalなどのいくつかのプログラムにのみ影響します。askubuntu.com/questions/4507/…のコメントも参照してください。
クボテ

11

中央のボタンを貼り付けることは、左のボタンを選択またはアクティブにし、右のボタンで何か他のこと(拡張、切り替え、メニューの起動など)を行うなど、Unixユーザーインターフェイスの標準です。ほとんどのUNIXアプリケーションで貼り付けにバインドされていることがわかります。

ホイールに指を置いたときにマウスが敏感すぎるという問題がある場合は、より良いマウスを入手することをお勧めします。安価なまともなマウスがたくさんあります。

マウスボタン2を別の番号に再割り当てできます。アプリケーションは、左、中央、右のマウスボタンをそれぞれボタン1、2、3として識別します。Xセッションの開始時に実行されるスクリプトにこのコードを配置します(その方法はデスクトップ環境によって異なります)。

echo 'pointer = 1 6 3 4 5' | xmodmap -

1
動作しません。pastebin.com/0DYYMDLS
balki

@balki奇妙な。それは確かに私のために動作します。なぜそれがうまくいかないのかを知るには、新しい質問をしてください。使用しているX.org(または他のXサーバー)のバージョン、これを実行しているディストリビューション、接続されている入力デバイスを必ず記載してください。
ジル 'SO-悪であるのをやめる'

2
私は、OPが標準かどうかは気にしません(私はそうではないことを知っています)。関係ありません。マウスボタンのアクションは、より簡単にカスタマイズできる必要があります。
Marc。2377

7

スクロールホイールマウスは、スクロールホイールを押したときに中ボタンのクリックイベントをサポートします。これはすばらしい機能ですが、いらいらするかもしれません。幸いなことに無効にすることができます。

まず、次のようにマウスの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

ref。リンクhttps://wiki.ubuntu.com/X/Config/Input

それは私のために働く(kubuntu 18.04 LTS)


Slackware 14.2(KDE)のタッチパッドに最適です。
消防士

これは、「download XX」で始まる上記のいずれよりも優れています。私が持っていた唯一の問題は、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
blindguy

3

ミドルクリックを機能させたままにする場合(たとえば、新しいタブでクリックしてリンクを開く場合)に貼り付けを行わずにできることは次のとおりです。

最初にsxhkdxselをインストールします

次に、。/。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
Atnas

1

これは、多くのプログラムが従う一般的な規則です。無効にするグローバルな方法はありません。プログラムごとに実行する必要があります。

編集:(短い、Gillesが言うように、マウスボタン2を無効にします。ただし、一部のプログラムにはマウスボタン2の他の用途があるため、これはお勧めしません。)


1

編集:私はちょうど私が投稿したソリューションの問題を発見しました:いくつかのプログラム(gitk少なくとも、それがどのくらい一般的かはわかりません)では、これはテキスト選択が機能しなくなるでしょう。試してみてください。ただし、定期的に使用するプログラムでテキストの選択に問題がある場合、解決策はこれを使用しないことです。

をインストールしxsel、次のシェルスクリプトを実行します。

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

このスクリプトが実行されている限り(ログイン時に実行するように設定できます)、マウスの中ボタンはどのアプリケーションにも貼り付けられません。技術的には貼り付けられますが、貼り付けるものは常にありません。

それが動作する方法は、実行され、バックグラウンドにフォークせずにxsel-i)の内容をコピー()し、その空の文字列を単にクリアして終了するのではなく、バッファに実際に保持する()ことです。終了するたびに、同じオプションで再度呼び出されます。ので、別のプログラムは、「義務のそれを解放」するまで、他の何かをコピーして実行し続けるだろう、それは常に、それが再び必要になるまでの代わりに、正確に実行する単一のプロセスを維持する、新しいプロセスを作成しません。(スクリプトの複数のインスタンスを実行している場合を除き、それを行う必要はありません。)/dev/null-n-fxselxsel

また、これは通常のコピー/貼り付けの妨げにはなりません。中クリックの貼り付けでは別のクリップボードが使用されるためです。


ありがとうございました!私はKDEを使用していますが、このソリューションは私にとって唯一有効なソリューションです。
アロソ

@Alosoどういたしまして、一番上の警告に留意してください。プログラム内のテキストを選択できない場合、それが最も可能性の高い犯人です。
flarn2006

はい、Firefoxの[ファイルの保存]ダイアログでこの問題に気付きました。今、私はプログラミング中にこのスクリプトをオンにするだけです。
アロソ

@Alosoわかりました。まだあなた
にとって役に立つ

0

これが私のスクリプトです。微調整が必​​要な場合があります

#!/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 ---------------------------------------------------------------------------------
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.