![키를 다양한 키 및 조합(해당 키 포함)에 매핑하는 방법은 무엇입니까?](https://linux55.com/image/198248/%ED%82%A4%EB%A5%BC%20%EB%8B%A4%EC%96%91%ED%95%9C%20%ED%82%A4%20%EB%B0%8F%20%EC%A1%B0%ED%95%A9(%ED%95%B4%EB%8B%B9%20%ED%82%A4%20%ED%8F%AC%ED%95%A8)%EC%97%90%20%EB%A7%A4%ED%95%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
각 키 앞에 +를 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
여러 줄 명령은 지원되지 않습니다. )