단축키에 바인딩하여 난수 문자열을 입력하는 스크립트를 만들었습니다.
#!/bin/bash
ran="$(shuf -i 100000-999999 -n 1)"
sleep .2
xdotool type --delay 12 "untitled_$ran "
어떤 이유로 이 xdotool
명령은 처음 10분의 1초 정도 동안 아무 작업도 수행하지 않습니다. 그렇지 않은 경우 sleep
아무것도 입력하지 마세요. sleep
명령이 더 짧으면 6자 미만으로 입력하십시오 . 이는 명령이 실행 중이지만 스크립트가 실행된 후 처음 몇 분 동안은 무시되는 것과 같습니다.
왜 이런 일이 일어나는가?이 문제를 어떻게 해결할 수 있나요?
답변1
귀하는 귀하의 의견에서 이 스크립트를 실행하기 위해 일종의 단축키를 사용하고 있다고 말했습니다. 무슨 일이 일어나고 있는지 확실히 알 수는 없지만 키보드 포커스가 움직이는 것이 의심되며 xdotool
지체없이 실행하면 포커스가 의도한 터미널이 아닙니다. 이 가설을 테스트하려면 다음 접근 방식을 권장합니다.
xev
터미널에서 시작하세요.- 터미널이 보이도록 유지하면서 창에 초점을 맞춥니다
xev
(창 안으로 마우스를 이동하는 등). - 단축키를 누르세요.
- 이벤트를 모니터링
FocusOut
하고 기록합니다 . 이런 일이 발생하면 열쇠가 사라진 이유를 설명할 수 있습니다.FocusIn
xev
xev
KeyPress
이벤트는KeyRelease
귀하가 해당 작업을 수행하고 있음을 보여주어야 합니다xdotool
.
가정이 정확하다면 이를 수정하는 방법에 대해서는 포커스 변경을 일으키지 않는 방식으로 단축키를 활성화해야 합니다. 나는 전혀 모른다 ...