xdotool은 Tab 대신 8을 인쇄합니다.

xdotool은 Tab 대신 8을 인쇄합니다.

저는 현재 "autotype" 스크립트를 작성 중입니다.통과하다. 그렇게 하려면 사용자 이름을 입력하고 'Tab'을 누른 다음 비밀번호를 입력해야 합니다.

테스트를 위해 다음 코드를 사용하고 있습니다.

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" 

그런 다음 창으로 선택했지만 kate출력 Hello World8Hello WorldHello World Hello World. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집하다:xte 'key Tab'해결 방법으로 패키지 에서 사용할 수 있습니다 xautomation. 그러나 원래의 질문은 여전히 ​​남아 있습니다.

답변1

xdotool은(는) 찾고 있습니다."엑스키심"문자열이지만 이를 결정하는 방법에 관한 문서는 간결합니다.

일반적으로 유효한 X Keysym 문자열은 모두 작동합니다. 여러 키는 '+'로 구분됩니다. "alt", "ctrl", "shift", "super" 및 "meta"에 대한 별칭이 존재하며 모두 Foo_L에 매핑됩니다.Alt_L그리고 Control_L, 등.

나는 다음과 같은 키코드를 사용했습니다 0xff09.) xterm에서 페이지를 개발할 때특수 키. 이러한 접근 방식을 사용하면 키보드 구성에 정의된 모든 키를 보낼 수 있었습니다.

내 명령줄이 달랐습니다. 테스트 스크립트의 관련 부분에 다음이 표시됩니다.

KEY=0xff09      # XK_tab

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

sendkey "$KEY"

문제가 있는 명령은 다음과 같습니다.

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

xdotool의 매뉴얼에서는 옵션을 추가해야 할 수도 있고 --sync명령 연결이 작동할 것이라고 암시하지만(따라서 windowactivate함께 key연결) 그 조합은 나에게도 작동하지 않습니다. 그러나 다음 --window옵션이 key작동합니다.

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

답변2

나는 이것이 약간 오래되었다는 것을 알고 있지만 아마도 누군가에게 도움이 될 것입니다. 예를 들어 KP_Tab 또는 KP_Enter를 사용할 수도 있습니다

관련 정보