Saya saat ini menjalankan mcabber sebagai klien Jabber saya (yang menggunakan ncurses) dalam sesi tmux di server saya. Secara lokal saya menjalankan iTerm2 sebagai terminal emulator, yang mendukung pemicu notifikasi growl melalui urutan pelarian karakter.
Catatan: Semua echo
dalam pertanyaan ini berfungsi seperti printf %b
, atau echo -e
di bash dan GNU echo
.
mis. echo "\e]9;foobar\007"
membuat iTerm2 mengirim pesan Growl dengan teks "foobar".
Namun, ketika dalam sesi tmux, urutan melarikan diri dimakan. Oleh karena itu menggunakan urutan pelarian karakter eksklusif \Ptmux
dapat digunakan seperti ini:
echo "\ePtmux;\e\e]9;foobar\007\e\\"
Ini memicu pesan growl dari dalam sesi tmux.
Namun, ketika saya menggunakan ini dalam skrip acara mcabber saya yang dipecat ketika pesan baru diterima, tidak ada pemberitahuan yang dipicu, seolah-olah gema dikirim ke terminal yang salah.
Saya kira ini ada hubungannya dengan mcabber yang memicu skrip adalah aplikasi ncurses sehingga output dari skrip bash normal saya hilang dan iTerm 2 tidak pernah melihatnya.
Saya juga mencoba menelepon smcup tanpa hasil sebelum menggemakan beberapa ide yang saya temukan
tput smcup
echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\"
tput rmcup
Saya kira ini tidak berhasil karena masalahnya tidak beralih kembali ke "jendela terminal nyata", tetapi lebih mengarahkan output di jendela ncurses.
Ada ide tentang ini?