Gnomeのデフォルトでここにある中央マウスボタンの貼り付け動作を無効にする方法はありますか?
繊細なマウスホイールがあり、テキストをスクロールするたびに、ランダムにテキストに貼り付けられることがあります。ランダムテキストスニペットが全体に貼り付けられている他の人にファイルを送信すると、かなりの信頼性が失われます。
私は solution を見ましたが、これはマウスの中央ボタンを存在しないマウスボタンにマッピングすることによって行われますが、これは中央のマウスボタンを完全に取り除くことを意味します(つまり、タブを閉じず、自動的に新しいタブなど)。マウスの中央ボタンをアクティブに保ち、貼り付け動作を無効にします。
これは、タッチパッドでテキストをスクロールしたときにも発生します(誤って2本の指を動かさずに叩きます、バム)。
そのため、新しいマウスに交換するだけでは問題は解決しません(実際、マウスよりもタッチパッドの方が頻繁に発生すると考えています)。
問題の解決策については、 私が書いたこのガイド をご覧ください。
または、より直接的に パッチがあります は、GTKの「中マウスボタンの貼り付け」機能を無効にします。
Ubuntu 16.04で中央ボタンの貼り付けを無効にするには、gnome-Tweak-toolを使用します。
インストールする
Sudo apt install gnome-Tweak-tool
インストール済みのアプリで「調整ツール」を検索するか、ターミナルでgnome-Tweak-tool
と入力するだけで実行できます。
消す。
それでおしまい。
gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false
16.04でテスト済み。
Jared Robinsonが簡単な解決策を示した それは私のマシンで動作する:
次のコマンドを実行します。
xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"
この動作を維持するには、〜/ .Xmodmapを編集して追加します
pointer = 1 25 3 4 5 6 7 8 9
私はこれがあなたが望む答えではないことを理解していますが、Firefoxでこれをオフにすることができます(たとえば、他の機能を気にしないが、Firefoxで中クリックしてリンクを新しいタブで開く場合)
About:configで設定
middlemouse.contentLoadURL false
middlemouse.paste false
あなたが尋ねたものではありませんが、この質問はいくつかの場所からリンクされているので、誰かがこの答えを役に立つと思うことを望みます。
現時点ではこれは不可能です-既に述べたように、マウス3ボタンを無効にする方法、または再マップする方法がありますが、いずれも問題の原因になりません。 X11プライマリ選択。
これは解決策ではありませんが、うまくいけばこの説明がそれを明らかにする理由です。 Ubuntuには2つのクリップボードがあります。誰もがよく知っているfreedesktop.orgクリップボード(キャプチャ Ctrl+C コマンド)2番目は、Ubuntuが存在する前から使用されていたクリップボードマネージャー-X11です。 Xサーバー(X11)は、3つの他のクリップボードを管理します:プライマリ選択、セカンダリ選択、およびクリップボード。ポインターでテキストを選択すると、XServerのバッファー(プライマリ選択)にコピーされ、マウス3ボタンによる貼り付けを待ちます。他の2つは、アプリケーション間で共通のクリップボードを共有するために、他のアプリケーションが使用するように設計されています。この場合、Ubuntuのfreedesktop.orgクリップボードマネージャーがすでにこれを行っています。
私の研究の範囲を通して、X11選択マネージャーを無効にする方法を見つけることができません。これを無効にするコンパイルフラグ、アプリケーション、または構成値はありません。これについては、アプリケーションごとにさまざまな方法があります(これらのアプリケーションの大部分はコマンドラインのものです)-しかし、世界規模では何もありません。
これは理想的な解決策ではないことを認識していますが、問題の真実のようです。関連する唯一の解決策は、実際にはハックです。プライマリ選択をヌル値に置き換えるだけの無限whileループを実行するスクリプトを作成します。
最初にxsel
(X選択の操作用ツール)Sudo apt-get install xsel
をインストールします
コードは次のとおりです。
while(true)
do
echo -n | xsel -n -i
sleep 0.5
done
これをスクリプトに入れてスタートアップスクリプトに追加する場合、これは問題になりません。
どういうわけか、Ubuntuのインストールでxmodmapファイルがまったくなかったため、この問題に対する別のアプローチを見つける必要がありました。
xinputコマンドを見てください。
xinput list | grep -i mouse
マウスに関する情報をリストします。私のマウスは「Dell Premium USB Optical Mouse」であり、「Macintoshマウスボタンエミュレーション」も持っていることがわかります。その情報で武装して、私はできる
xinput get-button-map "Dell Premium USB Optical Mouse"
次のようなリストが表示されます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
役に立つ、必要な知識は次のとおりです。私のマウスには、理論的には18個のボタンがあります。各ボタンのデフォルトアクションには、ボタン番号と同じ名前が付いています。つまり、ボタン1はアクション1を実行し、ボタン4はアクション4を実行します。アクション0は「オフ」を意味します。
リスト内のpositionは、そのボタンに割り当てられた機能を示しています。だから私のボタンマップが読めば
1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
つまり、ボタン1(位置1)はアクション1(通常の左ボタン)、ボタン2(位置2)はアクション3(中央ボタン)、ボタン3(位置3)はアクション2(右ボタン)を実行します。
左利きのマウスを作成するために必要なのは、開始するボタンマップだけです。
3 2 1 4 5 .....
または、あなたの場合、中央のボタンがボタン1(左ボタン)と同じことをするように見えるため、マップを開始する必要があります
1 1 3 ....
したがって、マウスボタンのマッピングをリセットします。
xinput set-button-map "Dell Premium USB Optical Mouse" 1 1 3 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18
場合によっては、マップされたボタンの数が異なり、特別なボタンマップが既に定義されていることがあります。 Likwely、マウスの名前も異なります。まず、マウスの「名前」を取得します。次に、get-button-map操作を使用して、ベースボタンマップを見つけます。最後に、set-button-mapオプションを使用し、ボタン2を変更してアクション1を実行します。
これは永続的な変更ではありません。私は。bashrcに必要なコードを追加したので、ログインまたは端末を開くたびに実行されます。
お役に立てれば。
私はこれらのいずれかを使用することをお勧めします。
xbindkeysの使用:中央のボタンを押すたびに、プライマリクリップボードをクリアします。少なくとも私のシステムでは、貼り付けが行われる前にクリアされます。詳細:xbindkeys-configを作成:
xbindkeys --defaults > $HOME/.xbindkeysrc
次の新しいホットキーを貼り付けます。
"xclip -i /dev/null"
b:2``
Xbindkeysをリロードします(例:killall xbindkeys; xbindkeys)。できた.
xdotoolの使用:ウィンドウフォーカスの変更時にクリップボードをクリアします(ほとんどのウィンドウマネージャーで動作します)。詳細:次のコマンドを実行します。
xdotool search --onlyvisible . behave %@ focus exec xclip -i /dev/null
このコマンドを使用すると、同じウィンドウ内でプライマリクリップボードを使用したり、フォーカスする前にミドルマウスを別のウィンドウに押したりすることができます(「マウスにフォーカスを合わせる」、または何かをアクティブにしない場合)。
私がこれまでに見つけた最良の方法は、EasyStrokeを使用することです。これにより、中央ボタンのクリックをグローバルにインターセプトし、特定のアプリでのみ中央ボタンとして動作させることができます。
EasyStrokeに「グループ」を追加して、このインターセプトを複数のアプリケーションに一度に適用できます。一部のテキストエディター(IDEおよびMATLABのみ)でミドルクリックを無効にするように設定し、意図したとおりに動作します。
リファレンス: http://ubuntuforums.org/showpost.php?p=11811126&postcount=25
完全なEasyStrokeハウツー: http://sourceforge.net/apps/trac/easystroke/wiki/Documentation
これは、ミドルクリックを機能させないようにするための最も簡単な解決策です。
最初のインストール sxhkd andxsel.
次に、./。config/.sxhkd/sxhkdrcのように設定します
~button2
echo -n | xsel -n -i
~control + c
echo -n | xsel -n -i
~control + x
echo -n | xsel -n -i
そしてそれは基本的にそれです。
次に、sxhkdを起動します(または起動時に起動するように構成します)。現在、中央のマウスは何も貼り付けませんが、それ以外は通常のように機能します。 (ctrl + cとctrl + xのみを使用してコピーする限り、マウスでコピーすると、通常の状態に戻る前に1回貼り付けることができます。)
この中マウスボタンの貼り付け動作はXサーバー(およびテキストコンソールのgpm)の機能であり、少なくともX.orgを無効にするように構成することはできません。マッピングを変更するだけです。他の人が既に提案したように、物理的なマウスボタンの。
望ましくないミドルクリックを回避するようにタッチパッドを設定できる可能性があります。設定にエディターを使用する場合は、gpointing-device-settings(デフォルトではインストールされません)またはsynapticsのマンページを参照してください。
以下のリンクは私のために問題を修正しました。
上記のリンクで参照されるページには、ユーザーがマウスボタンマッピングをフェッチしてマッピングを変更できるいくつかのコマンドを実行することにより、スクロールホイールでの中央マウスペーストを無効にする方法に関するセクションがあります。ページで説明したように、コマンドを実行して中央のボタンを無効にしました:
$ xinput set-button-map 4 1 0 3
タッチポイント/タッチパッドでレノボXを使用している場合、私はあなたに部分的な答えを持っているかもしれません。シナプスマウスボタンには「既知の」バグがあります。 USBマウスを試しても問題はないが、タッチパッド/タッチポイントマウス(キーボードに組み込む)を使用すると、入力中にテキストのスワスが削除される可能性があるランダムな応答がある場合、これは私が話しているバグかもしれません。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1506817
これがあなたの状況に合う場合は、そのバグレポートで、このバグを特定した人のリストに名前を追加します。これを報告している人がもっと多ければ、修正されるでしょう。
Xinput-redirectionトリックを試して、中央のマウスの「ボタン」(実際にはホイール)を変更して、マウスの左ボタンと同じように動作するようにしました。それはまだホイールとして機能し、スクロールすると、ソースコードの途中で(明らかに)ランダムな場所に物を貼り付けるのを停止しました。
私の場合、コマンドは
xinput set-button-map "PixArt USB Optical Mouse" 1 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ただし、マウスモデルごとのYMMV。
数か月前に同じ問題が発生しましたが、マウスを変更して解決しました!しかし、あなたのように、単純なボタンマッピングの問題がソフトウェアの修正によってエレガントに解決できないことに不満を感じました。幸いなことに、仕事用コンピューターで問題が発生し、雇用主はさまざまな予備のマウスコントローラーを所有しています。それは無料の修正でした!
適切なマウスハードウェアの実装では、スクロール中にランダムな中クリックが送信されないはずです。最近、この動作がWindowsを使用していても迷惑になることがわかりました!
適切なハードウェアソリューション(ハードウェアの変更)でハードウェアのバグを修正したので、「中クリックで貼り付ける」動作への依存症を開始しました!!
ハッピーlinuxing!
心から
SW:Ubuntu 14.04、Gnomeフォールバック付き。 HW:私はラップトップを持っているので、真ん中のボタンは実際にはラップトップ上/内のマウスです。解決策:Ubuntu SWセンターに移動し、Unity Tweak Toolをダウンロードします。 Tweak Toolを起動します。マウス設定では、中クリック挿入をオン/オフするスイッチがあります。素敵な一日を過ごす。
これはgnomeの機能以上のもので、ほぼすべての場所で機能し、コンソールでも機能し、「Linux from Scratch」でも機能すると思います。
そのため、おそらくカーネルのどこかにある基本的な機能です。
ところで:これは本当に便利です。Ctrl+ Vのような通常の貼り付けではありません。カーソルでマークされたものはすべて2番目のストレージに移動し、middleclickでは最後にマークしたものを貼り付けることができます。
Gnomeアプリケーションの場合は、[キーボードとマウス]タブでgnome-tweaks
(gnome-Tweak-tool
パッケージの新しい名前)を使用できます。[ミドルクリックペースト]オプションがあるか、org.gnome.desktop.interface /を直接編集できます。 gtk-enable-primary-paste Gnomeオプション。
KDEアプリケーションの場合、 同等のソリューション があるようです。
X全体(非Gnomeアプリケーションを含む)で XMousePasteBlock をインストールできます。これは動作するために(ユーザーで十分で、ルートは不要です)実行する必要があります。これにより、他のミドルクリック機能を無効にすることなく、ミドルクリックの貼り付けが完全に無効になります。
2ボタンマウスをエミュレートしてみてください。 2ボタンマウスでは、両方のマウスボタンを同時にクリックして貼り付けます(スクロールホイールではなく)。
Gpointing-device-settingsをインストールします。
Sudo aptitude install gpointing-device-settings
http://live.gnome.org/GPointingDeviceSettings
あるいは、gpointing-device-settingsをインストールしたくない場合、およびコマンドラインオプションに悩まされない場合は、 https://wiki.ubuntu.com/X/Config/Input を参照してくださいwikiページにはいくつかのコマンドライン/設定オプションがありますので、お好みのものを選択してください。
私のために働いた唯一の答えは https://unix.stackexchange.com/a/277488/288916 Radivarig(すべてのクレジットは彼に行きます)で与えられました。ただし、機能させるには1つの変更が必要でした。
Xbindkeysをインストールします。
Sudo apt-get install xbindkeys xsel xdotool
次のテキストを含むxbindkeys ~/.xbindkeysrc
の構成ファイルを作成します。
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2
を使用して構成ファイルをロードします
xbindkeys -p
この行を〜。/ bashrcに追加して、xbindkeysが起動時に常にロードされるようにします。
これは私のために働くものですが、Radivarigが示唆しているのは代わりにラインを使用することです
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release
この最後の1つは機能しませんが、バージョンが機能しない場合は、もう1つ試してみることをお勧めします。
久しぶりに見てみると、これは、マウスの中ボタンを完全に無効にすることなく、マウスの中ボタンを一般的にオフにする唯一の解決策です。
既存の投票された回答については、質問に答えず、代わりにマウスの中ボタンを完全に無効にする方法を伝えるか、いくつかのプログラムでのみ動作するソリューションを提供することに注意してください(geditおよびgnome端末でのみ調整ソリューション)または他の少数)または彼らは単にそれが不可能だと言う。
spawnの答えは似たような精神であり、うまくいくかもしれませんが、この解決策を見つけるまで私はそれを見ませんでした。
上記の投稿で学んだことを使用して、このbashワンライナーは私にとって完璧に機能します...
mouse_id=$(xinput list | grep 'Mouse' | awk '{print $9}' | sed 's/[^0-9]//g') && xinput set-button-map "$mouse_id" 1 0 3