Revision: mange@freemail.hu--2004/emacs-jabber--cvs-head--0--patch-166
Creator: Magnus Henoch <mange@freemail.hu> Hack external notifiers echo and beep alerts are now defined through define-jabber-alert. New directory: external-notifiers. ratpoison and screen alerts moved there, and defined through define-jabber-alert. New alerts: sawfish and festival.
This commit is contained in:
parent
152389d29d
commit
31fe3b4a22
33
external-notifiers/jabber-festival.el
Normal file
33
external-notifiers/jabber-festival.el
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
;;; jabber-festival.el --- Festival alert hooks
|
||||||
|
|
||||||
|
;; Copyright (C) 2005 Magnus Henoch
|
||||||
|
|
||||||
|
;; This file is a part of jabber.el.
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
;; any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
(condition-case e
|
||||||
|
(progn
|
||||||
|
;; Most people don't have Festival, so this will often fail
|
||||||
|
(require 'festival)
|
||||||
|
(define-jabber-alert festival "Voice messages through Festival"
|
||||||
|
'festival-say-string))
|
||||||
|
(error nil))
|
||||||
|
|
||||||
|
(provide 'jabber-festival)
|
||||||
|
;; arch-tag: 8922D096-5D07-11D9-B4C2-000A95C2FCD0
|
||||||
|
|
||||||
|
|
30
external-notifiers/jabber-ratpoison.el
Normal file
30
external-notifiers/jabber-ratpoison.el
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
;; jabber-ratpoison.el - emacs-jabber interface to ratpoison
|
||||||
|
|
||||||
|
;; Copyright (C) 2005 - Magnus Henoch - mange@freemail.hu
|
||||||
|
|
||||||
|
;; This file is a part of jabber.el.
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; if not, write to the Free Software
|
||||||
|
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
(defun jabber-ratpoison-message (msg)
|
||||||
|
"Show MSG in Ratpoison"
|
||||||
|
(let ((process-connection-type))
|
||||||
|
(start-process "ratpoison" nil "ratpoison" "-c" (concat "echo " msg))))
|
||||||
|
|
||||||
|
(define-jabber-alert ratpoison "Show a message through the Ratpoison window manager"
|
||||||
|
'jabber-ratpoison-message)
|
||||||
|
|
||||||
|
(provide 'jabber-ratpoison)
|
||||||
|
;; arch-tag: 19650075-5D05-11D9-B80F-000A95C2FCD0
|
40
external-notifiers/jabber-sawfish.el
Normal file
40
external-notifiers/jabber-sawfish.el
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
;; jabber-sawfish.el - emacs-jabber interface to sawfish
|
||||||
|
|
||||||
|
;; Copyright (C) 2005 - Mario Domenech Goulart
|
||||||
|
|
||||||
|
;; This file is a part of jabber.el.
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; if not, write to the Free Software
|
||||||
|
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
(defcustom jabber-sawfish-display-time 3
|
||||||
|
"Time in seconds for displaying a jabber message through the
|
||||||
|
Sawfish window manager."
|
||||||
|
:type 'integer
|
||||||
|
:group 'jabber-alerts)
|
||||||
|
|
||||||
|
(defun jabber-sawfish-display-message (message)
|
||||||
|
"Displays MESSAGE through the Sawfish window manager."
|
||||||
|
(let ((process-connection-type nil))
|
||||||
|
(start-process-shell-command
|
||||||
|
"jabber-sawfish" nil "echo"
|
||||||
|
(concat "'((display-message \""
|
||||||
|
message
|
||||||
|
"\")(make-timer (lambda () (display-message nil)) 3))' | sawfish-client - &> /dev/null"))))
|
||||||
|
|
||||||
|
(define-jabber-alert sawfish "Display a message through the Sawfish window manager"
|
||||||
|
'jabber-sawfish-display-message)
|
||||||
|
|
||||||
|
(provide 'jabber-sawfish)
|
||||||
|
;; arch-tag: 4F0154ED-5D05-11D9-9E6B-000A95C2FCD0
|
29
external-notifiers/jabber-screen.el
Normal file
29
external-notifiers/jabber-screen.el
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
;; jabber-screen.el - emacs-jabber interface to screen
|
||||||
|
|
||||||
|
;; Copyright (C) 2005 - Magnus Henoch - mange@freemail.hu
|
||||||
|
|
||||||
|
;; This file is a part of jabber.el.
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; if not, write to the Free Software
|
||||||
|
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
(defun jabber-screen-message (msg)
|
||||||
|
"Show MSG in screen"
|
||||||
|
(call-process "screen" nil nil nil "-X" "echo" msg))
|
||||||
|
|
||||||
|
(define-jabber-alert screen "Show a message through the Screen terminal manager"
|
||||||
|
'jabber-screen-message)
|
||||||
|
|
||||||
|
(provide 'jabber-screen)
|
||||||
|
;; arch-tag: B576ADDA-5D04-11D9-AA52-000A95C2FCD0
|
115
jabber-alert.el
115
jabber-alert.el
|
@ -1,7 +1,7 @@
|
||||||
;; jabber-alert.el - alert hooks
|
;; jabber-alert.el - alert hooks
|
||||||
|
|
||||||
;; Copyright (C) 2002, 2003, 2004 - tom berger - object@intelectronica.net
|
;; Copyright (C) 2002, 2003, 2004 - tom berger - object@intelectronica.net
|
||||||
;; Copyright (C) 2003, 2004 - Magnus Henoch - mange@freemail.hu
|
;; Copyright (C) 2003, 2004, 2005 - Magnus Henoch - mange@freemail.hu
|
||||||
|
|
||||||
;; This file is a part of jabber.el.
|
;; This file is a part of jabber.el.
|
||||||
|
|
||||||
|
@ -38,7 +38,11 @@ hooks do not have to call it themselves.
|
||||||
This hook is meant for user customization of message alerts. For
|
This hook is meant for user customization of message alerts. For
|
||||||
other uses, see `jabber-message-hooks'."
|
other uses, see `jabber-message-hooks'."
|
||||||
:type 'hook
|
:type 'hook
|
||||||
:options '(jabber-message-beep jabber-message-wave jabber-message-echo jabber-message-switch jabber-message-display jabber-message-ratpoison jabber-message-screen)
|
:options '(jabber-message-beep
|
||||||
|
jabber-message-wave
|
||||||
|
jabber-message-echo
|
||||||
|
jabber-message-switch
|
||||||
|
jabber-message-display)
|
||||||
:group 'jabber-alerts)
|
:group 'jabber-alerts)
|
||||||
|
|
||||||
(defvar jabber-message-hooks '(jabber-message-history)
|
(defvar jabber-message-hooks '(jabber-message-history)
|
||||||
|
@ -75,9 +79,7 @@ so that hooks do not have to call it themselves."
|
||||||
jabber-muc-wave
|
jabber-muc-wave
|
||||||
jabber-muc-echo
|
jabber-muc-echo
|
||||||
jabber-muc-switch
|
jabber-muc-switch
|
||||||
jabber-muc-display
|
jabber-muc-display)
|
||||||
jabber-muc-ratpoison
|
|
||||||
jabber-muc-screen)
|
|
||||||
:group 'jabber-alerts)
|
:group 'jabber-alerts)
|
||||||
|
|
||||||
(defvar jabber-muc-hooks '()
|
(defvar jabber-muc-hooks '()
|
||||||
|
@ -119,8 +121,6 @@ one of \"subscribe\", \"unsubscribe\", \"subscribed\" and
|
||||||
jabber-presence-update-roster
|
jabber-presence-update-roster
|
||||||
jabber-presence-switch
|
jabber-presence-switch
|
||||||
jabber-presence-display
|
jabber-presence-display
|
||||||
jabber-presence-ratpoison
|
|
||||||
jabber-presence-screen
|
|
||||||
jabber-presence-echo)
|
jabber-presence-echo)
|
||||||
:group 'jabber-alerts)
|
:group 'jabber-alerts)
|
||||||
|
|
||||||
|
@ -155,8 +155,6 @@ Third argument is PROPOSED-ALERT, containing the string returned by
|
||||||
:type 'hook
|
:type 'hook
|
||||||
:options '(jabber-info-beep
|
:options '(jabber-info-beep
|
||||||
jabber-info-wave
|
jabber-info-wave
|
||||||
jabber-info-ratpoison
|
|
||||||
jabber-info-screen
|
|
||||||
jabber-info-echo
|
jabber-info-echo
|
||||||
jabber-info-switch
|
jabber-info-switch
|
||||||
jabber-info-display)
|
jabber-info-display)
|
||||||
|
@ -207,6 +205,10 @@ and BUFFER, a buffer containing the result."
|
||||||
|
|
||||||
(defmacro define-jabber-alert (name docstring function)
|
(defmacro define-jabber-alert (name docstring function)
|
||||||
"Define a new family of external alert hooks.
|
"Define a new family of external alert hooks.
|
||||||
|
Use this macro when your hooks do nothing except displaying a string
|
||||||
|
in some new innovative way. You write a string display function, and
|
||||||
|
this macro does all the boring and repetitive work.
|
||||||
|
|
||||||
NAME is the name of the alert family. The resulting hooks will be
|
NAME is the name of the alert family. The resulting hooks will be
|
||||||
called jabber-{message,muc,presence,info}-NAME.
|
called jabber-{message,muc,presence,info}-NAME.
|
||||||
DOCSTRING is the docstring to use for those hooks.
|
DOCSTRING is the docstring to use for those hooks.
|
||||||
|
@ -247,6 +249,15 @@ Examples:
|
||||||
(pushnew (quote ,info) (get 'jabber-alert-info-message-hooks 'custom-options))))))
|
(pushnew (quote ,info) (get 'jabber-alert-info-message-hooks 'custom-options))))))
|
||||||
|
|
||||||
;; Alert hooks
|
;; Alert hooks
|
||||||
|
(define-jabber-alert echo "Show a message in the echo area"
|
||||||
|
(lambda (msg) (message "%s" msg)))
|
||||||
|
(define-jabber-alert beep "Beep on event"
|
||||||
|
(lambda (&rest ignore) (beep)))
|
||||||
|
|
||||||
|
(require 'jabber-screen)
|
||||||
|
(require 'jabber-ratpoison)
|
||||||
|
(require 'jabber-sawfish)
|
||||||
|
(require 'jabber-festival)
|
||||||
|
|
||||||
;; Message alert hooks
|
;; Message alert hooks
|
||||||
(defun jabber-message-default-message (from buffer text)
|
(defun jabber-message-default-message (from buffer text)
|
||||||
|
@ -259,16 +270,6 @@ Examples:
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'jabber-alerts)
|
:group 'jabber-alerts)
|
||||||
|
|
||||||
(defun jabber-message-beep (from buffer text proposed-alert)
|
|
||||||
"Beep when a message arrives"
|
|
||||||
(when proposed-alert
|
|
||||||
(beep)))
|
|
||||||
|
|
||||||
(defun jabber-message-echo (from buffer text proposed-alert)
|
|
||||||
"Show a message in the echo area when a message arrives"
|
|
||||||
(if proposed-alert
|
|
||||||
(message "%s" proposed-alert)))
|
|
||||||
|
|
||||||
(defun jabber-message-wave (from buffer text proposed-alert)
|
(defun jabber-message-wave (from buffer text proposed-alert)
|
||||||
"Play the wave file specified in `jabber-alert-message-wave'"
|
"Play the wave file specified in `jabber-alert-message-wave'"
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
|
@ -284,17 +285,6 @@ Examples:
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
(switch-to-buffer buffer)))
|
(switch-to-buffer buffer)))
|
||||||
|
|
||||||
(defun jabber-message-ratpoison (from buffer text proposed-alert)
|
|
||||||
"Show a message through the Ratpoison window manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(let ((process-connection-type nil))
|
|
||||||
(start-process "ratpoison" nil "ratpoison" "-c" (format "echo %s" proposed-alert)))))
|
|
||||||
|
|
||||||
(defun jabber-message-screen (from buffer text proposed-alert)
|
|
||||||
"Show a message through the Screen terminal manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(call-process "screen" nil nil nil "-X" "echo" proposed-alert)))
|
|
||||||
|
|
||||||
;; MUC alert hooks
|
;; MUC alert hooks
|
||||||
(defun jabber-muc-default-message (nick group buffer text)
|
(defun jabber-muc-default-message (nick group buffer text)
|
||||||
(when (or jabber-message-alert-same-buffer
|
(when (or jabber-message-alert-same-buffer
|
||||||
|
@ -304,16 +294,6 @@ Examples:
|
||||||
group))
|
group))
|
||||||
(format "Message in %s" (jabber-jid-displayname group)))))
|
(format "Message in %s" (jabber-jid-displayname group)))))
|
||||||
|
|
||||||
(defun jabber-muc-beep (nick group buffer text proposed-alert)
|
|
||||||
"Beep when a MUC message arrives"
|
|
||||||
(when proposed-alert
|
|
||||||
(beep)))
|
|
||||||
|
|
||||||
(defun jabber-muc-echo (nick group buffer text proposed-alert)
|
|
||||||
"Show a message in the echo area when a MUC message arrives"
|
|
||||||
(if proposed-alert
|
|
||||||
(message "%s" proposed-alert)))
|
|
||||||
|
|
||||||
(defun jabber-muc-wave (nick group buffer text proposed-alert)
|
(defun jabber-muc-wave (nick group buffer text proposed-alert)
|
||||||
"Play the wave file specified in `jabber-alert-muc-wave'"
|
"Play the wave file specified in `jabber-alert-muc-wave'"
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
|
@ -329,17 +309,6 @@ Examples:
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
(switch-to-buffer buffer)))
|
(switch-to-buffer buffer)))
|
||||||
|
|
||||||
(defun jabber-muc-ratpoison (nick group buffer text proposed-alert)
|
|
||||||
"Show a message through the Ratpoison window manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(let ((process-connection-type nil))
|
|
||||||
(start-process "ratpoison" nil "ratpoison" "-c" (format "echo %s" proposed-alert)))))
|
|
||||||
|
|
||||||
(defun jabber-muc-screen (nick group buffer text proposed-alert)
|
|
||||||
"Show a message through the Screen terminal manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(call-process "screen" nil nil nil "-X" "echo" proposed-alert)))
|
|
||||||
|
|
||||||
;; Presence alert hooks
|
;; Presence alert hooks
|
||||||
(defun jabber-presence-default-message (who oldstatus newstatus statustext)
|
(defun jabber-presence-default-message (who oldstatus newstatus statustext)
|
||||||
"This function returns nil if OLDSTATUS and NEWSTATUS are equal, and in other
|
"This function returns nil if OLDSTATUS and NEWSTATUS are equal, and in other
|
||||||
|
@ -372,16 +341,6 @@ This function is not called directly, but is the default for
|
||||||
"")))
|
"")))
|
||||||
(concat formattedname formattedstatus formattedtext)))))
|
(concat formattedname formattedstatus formattedtext)))))
|
||||||
|
|
||||||
(defun jabber-presence-beep (who oldstatus newstatus statustext proposed-alert)
|
|
||||||
"Beep when someone's presence changes"
|
|
||||||
(if proposed-alert
|
|
||||||
(beep)))
|
|
||||||
|
|
||||||
(defun jabber-presence-echo (who oldstatus newstatus statustext proposed-alert)
|
|
||||||
"Show a message in the echo area"
|
|
||||||
(if proposed-alert
|
|
||||||
(message "%s" proposed-alert)))
|
|
||||||
|
|
||||||
(defun jabber-presence-wave (who oldstatus newstatus statustext proposed-alert)
|
(defun jabber-presence-wave (who oldstatus newstatus statustext proposed-alert)
|
||||||
"Play the wave file specified in `jabber-alert-presence-wave'"
|
"Play the wave file specified in `jabber-alert-presence-wave'"
|
||||||
(if proposed-alert
|
(if proposed-alert
|
||||||
|
@ -401,19 +360,6 @@ This function is not called directly, but is the default for
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
(switch-to-buffer (process-buffer *jabber-connection*))))
|
(switch-to-buffer (process-buffer *jabber-connection*))))
|
||||||
|
|
||||||
(defun jabber-presence-ratpoison (who oldstatus newstatus statustext proposed-alert)
|
|
||||||
"Show a message through the Ratpoison window manager"
|
|
||||||
|
|
||||||
(if proposed-alert
|
|
||||||
(let ((process-connection-type))
|
|
||||||
(start-process "ratpoison" nil "ratpoison" "-c" (concat "echo " proposed-alert)))))
|
|
||||||
|
|
||||||
(defun jabber-presence-screen (who oldstatus newstatus statustext proposed-alert)
|
|
||||||
"Show a message through the Screen terminal manager"
|
|
||||||
|
|
||||||
(if proposed-alert
|
|
||||||
(call-process "screen" nil nil nil "-X" "echo" proposed-alert)))
|
|
||||||
|
|
||||||
;;; Info alert hooks
|
;;; Info alert hooks
|
||||||
|
|
||||||
(defun jabber-info-default-message (infotype buffer)
|
(defun jabber-info-default-message (infotype buffer)
|
||||||
|
@ -424,32 +370,11 @@ This function uses `jabber-info-message-alist' to find a message."
|
||||||
(concat (cdr (assq infotype jabber-info-message-alist))
|
(concat (cdr (assq infotype jabber-info-message-alist))
|
||||||
" (buffer "(buffer-name buffer) ")"))
|
" (buffer "(buffer-name buffer) ")"))
|
||||||
|
|
||||||
(defun jabber-info-echo (infotype buffer proposed-alert)
|
|
||||||
"Show a message in the echo area"
|
|
||||||
(if proposed-alert
|
|
||||||
(message "%s" proposed-alert)))
|
|
||||||
|
|
||||||
(defun jabber-info-beep (infotype buffer proposed-alert)
|
|
||||||
"Beep on completed info requests"
|
|
||||||
(if proposed-alert
|
|
||||||
(beep)))
|
|
||||||
|
|
||||||
(defun jabber-info-wave (infotype buffer proposed-alert)
|
(defun jabber-info-wave (infotype buffer proposed-alert)
|
||||||
"Play the wave file specified in `jabber-alert-info-wave'"
|
"Play the wave file specified in `jabber-alert-info-wave'"
|
||||||
(if proposed-alert
|
(if proposed-alert
|
||||||
(jabber-play-sound-file jabber-alert-info-wave)))
|
(jabber-play-sound-file jabber-alert-info-wave)))
|
||||||
|
|
||||||
(defun jabber-info-ratpoison (infotype buffer proposed-alert)
|
|
||||||
"Show a message through the Ratpoison window manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(let ((process-connection-type nil))
|
|
||||||
(start-process "ratpoison" nil "ratpoison" "-c" (concat "echo " proposed-alert)))))
|
|
||||||
|
|
||||||
(defun jabber-info-screen (infotype buffer proposed-alert)
|
|
||||||
"Show a message through the Screen terminal manager"
|
|
||||||
(if proposed-alert
|
|
||||||
(call-process "screen" nil nil nil "-X" "echo" proposed-alert)))
|
|
||||||
|
|
||||||
(defun jabber-info-display (infotype buffer proposed-alert)
|
(defun jabber-info-display (infotype buffer proposed-alert)
|
||||||
"Display buffer of completed request"
|
"Display buffer of completed request"
|
||||||
(when proposed-alert
|
(when proposed-alert
|
||||||
|
|
32
jabber.texi
32
jabber.texi
|
@ -726,6 +726,7 @@ Format, elisp, GNU Emacs Lisp Reference Manual}.
|
||||||
@section Customizing alerts
|
@section Customizing alerts
|
||||||
|
|
||||||
@cindex Alert hooks
|
@cindex Alert hooks
|
||||||
|
@findex define-jabber-alert
|
||||||
|
|
||||||
When an event happens (currently including presence changes, incoming
|
When an event happens (currently including presence changes, incoming
|
||||||
messages, and completed queries) you will usually want to be
|
messages, and completed queries) you will usually want to be
|
||||||
|
@ -741,14 +742,25 @@ certain mechanism. This text message is provided by a function which
|
||||||
you can rewrite or replace. If this function returns @code{nil}, no
|
you can rewrite or replace. If this function returns @code{nil}, no
|
||||||
message is displayed, and non-textual alerts refrain from action.
|
message is displayed, and non-textual alerts refrain from action.
|
||||||
|
|
||||||
|
If you want to write alert hooks that do nothing except displaying the
|
||||||
|
supplied message in some way, use the macro
|
||||||
|
@code{define-jabber-alert}. For example, if @var{foo} is a function
|
||||||
|
that takes a string as an argument, write
|
||||||
|
@example
|
||||||
|
(define-jabber-alert foo
|
||||||
|
"Display a message in a fooish way"
|
||||||
|
'foo)
|
||||||
|
@end example
|
||||||
|
and all details will be taken care of for you.
|
||||||
|
|
||||||
The hooks take different arguments depending on category. However,
|
The hooks take different arguments depending on category. However,
|
||||||
they all have in common that the last argument is the result of the
|
they all have in common that the last argument is the result of the
|
||||||
message function. The message function for each category takes the
|
message function. The message function for each category takes the
|
||||||
same arguments as the corresponding hooks, except for that last
|
same arguments as the corresponding hooks, except for that last
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
Alert hook contributions are very welcome. Either submit them to the
|
Alert hook contributions are very welcome. You can send them to the
|
||||||
Sourceforge patch tracker, or contact us directly.
|
mailing list, or to the Sourceforge patch tracker.
|
||||||
|
|
||||||
Alert hooks are meant for optional UI things, that are subject to
|
Alert hooks are meant for optional UI things, that are subject to
|
||||||
varying user tastes, and that can be toggled by simply adding or
|
varying user tastes, and that can be toggled by simply adding or
|
||||||
|
@ -768,7 +780,7 @@ the alert hooks minus the @code{-alert} part.
|
||||||
@node Standard alerts, Presence alerts, Customizing alerts, Customizing alerts
|
@node Standard alerts, Presence alerts, Customizing alerts, Customizing alerts
|
||||||
@subsection Standard alerts
|
@subsection Standard alerts
|
||||||
|
|
||||||
Six alerts are already written for all three alert categories. These
|
Eight alerts are already written for all three alert categories. These
|
||||||
all obey the result from the corresponding message function.
|
all obey the result from the corresponding message function.
|
||||||
|
|
||||||
The @code{beep} alerts simply sound the terminal bell by calling
|
The @code{beep} alerts simply sound the terminal bell by calling
|
||||||
|
@ -802,11 +814,17 @@ The @code{ratpoison} alerts send a message through the Ratpoison
|
||||||
window manager (see @uref{http://ratpoison.sourceforge.net/}). They
|
window manager (see @uref{http://ratpoison.sourceforge.net/}). They
|
||||||
do no harm if used when you're not running X, but if you are running X
|
do no harm if used when you're not running X, but if you are running X
|
||||||
with another window manager, the ratpoison processes will never exit.
|
with another window manager, the ratpoison processes will never exit.
|
||||||
You can look at them with @code{list-processes}.@footnote{In jabber.el
|
You can look at them with @code{list-processes}.
|
||||||
0.4, ratpoison alerts were sent synchronously, which meant that Emacs
|
|
||||||
would stall if ratpoison wasn't there to answer.}
|
|
||||||
|
|
||||||
All these functions are in the @file{jabber-alert.el} file. You can
|
The @code{sawfish} alerts send a message through the Sawfish window
|
||||||
|
manager.
|
||||||
|
|
||||||
|
The @code{festival} alerts speak the message using the Emacs interface
|
||||||
|
of the Festival speech synthesis system (see
|
||||||
|
@uref{http://www.cstr.ed.ac.uk/projects/festival/}).
|
||||||
|
|
||||||
|
Some of these functions are in the @file{jabber-alert.el} file, and
|
||||||
|
the others are in the directory @file{external-notifiers}. You can
|
||||||
use them as templates or inspiration for your own alerts.
|
use them as templates or inspiration for your own alerts.
|
||||||
|
|
||||||
@node Presence alerts, Message alerts, Standard alerts, Customizing alerts
|
@node Presence alerts, Message alerts, Standard alerts, Customizing alerts
|
||||||
|
|
2
subdirs.el
Normal file
2
subdirs.el
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
(normal-top-level-add-to-load-path '("external-notifiers"))
|
||||||
|
;; arch-tag: CF9A5416-5D05-11D9-8B58-000A95C2FCD0
|
Loading…
Reference in New Issue
Block a user