각 키 앞에 +를 dxhd
사용 하여 사용한 다음 해당 키를 입력하고 아래와 같이 다른 키를 눌러 보았습니다.xdotool
CtrlG
#!/bin/sh
# @{a-z}
xdotool key ctrl+g
xdotool type {a-z}
sleep 1
xdotool key Tab
예를 들어 제가 원하는 것은 임의의 문자를 입력하면 마치 + 를 클릭한 다음 을 입력하고 1초 동안 기다린 다음 을 클릭하는 a
것처럼 동작하는 것입니다 .CtrlGa
Tab
문제는 을 입력하려고 할 때 a
실제로 Ctrl+를 보낸 G다음 하나를 보내고 a
다른 시퀀스(또 다른 Ctrl+ G-> a
-> Ctrl+ G-> a
-> ...)를 재귀적으로 트리거한다는 것입니다.
올바른 방법이 있나요?
답변1
recursion 사용을 피하는 기본 방법은 없는 것 같지만 다음을 dxhd
통해 수행할 수 있습니다.sxhkd
다음 구성을 사용하십시오.
@{a-z}
pkill -USR2 -x sxhkd; xdotool key ctrl+g key {a-z} sleep 1 key Tab; pkill -USR2 -x sxhkd
첫 번째와 마지막 명령은 다음과 같은 신호를 sxhkd
보냅니다 .SIGUSR2
모든 바인딩의 가져오기 상태를 전환합니다.. 이를 통해 재귀를 발생시키지 않고 둘 사이에 바인딩 키를 사용할 수 있습니다.
(이 xdotool
명령은 내장된 명령을 사용하여 한 줄로 압축되었습니다.명령 체계, 줄을 더 짧게 만들기 위해 구분 기호가 있는 원시 명령 ;
도 작동합니다. 안타깝게도 sxhkd
여러 줄 명령은 지원되지 않습니다. )