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 World아닙니다 Hello World Hello World. 내가 뭘 잘못하고 있는 걸까요?

편집하다:xte 'key Tab'해결 방법으로 패키지 에 포함된 내용을 사용할 수 있습니다 xautomation. 그러나 원래의 문제는 남아 있습니다.

답변1

xdotool하나를 찾고"X 키 기호"문자열이지만 이를 결정하는 방법에 대한 문서는 간결합니다.

일반적으로 유효한 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를 사용할 수도 있습니다.

관련 정보