summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2011-06-27 22:01:57 +0200
committerFlorent Le Coz <louiz@louiz.org>2011-06-27 22:01:57 +0200
commitb470c7875f79563ffc0c05f68c917866c2ca4d54 (patch)
tree02e23ba64d0ea1c5795d119e5074911192184ee2
parentd0231331fa3796c286621f76132698b9f664a373 (diff)
downloadpoezio-b470c7875f79563ffc0c05f68c917866c2ca4d54.tar.gz
poezio-b470c7875f79563ffc0c05f68c917866c2ca4d54.tar.bz2
poezio-b470c7875f79563ffc0c05f68c917866c2ca4d54.tar.xz
poezio-b470c7875f79563ffc0c05f68c917866c2ca4d54.zip
Beep() on highlight/message/private-messages (configurable)
-rw-r--r--data/default_config.cfg10
-rw-r--r--src/core.py6
-rw-r--r--src/room.py5
3 files changed, 21 insertions, 0 deletions
diff --git a/data/default_config.cfg b/data/default_config.cfg
index c376a73c..80ce9f35 100644
--- a/data/default_config.cfg
+++ b/data/default_config.cfg
@@ -136,6 +136,16 @@ log_dir =
# with no activity, set to true. Else, set to false
show_inactive_tabs = true
+# The terminal can beep on various event. Put the event you want in a list
+# (separated by spaces).
+# The events can be
+# - highlight (when you are highlighted in a MUC)
+# - private (when a new private message is received, from your contacts or
+# someone from a MUC)
+# - message (any message from a MUC)
+beep_on = highlight private
+
+
# Theme
# If themes_dir is not set, logs will searched for in $XDG_DATA_HOME/poezio/themes,
diff --git a/src/core.py b/src/core.py
index f3c406ad..c4c0edaa 100644
--- a/src/core.py
+++ b/src/core.py
@@ -516,6 +516,8 @@ class Core(object):
conversation.remote_wants_chatstates = True
else:
conversation.remote_wants_chatstates = False
+ if 'private' in config.get('beep_on', 'highlight private').split():
+ curses.beep()
logger.log_message(jid.full.replace('/', '\\'), nick_from, body)
if conversation is self.current_tab():
self.refresh_window()
@@ -568,6 +570,8 @@ class Core(object):
else:
conversation.remote_wants_chatstates = False
logger.log_message(jid.bare, remote_nick, body)
+ if 'private' in config.get('beep_on', 'highlight private').split():
+ curses.beep()
if self.current_tab() is not conversation:
conversation.set_color_state(theme.COLOR_TAB_PRIVATE)
self.refresh_tab_win()
@@ -986,6 +990,8 @@ class Core(object):
if tab is self.current_tab():
tab.text_win.refresh(tab._room)
self.refresh_tab_win()
+ if 'message' in config.get('beep_on', 'highlight private').split():
+ curses.beep()
def add_message_to_text_buffer(self, room, txt, time=None, nickname=None, history=None):
"""
diff --git a/src/room.py b/src/room.py
index a112fc7b..5d4c4ce6 100644
--- a/src/room.py
+++ b/src/room.py
@@ -24,6 +24,7 @@ import common
import theme
import logging
+import curses
log = logging.getLogger(__name__)
@@ -77,6 +78,10 @@ class Room(TextBuffer):
self.set_color_state(theme.COLOR_TAB_HIGHLIGHT)
color = theme.COLOR_HIGHLIGHT_NICK
break
+ if color:
+ beep_on = config.get('beep_on', 'highlight private').split()
+ if 'highlight' in beep_on and 'message' not in beep_on:
+ curses.beep()
return color
def get_user_by_name(self, nick):