tmux가 특정 창에서 누른 키를 모니터링할 수 있나요? (그런 다음 `send-keys`를 발행하십시오)

tmux가 특정 창에서 누른 키를 모니터링할 수 있나요? (그런 다음 `send-keys`를 발행하십시오)

나는 창을 원한다복막사용자는 "비디오"(문자 그대로 애니메이션 일반 텍스트)가 다른 창에서 재생되는 동안 다양한 작업(명령 입력, 스크립트 작성 등)을 수행할 수 있습니다. 사용자는 asciinema 창으로 전환하고 <space> 키를 눌러 비디오를 일시 중지/재생할 수 있습니다. 해당 창을 보고 사용자가 녹음을 일시 중지/재생한 다음 실행하여 tmux send-keys재생 중인 mp3 파일을 일시 중지/재생할 때 를 보고 싶습니다.CMUS다른 창에서.

tmux watch-pane나 와 비슷한 것을 찾지 못했습니다 tmux listen. 그런 것이 존재하나요? 이 사용 사례에서는 asciinema를 통해 입력된 공간과 사용자가 실제로 누른 버튼을 구별해야 합니다.

나는 을 사용하고 있는데 man 페이지에 관한 내용 이나 tmux 2.1내용이 전혀 표시되지 않습니다 . 하지만 새 버전에서는 명령이 제공됩니까?watchlisten

답변1

이를 달성하기 위해 시도할 수 있는 다양한 복잡성의 여러 가지 방법이 있습니다.

  • 원하는 창에서 스페이스바를 눌렀을 때 원하는 작업이 수행되도록 루트 테이블에 스페이스바를 바인딩할 수 있습니다. 아마도 다음과 같습니다.

    bind -n Space if -F '#{m:*asciinema*:#{pane_current_command}}' 'send -t:mycmuswindow Space; send Space' 'send Space'
    

    또는 Pane_title 또는 Pane_current_command가 작동하지 않는 경우 무엇이든 가능합니다.

  • Asciinema 창에서 Monitor-silence를 켜고 Alert-silence 후크를 사용하여 비슷한 방식으로 Space를 cmus 창으로 보낼 수 있습니다.

  • 제어 모드를 사용하여 asciinema 창에서 데이터를 수신하고 Space를 보내는 스크립트를 작성할 수 있습니다. 이때 찾을 수 있는 창에 인식할 수 있는 내용(예: "일시 중지")을 인쇄한다고 가정합니다.

관련 정보