xdotool imprime 8 en lugar de Tab

xdotool imprime 8 en lugar de Tab

Actualmente estoy trabajando en un script de "autotipo" paraaprobar. Para hacer eso, necesito escribir el nombre de usuario, presionar 'Tab' y luego escribir la contraseña.

Para realizar pruebas estoy usando el siguiente código:

WID=$(xdotool selectwindow)
xdotool windowactivate $WID type --delay 100 "Hello World"
xdotool windowactivate $WID key --clearmodifiers Tab
xdotool windowactivate $WID type --delay 100 "Hello World" 

Luego selecciono katecomo ventana, pero el resultado es Hello World8Hello Worlden lugar de Hello World Hello World. ¿Qué estoy haciendo mal?

EDITAR: Como solución alternativa, puede utilizar xte 'key Tab'el xautomationpaquete. Pero la pregunta original sigue en pie.

Respuesta1

xdotoolestá buscando un"X Keysym"cadena, pero su documentación con respecto a cómo determina esto es concisa:

Generalmente, cualquier cadena X Keysym válida funcionará. Varias claves están separadas por '+'. Existen alias para "alt", "ctrl", "shift", "super" y "meta" que se asignan a Foo_L, comoAlt_Ly Control_L, etc.

Utilicé códigos clave como 0xff09(el código clave paraPestaña) al desarrollar una página en xtermllaves especiales. Con ese enfoque, pude enviar todas las teclas que estaban definidas en la configuración de mi teclado.

Mi línea de comando difería. Sólo la parte relevante de un script de prueba muestra esto:

KEY=0xff09      # XK_tab

sendkey() {                                                                     
        echo "** $1"                                                            
        xdotool key --window $ID $1 2>/dev/null                                 
}

sendkey "$KEY"

Tu comando problemático sería

xdotool windowactivate $ID key --clearmodifiers $1 2>/dev/null

xdotoolEl manual sugiere que puede ser necesario agregar una --syncopción e implica que la cadena de comandos funcionará (de modo que windowactivatey keyencadenar), pero esa combinación tampoco funciona para mí. Pero la --windowopción de keysí funciona:

xdotool key --window $ID --clearmodifiers $1 2>/dev/null

Respuesta2

Sé que esto es un poco antiguo, pero tal vez ayude a alguien. También puedes usar KP_Tab o KP_Enter, por ejemplo.

información relacionada