Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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).

share|improve this question
    
s/sensible/sensitive/ –  Dennis Williamson Sep 21 '10 at 15:48
1  
Really annoying default behaviour. How did you disable it? –  umpirsky Jun 20 '11 at 14:09
    
@umpirsky: Haven't found a proper way to disable it yet. –  levesque Jun 20 '11 at 16:04
    
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
2  
@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

16 Answers 16

up vote 12 down vote accepted

For a solution to the problem, please view this guide I wrote: http://www.assembla.com/spaces/slipstream/wiki/Disabling_GTK's_middle_mouse_button_functionality

Or, more directly, here's the patch to disable the 'middle mouse button paste' functionality in GTK: http://subversion.assembla.com/svn/slipstream/patches/gtk_disable_middle_mouse_button_paste.patch

share|improve this answer
    
I haven't had the time to try it (partly because I no longer have a laptop), but this seems like the solution to my problem :) –  levesque Nov 28 '11 at 20:50
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
    
@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
    
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
    
@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

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.

share|improve this answer
3  
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

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! :)

share|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.

share|improve this answer
1  
BTW2: It pastes where you click, not where the Text cursor is. –  phiphi Sep 23 '10 at 18:13
    
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 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.

share|improve this answer

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:

while(true)
do
    echo -n | xsel -n -i
    sleep 0.5
done

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

share|improve this answer
3  
Any chance for a script that just clears the buffer instead of cancelling all selections? –  levesque Oct 29 '10 at 20:16
    
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
    
@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
2  
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

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
share|improve this answer
3  
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
    
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
    
Thanks, this fixed it. Now I get context menu when clicking wheel, which is much better then paste. –  umpirsky Nov 30 '11 at 7:59
    
+1 This should be marked as the answer to this question. –  HDave Feb 7 at 19:52
2  
@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 at 14:56

If you are using Chrome / Chromium then you can install an extension that will give you scroll in most web pages.

AutoScroll extension link:

https://chrome.google.com/webstore/detail/occjjkgifpmdgodlplnacmkejpdionan

share|improve this answer
1  
I don't get it, he wants to disable the middle click of the mouse, not enable autoscroll. :S –  Evandro Silva Nov 6 '12 at 9:31

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.

share|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
    
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

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

http://live.gnome.org/GPointingDeviceSettings

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.

share|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 at 19:48

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.

share|improve this answer
1  
+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

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!

Sincerly,

share|improve this answer

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

share|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
share|improve this answer
    
The OP specifically mentioned he did not want to completely disable the middle click button. –  cpburnz Aug 25 at 14:10

the link below fixed the problem for me.

https://wiki.ubuntu.com/X/Config/Input#Example:_Disabling_middle-mouse_button_paste_on_a_scrollwheel_mouse

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
share|improve this answer
    
Welcome to Ask Ubuntu! While we are glad you are joining in the site and participating, please don't post just a link as an answer. Please include some explanation of what you did, or a quote from the page. Thanks! –  RPi Awesomeness Jan 5 at 17:19
    
The OP specifically mentioned he did not want to completely disable the middle click button. –  cpburnz Aug 25 at 14:09

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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