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