키를 다양한 키 및 조합(해당 키 포함)에 매핑하는 방법은 무엇입니까?

키를 다양한 키 및 조합(해당 키 포함)에 매핑하는 방법은 무엇입니까?

각 키 앞에 +를 dxhd사용 하여 사용한 다음 해당 키를 입력하고 아래와 같이 다른 키를 눌러 보았습니다.xdotoolCtrlG

#!/bin/sh

# @{a-z}
xdotool key ctrl+g
xdotool type {a-z}
sleep 1
xdotool key Tab

예를 들어 제가 원하는 것은 임의의 문자를 입력하면 마치 + 를 클릭한 다음 을 입력하고 1초 동안 기다린 다음 을 클릭하는 a것처럼 동작하는 것입니다 .CtrlGaTab

문제는 을 입력하려고 할 때 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여러 줄 명령은 지원되지 않습니다. )

관련 정보