dotool – Installation & Konfiguration (Manjaro / Arch-basiert)¶
Übersicht¶
„dotool“ ist ein Low-Level-Eingabesimulationsdienstprogramm. Im Gegensatz zu „xdotool“ interagiert es über „uinput“ direkt mit dem Linux-Kernel, wodurch es sowohl mit X11 als auch mit Wayland kompatibel ist.
Installation (Manjaro / Arch)¶
1. Installieren Sie das Paket¶
pamac build dotool
# or via yay: yay -S dotool
2. Berechtigungen und udev-Regeln¶
Damit „dotool“ Eingaben ohne Root-Rechte simulieren kann, muss Ihr Benutzer Teil der „input“-Gruppe sein und eine udev-Regel muss aktiv sein:
Benutzer zur Gruppe hinzufügen:
sudo gpasswd -a $USER inputUdev-Regel erstellen:
echo 'KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"' \ | sudo tee /etc/udev/rules.d/80-dotool.rules
Udev-Regeln neu laden:
sudo udevadm control --reload-rules && sudo udevadm trigger
Wichtig: Sie müssen sich abmelden und erneut anmelden, damit die Gruppenänderungen wirksam werden.
Projektkonfiguration (config/settings.py)¶
# Override X11 default to use dotool (recommended for better layout stability)
x11_input_method_OVERRIDE = "dotool"
# Delay between keystrokes in milliseconds
# 2ms = Default, reliable for special characters and Umlauts
# 0ms = Maximum speed (Instant mode)
dotool_typedelay = 2
Skriptimplementierung¶
Leistungsoptimierung (FIFO)¶
Das Starten einer neuen „dotool“-Instanz für jedes Wort ist langsam (~100 ms Latenz). Um eine „sofortige“ Eingabe zu erreichen, verwendet das Skript einen dauerhaften Hintergrundprozess, der aus einer FIFO-Pipe liest.
# Setup in the main script
mkfifo /tmp/dotool_fifo 2>/dev/null
dotool < /tmp/dotool_fifo &
DOTOOL_PID=$!
Die Tippfunktion¶
do_type() {
local text="$1"
if [[ "$INPUT_METHOD" == "dotool" ]]; then
# Pipe commands directly into the running background process
printf 'typedelay %s\ntype %s\n' "$DOTOOL_TYPEDELAY" "$text" > /tmp/dotool_fifo
else
LC_ALL=C.UTF-8 xdotool type --clearmodifiers --delay 12 "$text"
fi
}
Fehlerbehebung und Hinweise¶
Fehlende Zeichen: Wenn Sonderzeichen (wie Umlaute) übersprungen werden, erhöhen Sie „dotool_typedelay“ auf 5 oder 10.
Anwendungskompatibilität: Einige Apps (Electron, Browser) erfordern möglicherweise eine höhere Verzögerung, um schnelle Eingaben korrekt zu registrieren.
Wayland-Unterstützung: „dotool“ ist das erforderliche Backend für Wayland, da „xdotool“ es nicht unterstützt.
Automatischer Fallback: Das Skript greift automatisch auf „xdotool“ zurück, wenn „dotool“ nicht richtig installiert oder konfiguriert ist.