
저는 현재 "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 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를 사용할 수도 있습니다