Actualmente estoy ejecutando mcabber como mi cliente Jabber (que usa ncurses) en una sesión tmux en mi servidor doméstico. Localmente ejecuto iTerm2 como un emulador de terminal, que admite la activación de notificaciones de gruñido a través de secuencias de escape de caracteres.
Nota: Todo echo
en esta pregunta funciona como printf %b
, o echo -e
en bash y GNU echo
.
Por ejemplo, echo "\e]9;foobar\007"
iTerm2 envía un mensaje de Growl con el texto "foobar".
Sin embargo, cuando está en una sesión tmux, las secuencias de escape se comen. Por lo tanto, el uso de la secuencia de escape de caracteres patentada \Ptmux
puede usarse así:
echo "\ePtmux;\e\e]9;foobar\007\e\\"
Esto desencadena un mensaje gruñido desde una sesión tmux.
Sin embargo, cuando uso esto en mi script de evento mcabber que se dispara cuando se recibe un nuevo mensaje, no se activa ninguna notificación, como si el eco se enviara a la terminal incorrecta.
Supongo que esto tiene que ver con ese mcabber que activa el script, es una aplicación ncurses, por lo que el resultado de mi script bash normal se pierde y iTerm 2 nunca lo ve.
También intenté llamar a smcup sin éxito antes de hacer eco de algunas ideas que descubrí
tput smcup
echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\"
tput rmcup
Supongo que esto no funciona ya que el problema no es volver a cambiar a la "ventana de terminal real", sino dirigir más la salida en la ventana ncurses.
¿Alguna idea sobre éste?