10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GNOMEのミドルボタンクリックでペーストを無効化したい

Last updated at Posted at 2019-06-02

Ubuntu デスクトップを使っていて、変更したかった動作を(一応)解決できたので投稿

はじめに

普段使いにはThinkpad E480にUbuntu Desktop 16.04 を入れて使っています。(18.04への移行はタイミングを逃した...)

12.04から使い始めたのですが、基本的にUnityは合わなかったのでGNOME系のデスクトップを使っており、現在はMATEを使っています。

自分に合う環境にしてしまえば良いので非常に気に入っているのですが、GNOMEの馴染めない機能に中ホイールクリックでペーストされるという挙動があります。
この挙動が便利な時もあるんですが、特にコードを書いている時にエディタ上でされると謎のゴミコードが紛れ込むことが有り、邪魔されることが有りました。

んで、この設定を変えられないか調べたんですが、公式設定らしきものがなさそうで、小細工による回避策が幾つか見つかりました。
そのうちの一つは上手く動作したので、まとめておきます。

結構古いですが、 「中クリックでペースト」よ、さようなら? | スラド オープンソース 見る限りむしろこの機能が消える方向にあるようなんですが、使っている感じそうは思えないですね。
ちなみに、この記事の反応では機能残して欲しい派は割といるみたいですね。

環境

  • Ubuntu 16.04
  • GNOME 3.18.2

解決策:xbindkeysを使って、ミドルボタンクリック時の動作を変更する

disable middle-click paste in linux without disabling middle scrollxbindkeysの設定ファイルを公開されている方がいたので利用させていただきました。

  • xbindkeysはマウスやキーボードのショートカットを設定できるツール
  • xdotoolがキー操作等をエミュレートするためのツール
  • xselがクリップボード操作

っていう感じですかね。今まで使ってなかったですが普通に便利そうですね。

使っている方の記事もありました xbindkeys + xdotoolを使い無変換キーを押すとAlt+Tabを実行 - Qiita
xdotoolを使ってコマンドラインからウィンドウを操作する | atominux

こんな感じで行けます

# 必要なソフトをインストール
$ sudo apt-get install xbindkeys xsel xdotool

# 設定ファイルに2行追加して保存
$ vi ~/.xbindkeysrc
"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

# 適用
$ xbindkeys -p

xselの処理がいまいちわかってないですが、おそらくミドルボタンクリック時(離した時?)の処理を乗っ取ってxdotoolで必要なイベントのみをエミュレートしている感じですかね。
とりあえず問題なく動作しています。

あとは、~/.xsessionrcにコマンドを書いておけばログイン時とかにやってくれるのでOKかと。
元記事では~/.bashrcに書いてありましたが、bashの起動単位に呼ばれるのでそれは多分必要ないと思います。

# vi ~/.xsessionrc
xbindkeys -p

参考

disable middle-click paste in linux without disabling middle scroll

その他方法

他にも色々検索結果が出てきましたが、動かなかったりイマイチかなという方法なので未実施です。

gtk-enable-primary-pasteを設定する方法

gtk-enable-primary-pasteの値で設定できるみたいです。

これも ubuntu - gnome/gtk: disable middle click paste via terminal - Unix & Linux Stack Exchange で上がっていました

クリップボード - ArchWikiにも記載ありです。

ただ、私の環境では以下のようにキーがないとエラーが出てました。

$ gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false
No such key 'gtk-enable-primary-paste'

Settings: GTK+ 3 Reference Manual によるとGNOME 3.4以降に使えるオプションのようです。残念

Whether a middle click on a mouse should paste the 'PRIMARY' clipboard content at the cursor location.
Flags: Read / Write
Default value: TRUE
Since: 3.4

ちなみに、GNOMEのバージョンは/usr/share/gnome/gnome-version.xmlに書いてありました。私の場合は以下でした。

<?xml version="1.0" encoding="UTF-8"?>
<gnome-version>
 <platform>3</platform>
 <minor>18</minor>
 <micro>2</micro>
 <distributor>Ubuntu</distributor>
 
</gnome-version>

以下のようにgnome-tweak-toolを使っても同じ設定が可能だと思います。

xorg - How do I disable middle mouse button click paste? - Ask Ubuntu

ただ、これもgnomeのバージョンなのか私の環境では動作しませんでした。一応起動はできて、設定メニューは出るんですが、他の項目含めて設定されている感じがしなかったです

あと、コマンド起動した場合も以下のエラーが出てたので諦めました。

$ /usr/bin/gnome-tweak-tool
WARNING : Shell not installed or running
WARNING : Error detecting shell
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/gtweak/tweaks/tweak_group_shell_extensions.py", line 275, in __init__
    raise Exception("Shell not running or DBus service not available")
Exception: Shell not running or DBus service not available
WARNING : Shell not running
None
INFO    : GSettings missing key org.gnome.nautilus.desktop (key computer-icon-visible)

Xmodmapでミドルクリックを無効化する方法

Xmodmapを使ってマウスの割当自体を変えてしまう方法も出てきました。結構いろんなサイトで紹介されていましたが、結局ミドルボタンクリックを無効化してしまうだけなので、単純にミドルボタンクリックが使えなくなります(新規タブを開くとか)。
それはあまりうれしくないです。

xorg - How do I disable middle mouse button click paste? - Ask Ubuntu

xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"

パッチを当てる方法

How to Disable Mouse Middle Click to Paste Feature in Linux で色々な方法がまとめられていました。

その中のFor Hardcore users: Patching the gtk source filelibgtk-3-0にパッチを当てる方法が紹介されていましたが、ちょっと怖いのでやめておきました

おわりに

割とモヤモヤしていた設定が解決?したのでスッキリしました。

ちなみにQiitaでxdotoolxbindkeysのタグ合わせて6記事でした。
またニッチなところを攻めてしまった

参考

disable middle-click paste in linux without disabling middle scroll

クリップボード - ArchWiki

xbindkeys + xdotoolを使い無変換キーを押すとAlt+Tabを実行 - Qiita

xdotoolを使ってコマンドラインからウィンドウを操作する | atominux

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?