Config muis- knoppen en scrollwheel

Datum: 02-08-2014

Ubuntu,Muiswiel,xinput,button-map,Linux

Onverklaarbare foutmeldingen op websites en soms hele stukken php-code in een stylesheet. Erg vervelend.... Waar komt die 'spook-code' vandaan ?

Het "scrol-wheel" is ook de tweede (midden) knop op de muis. Deze knop werkt als de plak (paste) knop voor het knippen en plakken. Heel handig.... helaas kan tijdens het scrollen, bij te hard drukken op het wiel, de inhoud van het clipboard willekeurig overal tussen geplakt worden. Erg irritant en als je het niet hebt gezien voor de code fataal.

Gelukkig is deze tweede muisknop relatief eenvoudig uit te zetten.

Uitschakelen van tweede muisknop

Instellingen wijzigen via de terminal. Met handige en effectieve command-line opdrachten is het probleem zo opgelost

  1. De muis vinden in de lijst van invoer apparaten
  2. Overzicht van de muisknoppen
  3. Wijzigen functie van muisknop
  4. Instellingen vasthouden, ook na herstarten los-/vast koppelen

 

1. Welk invoer apparaat is de muis

Met de xinput command-line tool kan je direct settings aanpassingen.

$ xinput list

In Dit geeft op deze computer het volgende resultaat:

? Virtual core pointer id=2 [master pointer (3)] ? ? Virtual core XTEST pointer id=4 [slave pointer (2)] ? ? PIXART USB OPTICAL MOUSE id=10 [slave pointer (2)] ? ? SynPS/2 Synaptics TouchPad id=8 [slave pointer (2)] ? ? Logitech USB Receiver id=9 [slave pointer (2)] ? Virtual core keyboard id=3 [master keyboard (2)] ? Virtual core XTEST keyboard id=5 [slave keyboard (3)] ? Power Button id=6 [slave keyboard (3)] ? ThinkPad USB Keyboard with TrackPoint id=7 [slave keyboard (3)] 

Deze opdracht geeft een overzicht van alle apparaten, gebruik de volgende om meteen de muis eruit te pakken.

$ xinput list | grep -i mouse

Dit levert het volgende resultaat:

? ? PIXART USB OPTICAL MOUSE id=10 [slave pointer (2)]

Op deze manier wordt meteen de muis uit de lijst gefilterd
Handleiding: xinput, grep, pipe (of gebruik in de terminal xinput --help of xinput -h, grep -h)

Of om alleen de naam te verkrijgen

$ xinput list --name-only | grep -i mouse

Dit levert in mijn geval het volgende op:

PIXART USB OPTICAL MOUSE

 

2. Overzicht van muisknoppen

Om een overzicht te krijgen van de knoppen indeling (button-map) bij de muis:

$ xinput get-button-map "PIXART USB OPTICAL MOUSE" 

Of gebruik i.p.v. de naam de ID van het apparaat (in dit geval 10)

$ xinput get-button-map 10

Beide leveren dezelfde uitkomst, niet meer dan de lijst met knoppen in nummers:

1 2 3 4 5 6 7

Het zal bijna altijd om de tweede knop gaan. Om dit zeker te weten en te zien welk nummer bij welke knop hoort:

$ xinput list-props 10 | grep -i "Button Labels"

In dit geval geeft dit:

Button Labels (263): "Button Left" (133), "Button Middle" (134), "Button Right" (135), "Button Wheel Up" (136), "Button Wheel Down" (137), "Button Horiz Wheel Left" (138), "Button Horiz Wheel Right" (139) 

 

Muis knoppen

Afhankelijk van hoe uitgebreid de muis is zullen er 3 of meer nummers worden weergegeven. Nu zijn het er dus 7.

Zoals hierboven te zien is gaat het hier specifiek over knop 2, het "scrollwheel" als midden muisknop ("Button Middle").

Nu kan de button-map herschreven gaan worden.

 

 

 

 

3. Wijzigen functie van muisknop

Apparaat ID van de muis is (in dit geval) 10,
de aan te passen knop heeft nummer 2

xinput set-button-map <apparaat-id> <button-map>

$ xinput set-button-map 10 1 0 3 4 5 6 7 

1 0 3 4 5 6 7 Knop 2 heeft zo geen functie meer, klikken met de "mousewheel" doet nu niets meer.

Echter is dit voor nu een tijdelijke aanpassing. Als de computer opnieuw opstart is het muiswieltje gewoon weer een drukknop.

 

4. Instellingen vasthouden

Eenmaal goed ingesteld is het fijn als deze instellingen ook blijven bestaan na het herstarten van de computer of na het loskoppelen en weer aankoppelen van het apparaat.

Maak een bestand aan voor het volgende script. bv. "[SCRIPTNAAM].sh"

Via een desktop editor of zoals hier via de command-line:

$ touch [SCRIPTNAAM].sh

Kopieer deze code in het bestand.

#!/bin/sh xinput list | sed -ne 's/.*mouse.*id=\([0-9]*\).*/\1/pI' | while read id do xinput set-button-map $id 1 0 3 4 5 6 7 done

Maak het script uitvoerbaar

$ chmod +x [SCRIPTNAAM].sh

Test het script:

$ ./[SCRIPTNAAM].sh

Bekijk de button map:

$ xinput get-button-map [APPARAAT-ID]

In dit geval is de tweede button op 0 gezet, werkt hierbij dus niet meer

1 0 3 4 5 6 7

Script werkt dus.

Nu moet het script tijdens het opstarten geladen worden.

Ga naar de volgende folder:

$ cd ~/.config/autostart

Maak in deze folder een bestand aan. Hier worden de gegevens voor het automatische starten van het "[SCRIPTNAAM].sh" geplaatst.

$ touch disable-middle-mouse-button.desktop

Kopieer de volgende regels in het aangemaakte bestand, zorg dat het path naar de plek waar het script stat klopt.

Name=disable-middle-mouse-button Type=Application Comment=Disable middle mouse button Exec=/home/[USERNAME]/[SCRIPTNAAM].sh Icon= X-GNOME-Autostart-enabled=true