Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm currently running mcabber as my Jabber client (which uses ncurses) in a tmux session on my homeserver. Locally i run iTerm2 as a terminal emulator, which supports the triggering of growl notifications through character escape sequences

e.g. echo "\e]9;foobar\007" makes iTerm2 send a Growl message with the text "foobar".

However, when in a tmux session, the escape sequences get eaten up. Therefore using the proprietary character escape sequence \Ptmux can be used like this: echo "\ePtmux;\e\e]9;foobar\007\e\\" to trigger a growl message from within a tmux session.

However, when I use this in my mcabber event script that gets fired when a new message is received, no notification is triggerd, as if the echo is send to the wrong terminal.

I suppose this has to do with that mcabber which triggers the script is a ncurses application so the output from my normal bash script gets lost and iTerm 2 does never see it.

I also tried calling smcup without success before echoing accoring to some ideas I discovered

tput smcup
echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\"
tput rmcup

I suppose this does not work as the issue is not switching back to the "real terminal window", but more directing the output at the ncurses window.

Any ideas on this one?

share|improve this question
add comment

1 Answer

The tmux and screen programs don't directly pass through escape sequences. They present one kind of terminal to the application (screen terminal type), and is itself a ncurses app to another terminal. In effect it is something like a terminal translator. So yes it consumes (or discards) sequences for a "screen" terminal type, and puts up a buffer that you see. Then it takes those buffer change events and uses whatever kind of terminal you are currently using to display the current buffer. So the original app and the viewing terminal are decoupled.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.