Wo muss ich einen "xinput" -Befehl einfügen, damit er beim Start von GNOME ausgeführt wird?


10

Auf meinem Thinkpad muss ich im Terminal so etwas ausführen:

xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1

Damit emulieren die 2 Tasten auf meinem Touchpad den mittleren Mausklick. Jetzt muss diese Zeile jedes Mal ausgeführt werden, wenn ich GNOMe oder X oder was auch immer starte, damit sie "einfach funktioniert".

Ich habe ~ / .xsession oder ~ / .bashrc versucht, aber ohne Erfolg. Sollte ich es irgendwo in GNOME-Startskripte oder in / etc / X einfügen?

Ich benutze Ubuntu 11.10.


Versuchen Sie, sleep 5am Anfang Ihrer .xsessionDatei ein hinzuzufügen ?
Thomas Ahle

1
@ThomasAhle, das das Problem nicht löst, wenn der Fenstermanager geladen wird und die evdev-Eigenschaften ändert, nachdem die .xsession ausgeführt wurde.
Marcin Kaminski

Antworten:


7

Ich verwende Enlightenment DM, aber das ist für andere DMs / Desktops relevant. Ich starte meine Sitzung mit xsession, also habe ich zunächst xinput-Befehle in ~ / .xsession eingefügt, wodurch nicht alle Einstellungen geändert wurden, die ich ändern wollte. Nur einige von ihnen. Ich hatte entweder alle oder keine Änderungen erwartet, also fügte ich meiner .xsession eine 10-Interaktionsschleife mit Intervallen von 1 Sekunde hinzu, führte jedes Mal xinput-Befehle aus und überprüfte, ob die Einstellungen angewendet wurden. Zu meiner Überraschung wurden alle Einstellungen nach der ersten Iteration angewendet.

Dies bedeutet, dass Ihr DM etwas unternimmt, um Ihre xinput-Einstellungen zu überschreiben. Da der Befehl, mit dem Ihr DM gestartet wird (in meinem Fall E17), der letzte in Ihrer .xsession-Datei ist, ist diese Datei kein Platz dafür.

Ich habe die folgenden Zeilen in mein ~ / .profile eingefügt und dies hat das Problem gelöst:

# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then

  # set your devices names here
  pointer1="IBM TrackPoint"
  pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
  pointer3="Logitech USB Trackball"

  id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
  id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print \$2}" | cut -f1)
  id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print \$2}" | cut -f1)

  if [[ -n "${id1}" ]]; then
    xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id1}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id1}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id2}" ]]; then
    xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id2}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id2}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id3}" ]]; then
    xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id3}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Button" 8
    xinput set-prop "${id3}"  "Evdev Middle Button Emulation" 1
  fi
fi

PS. set-int-prop wurde zugunsten von set-prop (man xinput) abgelehnt.

Hoffentlich hilft das jemandem.


Das Skript ist nett, aber leider gebe ich keine Lösung. Im Moment funktioniert die einzige Methode, wenn ich das Terminal ausführe und dann die 'xinput set-prop' mit den erforderlichen Optionen ausführe. Ich habe Marcins Skript Startup Application ausprobiert, aber diese haben leider nicht funktioniert.
Geeocode

"set-int-prop wurde zugunsten von set-prop abgelehnt" T • H • A • N • K • • Y • O • U •
Clément

4

Fügen Sie den Befehl direkt zu Startanwendungen hinzu. Im Befehlsfeld.

oder

Erstellen Sie ein einfaches Skript und fügen Sie das Skript Startanwendungen hinzu.


3

Erstellen Sie eine Datei /etc/X11/Xsession.d/dafür.


Für mich war das/etc/X11/xinit/Xsession
Thomas Ahle

3
Ich empfehle generell nicht, benutzerspezifische Konfigurationsänderungen in einer systemweiten Konfigurationsdatei vorzunehmen. Erstens, weil es eine zusätzliche Sache schafft, an die Sie sich erinnern müssen, wenn Sie auf einen anderen Computer migrieren müssen, und zweitens, weil diese Dateien meistens dazu dienen, vernünftige Standardeinstellungen bereitzustellen. Es ist schön, nur den Schnappschuss Ihres $ HOME und die Liste der installierten Pakete mitnehmen zu können, wenn Sie neu installieren / migrieren müssen.
Marcin Kaminski

1

So habe ich es in Ubuntu 14.04 vom Terminal aus gemacht:

1) Überprüfen Sie den Namen Ihres Geräts:

xinput list

2) Siehe verfügbare Optionen für Ihr Gerät:

xinput list-props "Your Device Name"

3) Bearbeiten Sie die Einstellungen (um die Einstellungen nach dem Neustart / Herunterfahren konsistent zu machen, fügen Sie diesen Befehl einfach zu den Startanwendungen hinzu ):

xinput set-prop "Your Device Name" "Option Name" "Value"

Hier ist ein Beispielbefehl, mit dem ich gesperrte Drags in meinem Touchpad aktiviert habe:

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Locked Drags" 1

Um eine andere Option zu aktivieren / ändern, suchen Sie sie einfach in den verfügbaren Optionen Ihres Geräts und spielen Sie mit ihnen, bis Sie das gewünschte Ergebnis erhalten. Fügen Sie dann den Befehl zu Startanwendungen hinzu und fertig! Ich hoffe es hilft! :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.