창에 초점이 맞춰져 있을 때만 듣는 프로그램에 전역 단축키를 어떻게 전달할 수 있나요?

창에 초점이 맞춰져 있을 때만 듣는 프로그램에 전역 단축키를 어떻게 전달할 수 있나요?

단축키(열기, 저장, 인쇄 등)를 허용하는 프로그램(예: OBS, Chrome 또는 Discord)이 있다고 가정할 때, i3에 구성된 것과 같은 전역 단축키를 로컬에서 대상 이벤트만 허용하는 프로그램 창에 어떻게 전달할 수 있습니까?

Ctrl예를 들어, 내가 실행 중인 Chrome 버전을 인쇄 대상( + ) 으로 대상으로 삼고 싶다고 가정해 보겠습니다 P. Chrome에 포커스가 없을 때 인쇄 대화상자( + )가 열리도록 단축키를 어떻게 설정할 수 있나요 CTRL?P

답변1

다음 방법으로 이를 수행할 수 있습니다.

  1. 둘 다 찾았고,
    • 현재 활성 창입니다. ( src)
    • 대상 창. ( dst).
  2. 스크립팅,
    1. 바운스dst
    2. 키 제출
    3. 다시 반등하다src

열려 있는 창을 찾으려면 다음을 사용할 수 있습니다 xdotool.

src=$(xdotool getwindowfocus)
dst=$(xdotool search --onlyvisible --class "Chromium")

그런 다음 사용할 수 있는 올바른 키를 보내세요.

export key="Ctrl+P"
xdotool windowfocus --sync "$dst" key "$key" windowfocus --sync "$src"

관련 정보