Ein Standardservice den X mitbringt besteht im „paste-on-middle-click“, dem Einfügen von kopiertem Text durch einen Klick mit der mittleren Maustaste. Da der mittlere Button bei ThinkPads und damit auch beim YOGA 260 gedrückt gehalten werden muss, um mit dem TrackPoint zu scrollen, führt dies immer wieder zu ungewollten Einfügeorgien. Um diesem Verhalten für den internen TrackPoint Button einen Riegel vorzuschieben, reicht ein einfacher Eintrag in „~/.xsessionrc“:
#!/bin/bash
# disable paste-on-middle-click for ThinkPad Yoga 260 TrackPoint
xinput -set-button-map "Elantech PS/2 TrackPoint" 1 0 3 4 5 6 7
Nicht ganz so einfach gestaltet sich die Sachen für ein extern angeschlossenes ThinkPad Keyboard mit TrackPoint. Ein Eintrag in xsessionrc wird ja nur getriggert, wenn das Keyboard bereits beim Anmelden angeschlossen ist. Das bringt also wenig, wenn das Yoga im laufenden Betriebe angedock wird. Daher müssen wir eine udev Regel für das USB-Keyboard erstellen.
Zunächst muss jedoch noch „at“ installiert werden:
sudo apt install at
Jetzt brauchen wir eine udev Regel unter „/etc/udev/rules.d/“, die auf das Anstecken der ThinkPad Tastatur reagiert. Meine heißt „99-thinkpadKeyboard.rules“:
ACTION=="add", KERNEL=="input[0-9]*" SUBSYSTEM=="input", ATTR{name}=="Lenovo ThinkPad Compact USB Keyboard with TrackPoint", RUN+="/VOLLSTAENDIGER_PFAD_ZUM_SKRIPT/thinkpadKeyboard.sh"
Sie ruft das Skript „/VOLLSTAENDIGER_PFAD_ZUM_SKRIPT/thinkpadKeyboard.sh“ auf:
#!/bin/bash
echo /VOLLSTAENDIGER_PFAD_ZUM_SKRIPT/thinkpadKeyboardMap.sh | at now
Wie man sieht, passiert hier gar nicht viel. Wir rufen einfach ein zweites Skript auf, das dann von „at“ sofort abgearbeitet wird. Dieser Schritt ist notwendig, weil udev auf die Abarbeitung des ersten Skripts wartet, bevor es weitermacht (oder das Script abbricht, wenn dies zu lange dauert). Da wir aber ein eingehängtes und laufendes Keyboard benötigen, um mit xinput darauf zugreifen zu können, müssen wir uns mit dem Zwischenskript behelfen. Die eigentliche Arbeit macht dann das zweite Skript „/VOLLSTAENDIGER_PFAD_ZUM_SKRIPT/thinkpadKeyboardMap.sh“:
#!/bin/bash
# wait a second for udev to initialize the keyboard properly
sleep 1
# get correct XAUTHORITY and DISPLAY
export XAUTHORITY=`ls -1 /home/*/.Xauthority | head -n 1`
export DISPLAY=":`ls -1 /tmp/.X11-unix/ | sed -e s/^X//g | head -n 1`"
# disable paste-on-middle-click for ThinkPad Compact USB Keyboard with TrackPoint
keyboardID=$(xinput | grep "with TrackPoint.*pointer" | sed 's/^.*id=//g' | sed 's/[^0-9].*//g')
if [ "$keyboardID" != "" ]
then
xinput -set-button-map $keyboardID 1 0 3 4 5 6 7 8 9 10 11 12 13
fi