Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
xdotool ist ein kleines, aber effektives Befehlszeilenwerkzeug für den XServer, mit dem sich Maus- und Tastatureingaben emulieren sowie Programmfenster manipulieren lassen. Es lässt sich zum Beispiel verwenden, um mittels xbindkeys Funktionstasten einer Maus zu belegen, den Funktionsumfang einfacher Fenstermanager zu erweitern oder Eingaben zu automatisieren.
Mit diesem Programm ist es auch möglich, einen Teil der Funktionen von Brightside nachzubilden.
xdotool kann direkt aus den offiziellen Paketquellen installiert werden [1]:
xdotool (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install xdotool
sudo aptitude install xdotool
Die Bedienung erfolgt über die Befehlszeile [2] und mehrere Befehle können in einem Shell-Skript zusammengefasst werden. Innerhalb einer Desktopumgebung können diese Befehle oder Skripte aber auch über einen Programmstarter oder ein Tastenkürzel aufgerufen werden.
Im Detail sind alle Funktionen in der Manpage dokumentiert.
Nachfolgend einige Beispiele, die den Funktionsumfang demonstrieren.
Drücken der Funktionstaste zum Stummschalten der Audioausgabe emulieren:
xdotool key XF86AudioMute
Den Mauszeiger an die x,y-Koordinate 100,200 springen lassen:
xdotool mousemove 100 200
Der Nullpunkt ist links oben, nicht links unten. Die Position hängt von der Auflösung des Bildschirms ab. Um die gewünschte Position nicht durchprobieren zu müssen, kann man sie mit folgendem Befehl ermitteln lassen:
xdotool getmouselocation
An der zuletzt gesetzten Mausposition mit der linken Maustaste (1) klicken:
xdotool click 1
Befehle lassen sich auch zusammenfassen / kombinieren:
xdotool mousemove 100 200 click 1
Die Bewegung des Mauszeigers um 10 Pixel nach rechts emulieren:
xdotool mousemove_relative 10 0
Die virtuelle Arbeitsfläche relativ zur aktiven wechseln:
xdotool set_desktop --relative 1 ## Nächste Arbeitsfläche
oder auch
xdtool set_desktop --relative -- -1 ## Vorherige Arbeitsfläche
Mit dem Mauszeiger am rechten Bildschirmrand den Standard-Terminal-Emulator starten:
xdotool behave_screen_edge --delay 1000 right exec x-terminal-emulator
Eine laufende Firefox-Instanz in den Vordergrund bringen, einen neuen Reiter (Tab) öffnen, die Adressleiste fokussieren und ubuntuusers.de
aufrufen:
WID=$(xdotool search firefox | head -n1) ## Window-ID von Firefox ermitteln xdotool windowactivate $WID xdotool key "ctrl+t" ## neuen Reiter öffnen xdotool key "ctrl+l" ## Fokussieren der Adressleiste xdotool type --delay 100 "ubuntuusers.de" ## Internetadresse eintippen xdotool key "Return" ## Internetadresse aufrufen
Shell-Skript: Zehn mal dieselbe Position mit einer Pause von je 0,1s klicken:
1 2 3 4 5 6 7 8 | #!/bin/bash i=1 while [ $i -le 10 ] do xdotool mousemove 100 200 click 1 sleep 0.1 i=$(( $i + 1 )) done |
Shell-Skript: Den Mauszeiger sprunghaft zehn mal mit je einer Pause aus einem Zufallswert von 1 oder 3 Sekunden bewegen, wobei die Position der x-Achse (horizontal) nach jedem Klick um zehn Pixel nach rechts gesetzt wird:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash i=1 x=100 while [ $i -le 10 ] do xdotool mousemove "$x" 200 ## click 1 am Zeilenende ergänzen, wenn an jeder Position auch geklickt werden soll sleep $(shuf -i1-3 -n1) i=$(( $i + 1 )) x=$(( $x + 10 )) done |
Dieses Skript kann auch als Einzeiler direkt im Terminal aufgerufen werden:
i=1; x=100; while [ $i -le 10 ]; do xdotool mousemove , $x, 200; sleep $(shuf -i1-3 -n1); i=$(( $i + 1 )); x=$(( $x + 10 )); done
xbindkeys - Unabhängiger Dienst zum Belegen von Tastenkombinationen
wmctrl - neueres Werkzeug mit ähnlicher Funktionalität
Brightside - Ecken und Kanten der Arbeitsfläche für Aktionen nutzen
Eingabegeräte Übersicht für Eingabegeräte
Fenstermanager Übersicht für Fenstermanager
Diese Revision wurde am 28. Mai 2016 18:54 von noisefloor erstellt.