feat(text-injection): speed up ydotool injection with explicit --key-delay (#488)
Pass --key-delay 8 to ydotool type instead of relying on the default (12-20ms). This makes text injection ~3x faster while keeping key-delay above zero to avoid the Shift-leak bug where capital letters corrupt following characters. The delay is configurable via VOCALINUX_YDOTOOL_KEY_DELAY env var. Note: --key-hold flag from the original issue does not exist in standard ydotool (verified against official man page and v1.0.4 source). Fixes #482
This commit is contained in:
@@ -987,7 +987,13 @@ class TextInjector:
|
||||
if self.wayland_tool == "wtype":
|
||||
cmd = ["wtype", text]
|
||||
else: # ydotool
|
||||
cmd = ["ydotool", "type", text]
|
||||
# Pass explicit timing parameters to speed up injection.
|
||||
# ydotool defaults to --key-delay 12 (or 20 in older versions).
|
||||
# We use a faster default configurable via environment variable.
|
||||
# IMPORTANT: key-delay must stay > 0 to avoid Shift-leak bug where
|
||||
# capital letters corrupt following characters (e.g. "Can you" -> "CAN YOu").
|
||||
key_delay = os.environ.get("VOCALINUX_YDOTOOL_KEY_DELAY", "8")
|
||||
cmd = ["ydotool", "type", "--key-delay", key_delay, text]
|
||||
|
||||
try:
|
||||
subprocess.run(cmd, check=True, stderr=subprocess.PIPE, text=True)
|
||||
|
||||
Reference in New Issue
Block a user