tmux 서버를 제어하고 세션의 특정 창으로 전환하거나 생성된 소켓을 통해 창에 일부 쿼리를 보내는 등 명령을 보낼 수 있는 방법이 있습니까?
Python의 libtmux를 살펴보았는데 일부 영역에서는 부족한 것 같습니다. tmux api에 대한 공식 참조를 확인할 수 있나요? 내 배포판의 공식 tmux 패키지에는 tmux 바이너리만 포함되어 있습니다.
소스 코드를 읽는 것 외에 소켓을 통해 tmux를 제어하는 방법을 이해할 수 있는 다른 방법이 있습니까? 이를 간단하게 만들거나 목표로 삼는 다른 터미널 멀티플렉서가 있습니까?
답변1
python-tmux를 사용하여 원하는 것을 달성하는 것은 어렵지 않습니다.
예를 들어 세션 이름이 foo인 새 서버를 시작하는 경우
tmux new-session -s foo
ipython을 통해 python tmux를 통해 연결할 수 있습니다(python 라이브러리가 설치되어 있다고 가정).
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
그런 다음 tmux 창에서 명령이 실행되는 모습을 볼 수 있습니다.
session.cmd("send-keys","x")
키 입력 "x"가 전송됩니다. 요청한 창 목록은 다음을 통해 쿼리할 수 있습니다.
session.cmd("list-panes").stdout
다음 명령을 사용하여 특정 창(예: nr.1)으로 전환할 수 있습니다.
session.cmd("select-window","-t","1").stdout
이것을 이해하기 위해 tmux의 소스 코드를 읽을 필요는 없습니다. 이러한 모든 명령은 tmux 매뉴얼 페이지에 문서화되어 있습니다. 그것이 충분하지 않다면 python-libtmux가 "어떤 면에서 부족하다"는 것이 무엇을 의미하는지 더 구체적으로 설명해야 합니다.