Is there a way to disable the middle mouse button paste behavior that is here by default on gnome?

I have a sensitive mouse wheel and whenever I scroll texts, sometimes it pastes stuff randomly into the text. I lose quite a lot of credibility when I send a file to someone else that has random text snippets pasted all over it.

I have seen a solution that goes by mapping the mouse's middle button to a non-existant mouse button, but that implies getting rid of the middle mouse button altogether (i.e. no tab-closing, opening links into a new tab automatically, etc.). I'd like to keep my middle mouse button active, just disable the pasting behavior.

This also happens when I scroll text with my touchpad (accidentally hit two-fingers without moving, bam.)

So the problem will not be fixed just by changing for a new mouse (in fact I believe it happens more often with my touchpad than with my mouse).

  • 11
    Really annoying default behaviour. How did you disable it? – umpirsky Jun 20 '11 at 14:09
  • 6
    If your mouse records middle clicks while you just want to scroll, I'd suggest you to try another mouse model (probably one with a higher pressure to click the wheel). After several years of Linux use I've never been bothered with your issue, actually the middle click paste proved itself to be quite useful :) – Maxime R. Jan 12 '12 at 14:50
  • 3
    @umpirsky I would hardly call it idiotic; however, I agree that it can be rather annoying (especially when simply scrolling in a graphical program) – Vreality Feb 13 '13 at 22:39
  • 3
    I've got the same problem, and personally consider it a giant security flaw. Copying passwords and keys is not uncommon, and accidentally pasting them into random websites while attempting to scroll, or muscle memory is a nightmare come true. – Ryan The Leach Nov 3 '18 at 16:23
  • 2
    Oh so I am not alone having this issue. First I was scared of my random texts pasted on some inputs on websites, only after while realized it's caused by system and mapped paste action to middle click - and ofc. it accidentally happens on my mouse when scrolling. Hope this will be removed as default in future. – Jurosh Dec 30 '18 at 15:43

23 Answers 23


For a solution to the problem, please view this guide I wrote

Or, more directly, here's the patch to disable the 'middle mouse button paste' functionality in GTK.

| improve this answer | |
  • 1
    I'm using Ubuntu 12.04 64 bit with gtk 2.0-0_2.24.10, and it failed on the dpkg-buildpackage line. It wouldn't build with uncommitted local changes, so I had to run dpkg-source --commit. – Sam King Aug 21 '12 at 14:54
  • 1
    @Sam: Thanks for the heads up. Apparently, the --source-option=--auto-commit option can be passed to dpkg-buildpackage (which is somewhat more convenient as one doesn't have to edit the change log). I've updated the guide to reflect this. – Jelle Geerts Aug 26 '12 at 23:40
  • 1
    I tried this solution, but every time I got to the sudo apt-get build-dep libgtk2.0-0 part I get an error with Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' E: Unable to find a source package for gtk+2.0 Help? – FCTW Jul 4 '13 at 17:38
  • 1
    @FCTW: I suspect the cause of the problem is that GTK3 has replaced GTK2 in modern distributions. Hence, you'll have to find the package name of the installed GTK3 library, by running a command like dpkg -l | grep libgtk. It's probably something like libgtk-3-0. I have verified my patch to work on early versions of GTK3; hopefully it still works. – Jelle Geerts Jul 12 '13 at 12:51
  • 2
    This seems to be the only answer actually answering the question. And unfortunately it seems outdated. Any fix that currently works? (Universally I mean. The tweak tool can turn it off in some programs like Gedit, but not in the majority of programs.) – Kvothe Aug 22 '18 at 15:27

I use gnome-tweak-tool for disabling middle button paste in Ubuntu 16.04.

  1. Install it

    sudo apt install gnome-tweak-tool
  2. Run it by searching "tweak tool" in installed apps or just type gnome-tweak-tool in a terminal.

  3. Go to "Keyboard and mouse" -> "Middle-click paste"
  4. Turn off.


That's it.

Or using just CLI

gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false

Tested on 16.04.

| improve this answer | |
  • 4
    it doesn't work after restart :'( – Ahmad Muzakki Apr 2 '17 at 5:55
  • 18
    Using the Tweaks tool would be by far the nicest way to do this, if it worked. I switched off the middle-click paste and it is still middle-click pasting same as before. Same after a restart. Anyone solve a similar issue? – Kvothe Jul 25 '18 at 22:53
  • 4
    @Kvothe: I just noticed that the setting in Tweak tools seems to affect only certain standard Gnome programs, like gedit, gnome-terminal, gnome-calculator etc. See also tinyurl.com/y7qtak7g (other question here, with no answer). I also noticed that the middle-button paste will copy whatever text was last marked, not even only what was explicitly copied. The clipboard will then be filled with that text. A really annoying feature. (When text was last marked in a standard Gnome program like gedit etc., however, the clipboard will just be made empty on middle-click.) – trollkotze Jul 30 '18 at 14:52
  • 3
    Also interesting, an explanation for the weird middle-click behaviour of overwriting the clipboard buffer with the current selection: askubuntu.com/a/225879/653860 (But sadly, disabling the middle mouse button altogether, as proposed in that answer, also disables my mouse wheel completely. It seems there is no simple way to get rid of this stupid behaviour without destroying other crucial input functionality. Very bad design... :/ ) – trollkotze Jul 30 '18 at 14:56
  • 3
    "The clipboard will then be filled with that text. A really annoying feature." Okay, no, I have to correct myself. That's not true. It seems the copy and paste clipboard is independent of the weird middle-click clipboard. The middle-click will always paste what is currently selected. The clipboard stays unaffected by that. – trollkotze Jul 30 '18 at 15:07

I realise that this is not exactly the answer you want, but you can turn this off in Firefox (e.g. if you don't mind the feature elsewhere, but still want middle click in Firefox to open links in new tabs)

In about:config, set

middlemouse.contentLoadURL false
middlemouse.paste false

Not what you asked, but as this question is linked to from a few places I hope someone finds this answer useful.

| improve this answer | |
  • 3
    +1 That is helpful. I'll also add that in LibreOffice you can do this in Tools/Options/LibreOffice/View/Mouse change 'Middle mouse button' to your preferred setting. – Tom Brossman Oct 3 '12 at 10:30
  • Fixed all my problems. +1 – SimpleBinary Apr 10 at 8:52

Jared Robinson gave a simple solution that works on my machine:

Run the following command:

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

To persist this behavior, edit ~/.Xmodmap and add

pointer = 1 25 3 4 5 6 7 8 9
| improve this answer | |
  • 35
    Doesn't this just disable the middle button altogether? What about closing tabs, opening links to new tabs, etc.? – levesque Aug 7 '11 at 17:36
  • 3
    Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Kris Harper Sep 2 '11 at 17:02
  • 25
    @HDave How on earth should this be marked as the answer to a question that specifically states he's seen solutions that rebind the middle mouse to a different key, but those are not satisfactory? That's exactly what this answer does. – Thor84no Apr 2 '14 at 14:56
  • 5
    Can anyone provide an explanation as to what this series of magic numbers means? – Neil Traft Oct 6 '15 at 22:03
  • 1
    @Neil Traft I havent looked into this exact configuration too much but from my understanding of input event systems when you have an input device like a mouse, it sends back standard input events when buttons are pressed these events tell you that "a button changed state", "that button has id X", and "it current state is pressed/released" normally gtk modifies the input events it receives to map buttons ids [0,1,2,3,4,5,6,7,8] to [1,2,3,4,5,6,7,8,9] keep in mind only the first 3 button ids are used on most mice to indicate the button id for left, middle and right. so middle is now id 25 – S E Nov 3 '15 at 14:09

This currently isn't possible - though, as you have mentioned, there are ways to disable the MOUSE 3 button - or remap it- none of those get at the source of the issue. The X11 Primary Selection.

While this isn't a solution, hopefully this explanation will make it clear WHY. In Ubuntu there are two clipboards at work. One, which everyone is familiar with, the freedesktop.org clipboard (captures Ctrl+C command) The second is a clipboard manager that has been at play since before Ubuntu even existed - X11. The X Server (X11) manages three other clipboards: Primary Selection, Secondary Selection, and Clipboard. When you select text with your pointer it gets copied to a buffer in the XServer, the Primary Selection, and awaits pasting by means of the Mouse 3 button. The other two were designed to be used by other applications in a means to share a common clipboard between applications. In this case the freedesktop.org clipboard manager in Ubuntu already does this for us.

Through the extent of my research I can not find a way to disable the X11 selection manager. There are no compilation flags, applications, or configuration values that can disable this. There are various ways around this on a per application basis (majority of these applications being command line ones) - but nothing on a global scale.

I realize this isn't an ideal solution - but seems to be the truth to the issue. The only relevant solution I could muster is actually a hack, create a script that executes an infinite while loop that just replaces the Primary Selection with a null value.

First install xsel (Tool for manipulation of the X selection) sudo apt-get install xsel

The code is as follows:

    echo -n | xsel -n -i
    sleep 0.5

If you place this in a script and add it to your startup scripts this shouldn't be an issue.

| improve this answer | |
  • 4
    Any chance for a script that just clears the buffer instead of cancelling all selections? – levesque Oct 29 '10 at 20:16
  • 2
    while(true)? Looks like it will kill the CPU :) – umpirsky Jul 8 '11 at 10:54
  • I've tried mapping butons by adding Option "ButtonMapping" "1 1 3 4 5" to xorg.conf, but the problem resists. – umpirsky Jul 8 '11 at 11:32
  • 4
    @umpirsky The while(true) is not a problem because the loop contains sleep 0.5 which relinquishes half a second of CPU time in each of the loop's iterations. Because of that (and the lightweightness of the xsel command invocation which comprises the other part of the loop), the CPU resources taken up by the loop will be exceedingly tiny even on the slowest of Ubuntu machines. – Eliah Kagan Nov 28 '11 at 7:16
  • 4
    This doesn't seem to work well on Unity because the script clears any existing selection in a terminal, which means you cannot copy test from a terminal by any means (by the time you try to copy, the text is unselected). – Fantius May 18 '12 at 18:45

Somehow, I ended up without any xmodmap files on my Ubuntu install, so I had to find a different approach to this problem.

Take a look at the xinput command.

xinput list | grep -i mouse

which lists information about your mouse. It shows my mouse is "Dell Premium USB Optical Mouse" and also that I have "Macintosh mouse button emulation". Armed with that info, I can

xinput get-button-map "Dell Premium USB Optical Mouse"

which gives me a listing that looks like

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Here is the useful, required knowledge. My mouse has, theoretically, 18 buttons. Each button's default action has the same name as it's button number. In other words, button 1 does action 1, button 4 does action 4, etc. Action 0 means "off".

The position in the listing shows the function assigned to that button. So if my button map read

1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

this would mean button 1 (position 1) does action 1 (normal left button), button 2 (position 2) does action 3 (middle button) and button 3 (position 3) does action 2 (right button).

To make a left handed mouse all you would need would be a button map that starts

3 2 1 4 5 .....

Or, in your case, it looks like you want the middle button to do the same thing as button 1 (left button) so your map needs to start

1 1 3 ....

I'd reset my mouse button mappings thus:

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

In your case, you may have a different number of mapped buttons and have some special button map already defined. Likwely, your mouse has a different name, too. First, get your mouse's "name". Then, use the get-button-map operation to find your base button map. finally, use the set-button-map option, modifying button 2 to do action 1.

This is not a permanent change. I added the necessary code to my .bashrc so it executes every time I login or open a terminal.

Hope this helps.

| improve this answer | |
  • Thanks for the info. It explains a little more about the mouse buttons and the actions applied to them. However, it isn't the solution I am looking for. If you left-click a tab in Chrome (to use my example) it selects it (if not selected already). Clicking it with the middle button, will close it (i.e. without clicking the X). I also miss middle-clicking a link to have it open in a new tab for later reading. I realise I can overcome these with alternatives but I am used to this way of working.... – neildeadman Jan 12 '12 at 14:18
  • Just a thought; any of the other buttons on your mouse, mine say I have 18 buttons though I have yet to physically find more than about 8 of them) may be the function you want. Try mapping other buttons to your third button and see if you find something useful. – Wes Miller Jan 13 '12 at 13:04
  • 1
    If you remap as a two button mouse, it shouldn't change the wheelfunction since the wheel rolls are pressing button 5 and 6 (or 7 and 8 or something like that). – Wes Miller Jan 13 '12 at 13:09
  • 1
    I can confirm that this works on both the built in ThinkPad trackpoint and the Lenovo keyboard that has the same layout. The get-button-map on the Lenovo keyboard comes back with 22 buttons for me, but the same set-button-map <<name-or-id>> 1 0 3 approach works for me – Milimetric Aug 17 '15 at 14:44
  • this is the answer (though I think your description is off) - get-button-map links the position in the list to the physical button, which is the opposite of xmodmap, which links the position in the list to the function. Using the set-button-map, we can map two physical buttons to one logical position. Works on an asus zenbook pro for me. – zzzeek Sep 7 '16 at 15:01

I suggest using one of these, which work mostly well for me:

using xbindkeys: whenever middle-button is pressed, clear the primary clipboard. At least on my system it is cleared, before the pasting happens. Details: create xbindkeys-config:

xbindkeys --defaults > $HOME/.xbindkeysrc

Paste the following new hotkey:

"xclip -i /dev/null"    

Reload xbindkeys (e.g. killall xbindkeys;xbindkeys). Done.

using xdotool: Clear the clipboard on window focus change (should work with most windowmanagers). Details: Execute the following command:

xdotool search --onlyvisible . behave %@ focus exec xclip -i /dev/null

Note that with this command you can still use the primary clipboard within the same window, or pressing middlemouse onto another window BEFORE focusing it (if you don't have "focus follows mouse", or somthing, activated).

| improve this answer | |
  • I can't use autoscroll on Firefox with this enabled – sudo Oct 24 at 13:20

The only answer that worked for me was given on https://unix.stackexchange.com/a/277488/288916 Radivarig (All credits go to him). Note that I had to make one change though to make it work:

Install xbindkeys:

sudo apt-get install xbindkeys xsel xdotool

Create a configuration file for xbindkeys ~/.xbindkeysrc with the text:

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"

Load the configuration file using

xbindkeys -p

Add this line to ~./bashrc so that xbindkeys always loads on startup.

This is what works for me but what Radivarig suggests is to instead use the line

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

This last one does not work for me but if one of the versions does not work I suggest to try the other.

After a long time looking this is the only solution I found to work for me that turns off the middle mouse paste button universally without having to disable the middle mouse button completely.

Note that for the existing up-voted answers either they don't answer the question, instead telling you how to disable the middle mouse button completely, or they give a solution that only works in a few programs (tweak-solution only in gedit and gnome terminal and few others) or they simply say it is impossible.

spawn's answer is of a similar spirit and might also work, I did not see it before I found this solution.

| improve this answer | |
  • It works like a charm on Ubuntu 18.04 (with no changes for me). This answer should get more upvote. I didn't see it at first but managed to (hardly) find the one you linked. It's only when I came back to reply that I saw your answer. – Clément Baconnier Oct 21 '19 at 12:59
  • +1 It works great. I still don't understand the underlying logic, but it works, and that's enough for me. This should be the accepted answer. – brett Jan 3 at 16:12

The best way I've found so far is to use EasyStroke, which can globally intercept middle-button click and allow to behave as middle button only in certain apps.

You can add a "group" in EasyStroke to apply this interception in multiple applications at once. I've set to disable middle click in some of my text editors, IDE and MATLAB only and works as intended.

Reference: http://ubuntuforums.org/showpost.php?p=11811126&postcount=25

Complete EasyStroke How-To: http://sourceforge.net/apps/trac/easystroke/wiki/Documentation

| improve this answer | |
  • Thanks from the future for that tip. At first, I was going to just use xinput to disable it totally, and not need to run some extra program, but EasyStroke made it possible to set groups where I could disable the middle button for certain apps (my editor, mainly), and add gestures to certain other apps and using the middle button. So far, works well (14.04 Gnome fallback). – Marty Fried Aug 1 '15 at 18:30
  • Added to my comment: after using EasyStroke for a while, I've found that it often fails to block the middle click. Since I haven't been using the gestures, I am abandoning this program for xinput. – Marty Fried Aug 19 '15 at 16:26

Here's the simplest solution I've found to keep middle click functional without it pasting things.

First install sxhkd and xsel.

Then configure ./.config/.sxhkd/sxhkdrc like so

    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

And that's basically it.

Now start sxhkd (or configure it to launch on startup). Now, middle mouse will no longer paste anything but will otherwise function like normal. (As long as you use only ctrl+c and ctrl+x to copy things that is, if you copy things with the mouse it can paste once before it returns to normal.)

| improve this answer | |

This middle mouse button paste behavior is a feature of the X server (and gpm on the text console) and as far as I know at least X.org can't be configured to disable it - all you can do is to change the mapping of the physical mouse buttons as others already suggested.

Chances are good that you can configure your touchpad to avoid unwanted middle clicks, see gpointing-device-settings (not installed by default) or the synaptics manpage if you prefer to use your editor for configuration.

| improve this answer | |

the link below fixed the problem for me.


the page refered by the above link has a section for how to disable the middle mouse paste on scrollwheel, by executing few commands the user can fetch the mouse buttons mapping and can also change the mapping. as explained in the page i disabled the the middle button by executing the command:

$ xinput set-button-map 4 1 0 3
| improve this answer | |
  • 5
    The OP specifically mentioned he did not want to completely disable the middle click button. – All Workers Are Essential Aug 25 '14 at 14:09

I had the same problem a few months ago and I solved it by changing the mouse! But, as you, I was frustrated that simple button mapping problem can't be solved elegantly by a software fix. Fortunately, I had the problem on my job computer, and my employer owns a variety of spare mouse controllers. It was a no cost fix!

I think a proper mouse hardware implementation should not send random middle clicks while scrolling. Recently I found this behaviour to get annoying even while using Windows!

Now that I've fixed the hardware bug with the proper hardware solution (change the mouse) I even started an addiction to "paste on middle-click" behaviour!!

Happy linuxing!


| improve this answer | |

SW: Ubuntu 14.04, with Gnome fall back. HW: I have a laptop and so the middle button is actually the mouse on/in the laptop. Solution: Go to Ubuntu SW center and download Unity Tweak Tool. Start Tweak Tool. Under the Mouse settings it has switch to turn on/off the middle click insert. Have a lovely day.

| improve this answer | |
  • I have the same system. I downloaded Unity Tweak Tool and wasted time looking at every setting, but there was no such setting. Perhaps you meant "Tweak Tool", which is, I think, Gnome Tweak Tool. It has a setting, although it doesn't seem to work. – Marty Fried Aug 1 '15 at 16:42

I tried the xinput-redirection trick, changing the center mouse "button" (actually a wheel) so it acts just like the left mouse button. It still works as a wheel, and has (apparently) stopped pasting things into random places in the middle of my source code as I scroll past.

In my case the command was

xinput set-button-map "PixArt USB Optical Mouse" 1 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16

but YMMV by mouse model.

| improve this answer | |

I may have a partial answer for you, if you are using a lenovo X... with touchpoint/touchpad. There is a "known" bug with the synaptics mouse buttons. If you try a USB mouse and have no problem, but with the touchpad/touchpoint mouse (build into the keyboard) you do have random responses that can delete swaths of text as you type, then this may be the bug I'm talking about.


If this fits your situation, then add your name to the list of people who have identified this bug, at that bug report. Maybe if there are many more of us reporting this, it would get fixed.

| improve this answer | |

Using what I learned in the posts above, this bash one-liner works perfectly for me...

mouse_id=$(xinput list | grep 'Mouse' | awk '{print $9}' | sed 's/[^0-9]//g') && xinput set-button-map "$mouse_id" 1 0 3
| improve this answer | |
  • 2
    The OP specifically mentioned he did not want to completely disable the middle click button. – All Workers Are Essential Aug 25 '14 at 14:10
  • I modified your one-liner to support multiple mice: xinput list | grep 'Mouse' | grep -o 'id=[0-9]*' | grep -o '[0-9]*' | xargs -i xinput set-button-map "{}" 1 0 3 – Kurt Oct 23 '18 at 21:04

You might want to try emulating a two button mouse. With a two button mouse you paste by clicking both mouse buttons at the same time (rather then the scroll wheel).

Install gpointing-device-settings:

sudo aptitude install gpointing-device-settings


Alternately, if you do not wish to install gpointing-device-settings , and you are not bothered by command line options, see https://wiki.ubuntu.com/X/Config/Input On this wiki page there are several command line / configuration options, choose the one you prefer.

| improve this answer | |
  • Will this still allow me to scroll in apps (such as Chrome) with the wheel though?? I'll give it a try, thanks! – neildeadman Jan 13 '12 at 8:12
  • App installs, but cannot see how it could help. Link to docs is broken. – HDave Feb 7 '14 at 19:48
  • E: Package 'gpointing-device-settings' has no installation candidate – Aaron Franke Feb 2 at 4:59

For Gnome applications you can use gnome-tweaks (new name of gnome-tweak-tool package) under the "Keyboard & Mouse" tab there's the "Middle Click Paste" option or editing directly the org.gnome.desktop.interface/gtk-enable-primary-paste Gnome option.

For KDE applications seems that there's an equivalent solution.

For the whole X (including non Gnome applications) you can install XMousePasteBlock which then has to be running (by the user is enough, no root required) in order to work. This disables completely the middle click paste without disabling the other middle click functions.

| improve this answer | |

In KDE5, there's an option in the Control Panel to enable / disable centre-click which is disabled.

sudo apt install xserver-xorg-input-synaptics

Once you install that package and restart, the option to disable centre-click becomes available.

| improve this answer | |

That's a good question, which i don't have an answer for (yet). A quick and dirty workaround is to remap it NOT to 0, but to 1. This way, it turns middle-"click" to left click, and does not affect your scroller... It is so far the best I can think of.

Note:This information came from Ubuntu Forums, not my own noggin! :)

| improve this answer | |

It's more than a gnome feature, i think it works almost everywhere, it works in the console too, and I think it worked even in my "Linux from Scratch".

So it's really a basic feature perhaps even somewhere in the kernel.

BTW: It's really useful, and it's not the regular paste like Ctrl + V, everything that is marked with the cursor goes in a second storage and with middleclick can paste, what you marked last.

| improve this answer | |
  • 1
    BTW2: It pastes where you click, not where the Text cursor is. – phiphi Sep 23 '10 at 18:13
  • 1
    It's great that you have that opinion, but that's not what the OP was asking! – Matt Fletcher Sep 13 '13 at 9:55
  • This answer is completely unhelpful and opinion. I don't want it to do that, nor did OP. – Clintonio Oct 16 '19 at 14:08

did you check out gpm ? More info at http://manpages.ubuntu.com/manpages/lucid/man8/gpm.8.html. Available via sudo aptitude install gpm on lucid. I don't see the disable-paste program in the ubuntu package however, the -A option may be worth giving a try.

| improve this answer | |
  • 5
    I don't understand gpm.. in the package description they state: "This package tries to be a useful mouse server for applications running on the Linux console." What does this have to do with applications running in windowed mode? – levesque Sep 21 '10 at 16:35

Not the answer you're looking for? Browse other questions tagged or ask your own question.