From b470c7875f79563ffc0c05f68c917866c2ca4d54 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Mon, 27 Jun 2011 22:01:57 +0200 Subject: Beep() on highlight/message/private-messages (configurable) --- data/default_config.cfg | 10 ++++++++++ src/core.py | 6 ++++++ src/room.py | 5 +++++ 3 files changed, 21 insertions(+) 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): -- cgit v1.2.3