tmux अधिसूचित जब कोई मुझे Irssi पर लिखता है


6

मैं अपनी चैट प्रबंधित करने के लिए tmux के अंदर Irssi का सफलतापूर्वक उपयोग कर रहा हूं मैंने भी बहुत कोशिश की है tmux-powerline , जो वास्तव में पूर्ण विशेषताओं वाला लगता है।

अब, मुझे आश्चर्य हो रहा है कि क्या tmux बनाने की कोई विधि है, जब कोई मुझे tsux में Irssi विंडो में संदेश भेजता है, तो मुझे सूचित करें।


मुझे लगता है कि कोई इसे संशोधित कर सकता है irssi सूचनाएँ स्क्रिप्ट बनाने के लिए notify उप एक tmux अधिसूचना भेजें।
user49740

जवाबों:


1

मैंने एक irssi प्लगइन लिखा है जिसे कहा जाता है hilightnotify.pl

जब स्क्रिप्ट एक कॉन्फ़िगर करने योग्य कमांड चलाता है hilight स्थिति irssi के भीतर सेट / हटा दी गई है। मैं इसका उपयोग ब्लिंकिंग ट्रे आइकन को निष्पादित करने के लिए करता हूं जब मेरा नाम उल्लेख किया जाता है और आइकन को मारता है hilight स्थिति को हटा दिया गया है (जिसका अर्थ है कि मैंने संदेश नोट किया है), जैसा कि लिंक किए गए लेख और स्क्रिप्ट में वर्णित है, लेकिन कोई भी वही चला सकता है जो कोई चाहता है। यदि tmux फ़ंक्शन आप CLI ट्रिगर का समर्थन करने के बाद कर रहे हैं, तो यह संभवतः आपकी स्थिति के लिए मामूली रूप से अनुकूल है।


ज़रूर, मैंने इसे देखा है, और उपयोगी लगता है, मैं इसे बैश स्क्रिप्ट के साथ बाँधूँगा :)
fradeve

0

मैं ऐसी ही स्थिति में हूं, सिवाय इसके कि मैं irssi के बजाय mcabber का उपयोग करता हूं। चूँकि आप tmux-powerline का उपयोग करते हैं, आप ऐसा कुछ करने में सक्षम हो सकते हैं।

मैंने आने वाले संदेशों को ~ / tmp / mcabber.out पर लिखने के लिए mcabber को अनुकूलित किया और फिर मैंने ~ / etc / tmux-powerline / section / mcabber में एक mcabber खंड बनाया

#!/usr/bin/env bash

segment_path=$(dirname $0)
source "$segment_path/../lib.sh"

echo $(roll_stuff "$(cat ~/tmp/mcabber.out)" 100 1)

exit 0

बेशक मैंने अपने स्टेटस में एक एंट्री बनाई-लेफ्ट:

declare -A mcabber
mcabber+=(["script"]="${segments_path}/mcabber")
mcabber+=(["foreground"]="colour1")
mcabber+=(["background"]="colour0")
mcabber+=(["separator"]="${default}")
register_segment "mcabber"

मैं उस विंडो को नाम देता हूं जिसमें 'चैट' करने के लिए mcabber है। एक संदेश को पढ़ने के रूप में चिह्नित करने के लिए मैं $ (आउटपुट-विंडोज़) के आउटपुट को देखता हूं और देखता हूं कि क्या चैट विंडो ~ / बिन / mcabber_mark_read में सक्रिय है:

#!/usr/bin/env bash

sleep 5
# check to see that among the tmux windows, the active one is called 'chat'
tmux list-windows | grep chat | grep -q '(active)$'
if [[ $? -eq 0 ]]; then
    rm ~/tmp/mcabber.out
fi

मेरे .tmux.conf में मैं स्टेटस बार का उपयोग ~ ~ बिन / mcabber_mark_read के लिए करता हूँ जब भी हम इसे बदलते हैं:

set-window-option -g window-status-current-format '[#(~/bin/mcabber_mark_read)#I:#W#F]'

मैं पर्ल में प्रोग्राम नहीं करता हूं और न ही मैं irssi का उपयोग करता हूं, लेकिन कुछ मिनटों के साथ मैन पेजों को पढ़ने और googles का उपयोग करने के बाद, मेरे पास एक समाधान हो सकता है जो irssi के लिए काम करेगा; NB कि यह अप्रयुक्त है :

$ mkdir -p ~/.irssi/scripts/autorun
$ cp /usr/share/irssi/scripts/msg-event.pl ~/.irssi/scripts/autorun/msg-event.pl

और फिर मैंने इस तरह दिखने के लिए msg-evnt.pl को संपादित किया:

use Irssi;
use strict;
use vars qw($VERSION %IRSSI);

sub event_msg {
    my ($server, $data, $nick, $host) = @_;
    open(MYFILE, '>', '~/tmp/mcabber.out');
    print MYFILE $text;
    close(MYFILE)
}

#Irssi::signal_add('event privmsg', 'event_msg');
Irssi::signal_add('event pubmsg', 'event_msg');

मुझे यकीन नहीं है कि आप सभी या सिर्फ निजी संदेशों के बारे में सूचित करना चाहते हैं, इसलिए उचित रूप से चुना गया है।


यह बहुत उपयोगी लगता है, धन्यवाद। अब मैं सोच रहा हूं कि 1) IRSSI में एक आउटफिट में आने वाले संदेशों को कैसे लिखा जाए) आपका समाधान संदेशों को कैसे संभालता है: यह अभी भी नवीनतम संदेश दिखाता है, भले ही वह पढ़ा गया हो?
fradeve
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.