os/x11/ XDoTool
Random Examples
Examples
List window names matching pattern
xdotool search --name "$search_string" getwindowname %@ # or
xdotool search --name "$search_string" | xargs -n1 xdotool getwindowname
`
Send keys to named window (sends to):
xdotool search –name "$search_string" key key1 key2 ... `
Scripts
Example python script using curses and subprocess to send keypresses to named window using xdotool
#!/usr/bin/env python3
import curses
import subprocess
import sys
args = sys.argv[1:]
try:
name = args[0]
except Exception:
print(f"args[0] <window search pattern>")
exit(1)
def sendkey(x):
subprocess.run(["xdotool","search","–name",name,"key",x])
def main(stdscr):
curses.noecho()
stdscr.addstr(f"Search for name\nPress left, right, up, down, or a character\n")
stdscr.refresh()
try:
while True:
c = stdscr.getch()
k = chr(c)
if k.upper() in "[ABCDEFGHIJLKMNOPQRSTYVWXYZ0123456789](ABCDEFGHIJLKMNOPQRSTYVWXYZ0123456789)":
sendkey(k)
elif k == " ":
sendkey("space")
elif c == curses.KEY_LEFT:
sendkey("Left")
elif c == curses.KEY_RIGHT:
sendkey("Right")
elif c == curses.KEY_UP:
sendkey("Up")
elif c == curses.KEY_DOWN:
sendkey("Down")
except [KeyboardInterrupt](KeyboardInterrupt):
return
if __name__ == "__main__":
curses.wrapper(main)
`