현재 홈 서버의 tmux 세션에서 mcabber를 Jabber 클라이언트 (ncurses를 사용하는)로 실행하고 있습니다. 로컬에서 iTerm2를 터미널 에뮬레이터로 실행하면 문자 이스케이프 시퀀스를 통해 으르렁 알림을 트리거 할 수 있습니다.
참고 : 모든 echo
이 질문은 같은 작품에서 printf %b
, 또는 echo -e
배쉬와 GNU에 echo
.
예를 들어 echo "\e]9;foobar\007"
iTerm2가 텍스트 "foobar"와 함께 Growl 메시지를 보내도록합니다.
그러나 tmux 세션에서는 이스케이프 시퀀스가 중단됩니다. 따라서 독점 문자 이스케이프 시퀀스 \Ptmux
를 다음과 같이 사용할 수 있습니다.
echo "\ePtmux;\e\e]9;foobar\007\e\\"
이는 tmux 세션 내에서 으르렁 메시지를 트리거합니다.
그러나 새 메시지가 수신 될 때 발생하는 mcabber 이벤트 스크립트에서 이것을 사용하면 에코가 잘못된 터미널로 전송되는 것처럼 알림이 트리거되지 않습니다.
나는 이것이 스크립트를 트리거하는 mcabber와 관련이 있다고 가정하여 정상적인 bash 스크립트의 출력이 손실되고 iTerm 2는 그것을 보지 못합니다.
나는 또한 내가 발견 한 아이디어에 반향하기 전에 성공하지 않고 smcup를 호출하려고 시도했다.
tput smcup
echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\"
tput rmcup
문제가 "실제 터미널 창"으로 다시 전환되지 않고 ncurses 창에서 출력을 더 지시하기 때문에 이것이 작동하지 않는다고 생각합니다.
이것에 대한 아이디어가 있습니까?