xdotool
Więcej informacji
- Twórca
- Jordan Sissel
- Rok
- Typ
- Narzędzie wiersza poleceń
- Licencja
- BSD-3-Clause
- Kod źródłowy
- github.com/jordansissel/xdotool
Narzędzie wiersza poleceń, które podszywa się pod użytkownika: naciska klawisze, rusza myszą oraz znajduje, aktywuje i przesuwa okna X11 ze skryptu powłoki.
Jordan Sissel, później znany z Logstasha, wydał xdotool w 2007 roku jako sposób na sterowanie programami bez własnego interfejsu wiersza poleceń. xdotool key ctrl+alt+t wysyła kombinację klawiszy, xdotool type 'text' wpisuje ciąg znaków, xdotool mousemove 400 300 click 1 przesuwa kursor i klika, a xdotool search --name Firefox windowactivate znajduje okno i nadaje mu fokus. Polecenia łączy się w jednej linii, a biblioteka libxdo robi to samo z poziomu C. Wejście przechodzi przez rozszerzenie XTEST, które wprowadza zdarzenia do serwera tak, jakby pochodziły z klawiatury, a zarządzanie oknami przez właściwości EWMH, więc działa z każdym nowoczesnym menedżerem okien.
Dwie pułapki są dobrze znane. Z opcją --window klawisze idą przez XSendEvent, które wiele programów ignoruje, bo zdarzenie jest oznaczone jako syntetyczne; bez niej wszystko ląduje w oknie, które akurat ma fokus w chwili uruchomienia skryptu, co zdarzało się kończyć wpisaniem hasła w okno czatu. Wayland nie ma odpowiednika XTEST, a następcy, tacy jak ydotool, muszą iść przez uinput jądra, z wymaganymi do tego uprawnieniami.