Vraag Hoe deactiveer ik middelklik-klik-plakken?


Is er een manier om het gedrag van de middelste muisknop plakken, dat hier standaard is op gnome, uit te schakelen?

Ik heb een gevoelig muiswiel en wanneer ik door teksten scrol, plakt het soms willekeurig in de tekst. Ik verlies nogal wat geloofwaardigheid wanneer ik een bestand naar iemand anders stuur waar willekeurige tekstfragmenten overheen zijn geplakt.

Ik heb een gezien oplossing dat gebeurt door de middelste knop van de muis in een niet-bestaande muisknop in te delen, maar dat houdt in dat je de middelste muisknop helemaal weggooit (dus geen tab-sluiting, links automatisch naar een nieuw tabblad, enz.). Ik wil mijn middelste muisknop actief houden, schakel gewoon het plakgedrag uit.

Dit gebeurt ook wanneer ik door de tekst scrol met mijn touchpad (per ongeluk twee vingers raken zonder te bewegen, bam.)

Dus het probleem wordt niet opgelost door alleen maar te veranderen voor een nieuwe muis (in feite geloof ik dat dit vaker gebeurt met mijn touchpad dan met mijn muis).


98
2017-09-21 15:26


oorsprong


s / zinnig / gevoelige / - Dennis Williamson
Echt vervelend standaardgedrag. Hoe heb je het uitgeschakeld? - umpirsky
@umpirsky: Ik heb nog geen goede manier gevonden om het uit te schakelen. - levesque
Als je muis middelmatige klikken registreert terwijl je gewoon wilt scrollen, raad ik je aan om een ​​ander muismodel te proberen (waarschijnlijk een met een hogere druk om op het wiel te klikken). Na verscheidene jaren Linux-gebruik heb ik nooit last van je probleem gehad, feitelijk bleek de middelklikklik zelf behoorlijk nuttig :) - Maxime R.
@umpirsky Ik zou het bijna niet idioot noemen; ik ben het er echter mee eens dat dit nogal irritant kan zijn (vooral als je gewoon in een grafisch programma scrolt) - Vreality


antwoorden:


Voor een oplossing voor het probleem, bekijk deze handleiding die ik schreef: http://www.assembla.com/spaces/slipstream/wiki/Disabling_GTK's_middle_mouse_button_functionality

Of, meer direct, hier is de patch om de 'middelste muisknop plakken'-functionaliteit in GTK uit te schakelen: http://subversion.assembla.com/svn/slipstream/patches/gtk_disable_middle_mouse_button_paste.patch


15
2017-09-17 21:27



Ik heb geen tijd gehad om het te proberen (mede omdat ik niet langer een laptop heb), maar dit lijkt de oplossing voor mijn probleem :) - levesque
Ik gebruik Ubuntu 12.04 64 bit met gtk 2.0-0_2.24.10 en het is mislukt op de dpkg-buildpackage-regel. Het zou niet bouwen met niet-gecommiteerde lokale wijzigingen, dus moest ik dpkg-source uitvoeren. - Sam King
@Sam: Bedankt voor de heads-up. Blijkbaar is de --source-option=--auto-commit optie kan worden doorgegeven aan dpkg-buildpackage (wat iets handiger is omdat je het wijzigingslogboek niet hoeft te bewerken). Ik heb de handleiding bijgewerkt om dit weer te geven. - Jelle Geerts
Ik heb deze oplossing geprobeerd, maar elke keer als ik bij de sudo apt-get build-dep libgtk2.0-0 deel Ik krijg een foutmelding met Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' E: Unable to find a source package for gtk+2.0  Helpen? - FCTW
@FCTW: Ik vermoed dat de oorzaak van het probleem is dat GTK3 GTK2 heeft vervangen in moderne distributies. Daarom moet u de pakketnaam van de geïnstalleerde GTK3-bibliotheek vinden door een opdracht zoals uit te voeren dpkg -l | grep libgtk. Het is waarschijnlijk zoiets als libgtk-3-0. Ik heb mijn patch gecontroleerd om te werken aan vroege versies van GTK3; hopelijk werkt het nog steeds. - Jelle Geerts


Jared Robinson gaf een eenvoudige oplossing dat werkt op mijn machine:

Voer de volgende opdracht uit:

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

Om dit gedrag aan te houden, bewerk ~ / .Xmodmap en voeg toe

pointer = 1 25 3 4 5 6 7 8 9

33
2017-08-06 00:32



Maakt dit niet gewoon de middelste knop helemaal onbruikbaar? Hoe zit het met het sluiten van tabbladen, het openen van links naar nieuwe tabbladen, etc.? - levesque
Hoewel dit theoretisch de vraag kan beantwoorden, het zou de voorkeur hebben om de essentiële delen van het antwoord hier op te nemen, en geef de link voor referentie. - Kris Harper
Bedankt, hiermee is het opgelost. Nu krijg ik contextmenu wanneer ik op wiel klik, wat veel beter is dan plakken. - umpirsky
@HDave Hoe zou dit in vredesnaam moeten worden gemarkeerd als het antwoord op een vraag die specifiek zegt dat hij oplossingen heeft gezien die de middelste muis opnieuw koppelen aan een andere sleutel, maar die zijn Niet bevredigend? Dat is precies wat dit antwoord doet. - Thor84no
@Neil Traft Ik heb niet teveel naar deze exacte configuratie gekeken, maar vanuit mijn begrip van invoerventsystemen als je een invoerapparaat hebt zoals een muis, stuurt het standaard invoergebeurtenissen terug wanneer knoppen worden ingedrukt. Deze gebeurtenissen vertellen je dat "een knop van staat veranderd is "," die knop heeft id X "en" de huidige staat wordt ingedrukt / losgelaten "normaliter wijzigt gtk de invoergebeurtenissen die het ontvangt naar kaartknoppen ids [0,1,2,3,4,5,6,7,8 ] tot [1,2,3,4,5,6,7,8,9] onthoud dat alleen de eerste 3-knops-ID's op de meeste muizen worden gebruikt om de knop-ID voor links, midden en rechts aan te geven. dus midden is nu id 25 - S E


Ik realiseer me dat dit niet precies het antwoord is dat je wilt, maar je kunt dit uitschakelen in Firefox (bijvoorbeeld als je de functie elders niet erg vindt, maar toch middenklik wilt in Firefox om links in nieuwe tabbladen te openen)

In about: config, instellen

middlemouse.contentLoadURL false
middlemouse.paste false

Niet wat je vroeg, maar omdat deze vraag gekoppeld is vanuit een paar plaatsen hoop ik dat iemand dit antwoord nuttig vindt.


23
2018-01-21 09:11



+1 Dat is nuttig. Ik zal ook toevoegen dat je in LibreOffice dit kunt doen Tools/Options/LibreOffice/View/Mouse verander 'Middelste muisknop' naar uw gewenste instelling. - Tom Brossman


Dit is op dit moment niet mogelijk - hoewel, zoals je al zei, er manieren zijn om de MOUSE 3-knop uit te schakelen - of opnieuw in te stellen - niemand van hen krijgt de bron van het probleem. De X11 primaire selectie.

Hoewel dit geen oplossing is, zal deze uitleg hopelijk duidelijk WAAROM. In Ubuntu zijn twee klemborden aan het werk. Eén, waarmee iedereen bekend is, het freedesktop.org-klembord (vastlegt Ctrl+C opdracht) De tweede is een klembordmanager die in het spel was sinds Ubuntu zelfs bestond - X11. De X Server (X11) beheert drie andere klemborden: Primaire selectie, Secundaire selectie, en Clipboard. Wanneer u tekst selecteert met uw aanwijzer, wordt deze gekopieerd naar een buffer in de XServer, de primaire selectie, en wacht op plakken met behulp van de knop Mouse 3. De andere twee zijn ontworpen om te worden gebruikt door andere toepassingen op een manier om een ​​gemeenschappelijk klembord te delen tussen applicaties. In dit geval doet de freedesktop.org klembordmanager in Ubuntu dit al voor ons.

Door de omvang van mijn onderzoek kan ik geen manier vinden om de X11-selectiemanager uit te schakelen. Er zijn geen compilatievlaggen, toepassingen of configuratiewaarden die dit kunnen uitschakelen. Er zijn verschillende manieren om dit op een per applicatie basis (de meerderheid van deze applicaties zijn op de commandolijn) - maar niets op een wereldwijde schaal.

Ik besef dat dit geen ideale oplossing is - maar het lijkt de waarheid te zijn. De enige relevante oplossing die ik zou kunnen verzamelen is eigenlijk een hack, maak een script dat een oneindige while-lus uitvoert die net de primaire selectie vervangt door een nulwaarde.

Eerste installatie xsel (Tool voor manipulatie van de selectie X) sudo apt-get install xsel

De code is als volgt:

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

Als u dit in een script plaatst en toevoegt aan uw opstartscripts, zou dit geen probleem moeten zijn.


18
2017-09-23 18:56



Is er een kans voor een script dat alleen de buffer wist in plaats van alle selecties te annuleren? - levesque
while (true)? Het lijkt erop dat het de CPU zal doden :) - umpirsky
Ik heb mapping-butons geprobeerd door Option "ButtonMapping" "1 1 3 4 5" toe te voegen aan xorg.conf, maar het probleem kan niet worden hersteld. - umpirsky
@umpirsky The while(true) is geen probleem omdat de lus bevat sleep 0.5 die een halve seconde CPU-tijd opgeeft in elk van de lus-iteraties. Vanwege dat (en de lichtheid van de xsel opdrachtaanroep die het andere deel van de lus omvat), de CPU-bronnen die door de lus worden ingenomen, zullen buitengewoon klein zijn, zelfs op de langzaamste Ubuntu-machines. - Eliah Kagan
Dit lijkt niet goed te werken voor Unity omdat het script een bestaande selectie in een terminal wist, wat betekent dat je op geen enkele manier een test van een terminal kunt kopiëren (tegen de tijd dat je probeert te kopiëren, is de tekst niet geselecteerd). - Fantius


Ik gebruik gnome-tweak-tool voor het uitschakelen van middelste knop plakken in Ubuntu 16.04.

sudo apt install gnome-tweak-tool

Zoek 'tweak-tool' in geïnstalleerde apps. Voer het uit.

Of typ gewoon gnome-tweak-tool in een terminal.

Ga naar "Toetsenbord en muis" -> "Middelklik plakken" Uitschakelen.

Dat is het. Getest op Ubuntu 16.04


16
2018-01-15 12:03



Werkte als een charme! Ik verloor de hoop zo snel. Dank je! - theY4Kman
Werkte! Bedankt: D - Ahmad Muzakki
het werkt niet na opnieuw opstarten: '( - Ahmad Muzakki
Het gebruik van de Tweaks-tool zou verreweg de leukste manier zijn om dit te doen, als het werkt. Ik heb de middelklikpasta uitgeschakeld en het is nog steeds in de middelste klik en wordt hetzelfde geplakt als hiervoor. Hetzelfde na een herstart. Kan iemand een soortgelijk probleem oplossen? - Kvothe
Ook interessant, een verklaring voor het rare middle-click-gedrag van het overschrijven van de klembordbuffer met de huidige selectie: askubuntu.com/a/225879/653860  (Maar helaas, het uitschakelen van de middelste muisknop, zoals voorgesteld in dat antwoord, schakelt ook mijn muiswiel volledig uit. Het lijkt erop dat er geen eenvoudige manier is om van dit stomme gedrag af te komen zonder andere cruciale invoerfunctionaliteit te vernietigen. .: /) - trollkotze


Op de een of andere manier belandde ik zonder enige xmodmap-bestanden op mijn Ubuntu-installatie, dus ik moest een andere benadering van dit probleem vinden.

Bekijk de xinput opdracht.

xinput list | grep -i mouse

die informatie over uw muis bevat. Het laat zien dat mijn muis "Dell Premium USB Optical Mouse" is en ook dat ik "Macintosh muisknopemulatie" heb. Gewapend met die info, kan ik het

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

waardoor ik een lijst krijg die eruit ziet

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

Hier is de nuttige, vereiste kennis. Mijn muis heeft theoretisch 18 knoppen. De standaardactie van elke knop heeft dezelfde naam als het knopnummer. Met andere woorden, knop 1 voert actie 1 uit, knop 4 voert actie 4 uit, enz. Actie 0 betekent "uit".

De positie in de lijst toont de functie die aan die knop is toegewezen. Dus als mijn knopkaart leest

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

dit betekent dat knop 1 (positie 1) actie 1 (normale linkerknop), knop 2 (positie 2) doet actie 3 (middelste knop) en knop 3 (positie 3) actie 2 (rechterknop).

Om een ​​linkshandige muis te maken, zou alles wat je nodig hebt een knopkaart zijn die begint

3 2 1 4 5 .....

Of, in jouw geval lijkt het erop dat je wilt dat de middelste knop hetzelfde doet als knop 1 (linkerknop), dus je kaart moet beginnen

1 1 3 ....

Ik zou mijn muisknoptoewijzingen dus opnieuw instellen:

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 uw geval heeft u mogelijk een ander aantal toegewezen knoppen en hebt u al een speciale knopkaart gedefinieerd. Waarschijnlijk heeft uw muis ook een andere naam. Haal eerst de "naam" van je muis. Gebruik dan de get-button-map om uw basisknopkaart te vinden. gebruik tenslotte de set-button-map optie, wijzig knop 2 om actie 1 te doen.

Dit is geen permanente verandering. Ik heb de benodigde code aan mijn toegevoegd .bashrc dus het wordt uitgevoerd elke keer dat ik inlog of een terminal open.

Ik hoop dat dit helpt.


14
2018-01-12 12:58



Bedankt voor de info. Er wordt iets meer uitgelegd over de muisknoppen en de acties die daarop zijn toegepast. Het is echter niet de oplossing die ik zoek. Als u met de linkermuisknop op een tabblad in Chrome hebt geklikt (om mijn voorbeeld te gebruiken), wordt het geselecteerd (als dit nog niet is geselecteerd). Als u erop klikt met de middelste knop, wordt deze gesloten (dus zonder op de X te klikken). Ik mis ook het klikken op een link om te openen in een nieuw tabblad om later te lezen. Ik realiseer me dat ik deze met alternatieven kan overwinnen, maar ik ben gewend aan deze manier van werken .... - neildeadman
Alleen een gedachte; een van de andere knoppen op je muis, de mijne zegt dat ik 18 knoppen heb, hoewel ik er nog steeds fysiek meer dan 8 vind) kan de gewenste functie zijn. Probeer andere knoppen toe te wijzen aan je derde knop en kijk of je iets nuttigs vindt. - Wes Miller
Als u opnieuw toewijst als een muis met twee knoppen, zou dit de functie niet moeten veranderen, omdat de wielrollen op knop 5 en 6 drukken (of 7 en 8 of iets dergelijks). - Wes Miller
Ik kan bevestigen dat dit werkt op zowel het ingebouwde ThinkPad-trackpoint als het Lenovo-toetsenbord met dezelfde lay-out. De get-button-map op het Lenovo-toetsenbord komt terug met 22 knoppen voor mij, maar hetzelfde set-button-map <<name-or-id>> 1 0 3aanpak werkt voor mij - Milimetric
deze is het antwoord (hoewel ik vind dat je beschrijving is uitgeschakeld) - get-button-map koppelt de positie in de lijst aan de fysieke knop, wat het tegenovergestelde is van xmodmap, die de positie in de lijst koppelt aan de functie. Met behulp van de set-button-map kunnen we twee fysieke knoppen toewijzen aan één logische positie. Werkt voor mij op een asus zenbook pro. - zzzeek


Ik stel voor een van deze te gebruiken, die meestal goed werkt voor mij:

met behulp van xbindkeys: wanneer op de middelste knop wordt gedrukt, wist u het primaire klembord. In ieder geval op mijn systeem wordt het gewist, voordat het plakken gebeurt. Details: create xbindkeys-config:

xbindkeys --defaults > $HOME/.xbindkeysrc

Plak de volgende nieuwe sneltoets:

"xclip -i /dev/null"    
    b:2``

Herlaad xbindkeys (bijvoorbeeld killall xbindkeys; xbindkeys). Gedaan.

met behulp van xdotool: Maak het klembord op focusveranderingen in het venster (zou moeten werken met de meeste vensterbeheerders). Details: Voer de volgende opdracht uit:

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

Merk op dat je met dit commando nog steeds het primaire klembord binnen hetzelfde venster kunt gebruiken, of het middelste huis op een ander venster kunt drukken VOORDAT je het scherpstelt (als je geen "focus volgt muis" of iets geactiveerd hebt).


4
2018-02-22 11:10