;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302\303\304#\210\300\305\303\304#\210\300\306\303\304#\210\307\310\303\311\312\313%\210\314\315\316\317\320DD\321\322\323\312\310&\210\314\324\316\317\325DD\326\322\327\312\310&\210\314\330\316\317\331DD\332\322\333\312\310&\210\314\334\316\317\335DD\336\322\337\312\310&\210\314\340\316\317\341DD\342\322\343\312\310&\210\314\344\316\317\345DD\346\322\343\312\310&\210\314\347\316\317\350DD\351\322\343\312\310&\210\314\352\316\317\353DD\354\322\355\312\310&\210\314\356\316\317\357DD\360\322\355\312\310&\210\314\361\316\317\362DD\363\322\364\312\310&\207" [require cl-lib gntp nil t notifications log4e custom-declare-group alert "Notification system for Emacs similar to Growl" :group emacs custom-declare-variable alert-severity-faces funcall function #[0 "\300\207" [((urgent . alert-urgent-face) (high . alert-high-face) (moderate . alert-moderate-face) (normal . alert-normal-face) (low . alert-low-face) (trivial . alert-trivial-face))] 1] "Faces associated by default with alert severities." :type (alist :key-type symbol :value-type color) alert-severity-colors #[0 "\300\207" [((urgent . "red") (high . "orange") (moderate . "yellow") (normal . "green") (low . "blue") (trivial . "purple"))] 1] "Colors associated by default with alert severities.\nThis is used by styles external to Emacs that don't understand faces." (alist :key-type symbol :value-type color) alert-log-severity-functions #[0 "\300\207" [((urgent . alert--log-fatal) (high . alert--log-error) (moderate . alert--log-warn) (normal . alert--log-info) (low . alert--log-debug) (trivial . alert--log-trace))] 1] "Log4e logging functions." (alist :key-type symbol :value-type color) alert-log-level #[0 "\300\207" [normal] 1] "Minimum level of messages to log." symbol alert-reveal-idle-time #[0 "\300\207" [15] 1] "If idle this many seconds, rules will match the `idle' property." integer alert-persist-idle-time #[0 "\300\207" [900] 1] "If idle this many seconds, all alerts become persistent.\nThis can be overriden with the Never Persist option (:never-persist)." alert-fade-time #[0 "\300\207" [5] 1] "If not idle, alerts disappear after this many seconds.\nThe amount of idle time is governed by `alert-persist-idle-time'." alert-hide-all-notifications #[0 "\300\207" [nil] 1] "If non-nil, no alerts are ever shown to the user." boolean alert-log-messages #[0 "\300\207" [t] 1] "If non-nil, all alerts are logged to the *Alerts* buffer." alert-default-icon #[0 "\301P\207" [data-directory "images/icons/hicolor/scalable/apps/emacs.svg"] 2] "Filename of default icon to show for libnotify-alerts." string] 8) (defvar alert-styles nil) #@20 (fn WIDGET-NAME) (defalias 'alert-styles-radio-type #[257 "\301\302\303E\304\305\306\307\"\211\"\"\207" [alert-styles append :tag "Style" mapcar #[257 "\300\301\302A\303\"\206\304@!@F\207" [const :tag plist-get :title symbol-name] 6 "\n\n(fn STYLE)"] sort #[514 "\300@!\300@!\231\207" [symbol-name] 5 "\n\n(fn L R)"]] 8 (#$ . 2745)]) (byte-code "\300\301\302\303\304DD\305\306\307\310!\311\312&\207" [custom-declare-variable alert-default-style funcall function #[0 "\300\207" [message] 1] "The style to use if no rules match in the current configuration.\nIf a configured rule does match an alert, this style is not used;\nit is strictly a fallback." :type alert-styles-radio-type radio :group alert] 8) (defalias 'alert-configuration-type #[0 "\300\301\302\303\304\305\306!\307\257D\207" [repeat list :tag "Select style if alert matches selector" (repeat :tag "Selector" (choice (cons :tag "Severity" (const :format #1="" :severity) (set (const :tag "Urgent" urgent) (const :tag "High" high) (const :tag "Moderate" moderate) (const :tag "Normal" normal) (const :tag "Low" low) (const :tag "Trivial" trivial))) (cons :tag "User Status" (const :format #1# :status) (set (const :tag "Buffer not visible" buried) (const :tag "Buffer visible" visible) (const :tag "Buffer selected" selected) (const :tag "Buffer selected, user idle" idle))) (cons :tag "Major Mode" (const :format #1# :mode) regexp) (cons :tag "Category" (const :format #1# :category) regexp) (cons :tag "Title" (const :format #1# :title) regexp) (cons :tag "Message" (const :format #1# :message) regexp) (cons :tag "Predicate" (const :format #1# :predicate) function) (cons :tag "Icon" (const :format #1# :icon) regexp))) alert-styles-radio-type choice (set :tag "Options" (cons :tag "Make alert persistent" (const :format #1# :persistent) (choice :value t (const :tag "Yes" t) (function :tag "Predicate"))) (cons :tag "Never persist" (const :format #1# :never-persist) (choice :value t (const :tag "Yes" t) (function :tag "Predicate"))) (cons :tag "Continue to next rule" (const :format #1# :continue) (choice :value t (const :tag "Yes" t) (function :tag "Predicate"))))] 7]) (byte-code "\300\301\302\303\304DD\305\306\307 \310\311&\207" [custom-declare-variable alert-user-configuration funcall function #[0 "\300\207" [nil] 1] "Rules that determine how and when alerts get displayed." :type alert-configuration-type :group alert] 8) #@90 Rules added by `alert-add-rule'. For user customization, see `alert-user-configuration'. (defvar alert-internal-configuration nil (#$ . 5166)) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\305%\210\300\314\315\316\304\305%\210\300\317\320\321\304\305%\210\300\322\323\324\304\305%\207" [custom-declare-face alert-urgent-face ((t (:foreground "Red" :bold t))) "Urgent alert face." :group alert alert-high-face ((t (:foreground "Dark Orange" :bold t))) "High alert face." alert-moderate-face ((t (:foreground "Gold" :bold t))) "Moderate alert face." alert-normal-face ((t)) "Normal alert face." alert-low-face ((t (:foreground "Dark Blue"))) "Low alert face." alert-trivial-face ((t (:foreground "Dark Purple"))) "Trivial alert face."] 6) #@1928 Define a new style for notifying the user of alert messages. To create a new style, you need to at least write a "notifier", which is a function that receives the details of the alert. These details are given in a plist which uses various keyword to identify the parts of the alert. Here is a prototypical style definition: (alert-define-style 'style-name :title "My Style's title" :notifier (lambda (info) ;; The message text is :message (plist-get info :message) ;; The :title of the alert (plist-get info :title) ;; The :category of the alert (plist-get info :category) ;; The major-mode this alert relates to (plist-get info :mode) ;; The buffer the alert relates to (plist-get info :buffer) ;; Severity of the alert. It is one of: ;; `urgent' ;; `high' ;; `moderate' ;; `normal' ;; `low' ;; `trivial' (plist-get info :severity) ;; Whether this alert should persist, or fade away (plist-get info :persistent) ;; Data which was passed to `alert'. Can be ;; anything. (plist-get info :data)) ;; Removers are optional. Their job is to remove ;; the visual or auditory effect of the alert. :remover (lambda (info) ;; It is the same property list that was passed to ;; the notifier function. )) (fn NAME &rest PLIST) (defalias 'alert-define-style #[385 "B\211\235\204 \211B\210\301\302\303\304 #\210\301\305\303\306\307!#\207" [alert-styles put alert-user-configuration custom-type alert-configuration-type alert-define-style alert-styles-radio-type radio] 7 (#$ . 5956)]) (alert-define-style 'ignore :title "Ignore Alert" :notifier 'ignore :remover 'ignore) #@1299 Programmatically add an alert configuration rule. Normally, users should custoimze `alert-user-configuration'. This facility is for module writers and users that need to do things the Lisp way. Here is a rule the author currently uses with ERC, so that the fringe gets colored whenever people chat on BitlBee: (alert-add-rule :status \='(buried visible idle) :severity \='(moderate high urgent) :mode \='erc-mode :predicate #\='(lambda (info) (string-match (concat "\\`[^&].*@BitlBee\\\='") (erc-format-target-and/or-network))) :persistent #\='(lambda (info) ;; If the buffer is buried, or the user has been ;; idle for `alert-reveal-idle-time' seconds, ;; make this alert persistent. Normally, alerts ;; become persistent after ;; `alert-persist-idle-time' seconds. (memq (plist-get info :status) \='(buried idle))) :style \='fringe :continue t) (fn &key SEVERITY STATUS MODE CATEGORY TITLE MESSAGE PREDICATE ICON (STYLE alert-default-style) PERSISTENT CONTINUE NEVER-PERSIST APPEND) (defalias 'alert-add-rule #[128 "\302\303\"A@\302\304\"A@\302\305\"A@\302\306\"A@\302\307\"A@\302\310\"A@\302\311\"A@\302\312\"A@\302 \313\"\206>\314DA@\302\n\315\"A@\302 \316\"A@\302\f\317\"A@\302 \320\"A@ \211\203\211\211@\321>\203q\211AA\262\202^\322>A@\203\200\314\262\202^\323\324@\"\210\202^\210\325C\325CE \203\252\211@\303<\203\243\202\246CBC\244\210\f\203\304\211@\304<\203\275\202\300CBC\244\210 \203\342\211@\305 ;\203\327 \202\336\326\327!\330QBC\244\210\n\203\360\211@\306\fBC\244\210 \203\376\211@\307 BC\244\210\203\f\211@\310\nBC\244\210\203\211@\311 BC\244\210\203(\211@\312BC\244\210\211@A\240\210\203<\3318\315BC\244\210\203I\3318\317BC\244\210\203V\3318\316BC\244\210\211A\3318AC\241\210 \204g\211C\207\203q C\244\210\207\211 B\207" [alert-default-style alert-internal-configuration plist-member :severity :status :mode :category :title :message :predicate :icon :style nil :persistent :continue :never-persist :append (:severity :status :mode :category :title :message :predicate :icon :style :persistent :continue :never-persist :append :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:severity :status :mode :category :title :message :predicate :icon :style :persistent :continue :never-persist :append)" t "\\`" symbol-name "\\'" 2] 20 (#$ . 8239)]) (alert-define-style 'ignore :title "Don't display alerts") #@13 (fn INFO) (defalias 'alert-log-notify #[257 "\302\303\"\302\304\"G\305\"A\306\307!\204\310#\207\311!\204\311\312!\203\313\314\315\316\"!\210\317\320!\210\321\322!\210\323\324!\210\325\326!\210\327\330!\210\331\330!\210\332\330!\210\333\330!\210\334\330!\210\335\336\337\"\210\335\340\341\"\210\335\342\343\"\210\335\344\345\"\210\335\346\347\"\210\335\350\351\"\210\335\352\353\"\210\335\354\355\"\210\335\356\357\"\210\335\360\361\"\210\335\362\363\"\210\335\364\365\"\210\335\366\367\"\210\335\370\371\372B\"\210\335\373\374\"\210\335\375\371\376B\"\210\335\377\201@\"\210\335\201A\371\201BB\"\210\335\201C\201D\"\210\335\201E\371\201FB\"\210\335\201G\201H\"\210\335\201I\371\201JB\"\210\335\201K\201L\"\210\335\201M\371\201NB\"\210\335\201O\201P\"\210\335\201Q\371\201RB\"\210\201S\336!\203\336 !\210\340 \210\311!\205$\201TC\"\207" [alert-log-severity-functions alert-log-level plist-get :message :severity assoc featurep log4e alert-legacy-log-notify fboundp log4e:deflogger (lambda (def-tmp-var) (defvar log4e--log-buffer-alert def-tmp-var)) format " *log4e-%s*" #1="alert" (lambda (def-tmp-var) (defvar log4e--log-template-alert def-tmp-var)) "%t [%l] %m" (lambda (def-tmp-var) (defvar log4e--time-template-alert def-tmp-var)) "%H:%M:%S" (lambda (def-tmp-var) (defvar log4e--min-level-alert def-tmp-var)) info (lambda (def-tmp-var) (defvar log4e--max-level-alert def-tmp-var)) fatal (lambda (def-tmp-var) (defvar log4e--toggle-logging-alert def-tmp-var)) nil (lambda (def-tmp-var) (defvar log4e--msg-buffer-alert def-tmp-var)) (lambda (def-tmp-var) (defvar log4e--toggle-debugging-alert def-tmp-var)) (lambda (def-tmp-var) (defvar log4e--buffer-coding-system-alert def-tmp-var)) (lambda (def-tmp-var) (defvar log4e--author-mail-address-alert def-tmp-var)) defalias alert--log-set-level #[513 "\211\211\207" [log4e--min-level-alert log4e--max-level-alert] 4 "Set range for doing logging.\n\nMINLEVEL is symbol of lowest level for doing logging. its default is 'info.\nMAXLEVEL is symbol of highest level for doing logging. its default is 'fatal.\n\n(fn MINLEVEL &optional MAXLEVEL)"] alert--log-enable-logging #[0 "\301\211\207" [log4e--toggle-logging-alert t] 2 "Enable logging by logging functions." nil] alert--log-disable-logging #[0 "\301\211\207" [log4e--toggle-logging-alert nil] 2 "Disable logging by logging functions." nil] alert--log-enable-messaging #[256 "\211\206\301\211\207" [log4e--msg-buffer-alert t] 3 "Enable dump the log into other buffer by logging functions.\n\nBUFFER is a buffer dumped log into. nil means *Messages* buffer.\n\n(fn &optional BUFFER)" nil] alert--log-disable-messaging #[0 "\301\211\207" [log4e--msg-buffer-alert nil] 2 "Disable dump the log into other buffer by logging functions." nil] alert--log-enable-debugging #[0 "\302\211\211\207" [log4e--toggle-logging-alert log4e--toggle-debugging-alert t] 3 "Enable debugging and logging.\n\n`PREFIX--log-debugging-p' will return t." nil] alert--log-disable-debugging #[0 "\301\211\207" [log4e--toggle-debugging-alert nil] 2 "Disable debugging.\n\n`PREFIX--log-debugging-p' will return nil." nil] alert--log-debugging-p #[0 "\207" [log4e--toggle-debugging-alert] 1] alert--log-set-coding-system #[257 "\211\211\207" [log4e--buffer-coding-system-alert] 3 "Set charset and linefeed of LOG-BUFFER.\n\nCODING-SYSTEM is symbol for setting to `buffer-file-coding-system'.\nLOG-BUFFER is a buffer which name is \" *log4e-PREFIX*\".\n\n(fn CODING-SYSTEM)"] alert--log-clear-log #[0 "\301!\207" [log4e--log-buffer-alert log4e--clear-log] 2 "Clear buffer string of buffer which name is \" *log4e-PREFIX*\"." nil] alert--log-open-log #[0 "\301!\207" [log4e--log-buffer-alert log4e--open-log] 2 "Open buffer which name is \" *log4e-PREFIX*\"." nil] alert--log-open-log-if-debug #[0 "\302 \"\207" [log4e--log-buffer-alert log4e--toggle-debugging-alert log4e--open-log-if-debug] 3 "Open buffer which name is \" *log4e-PREFIX*\" if debugging is enabled."] alert--log #[642 "\306\307\n \f  \n   & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 15 "Do logging for any level log.\nLEVEL is symbol as a log level in '(trace debug info warn error fatal).\nMSG/MSGARGS are passed to `format'.\n\n(fn LEVEL MSG &rest MSGARGS)"] alert--log* macro #[642 "\301\302\303P!)\301\302\304P!)\301\302\305P!)\301\302\306P!)\301\302\307P!)\301\302\310P!)\301\302\311P!)\301\302\312P!)\313\314DC\315\316\317FE\320\f      BBBBBBBBBBEE\207" [prefix #1# intern #2="log4e--log-buffer-" #3="log4e--msg-buffer-" #4="log4e--buffer-coding-system-" #5="log4e--log-template-" #6="log4e--time-template-" #7="log4e--min-level-" #8="log4e--max-level-" #9="log4e--toggle-logging-" let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for any level log.\nLEVEL is symbol as a log level in '(trace debug info warn error fatal).\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if the level log should be printed.\n\n(fn LEVEL MSG &rest MSGARGS)"] alert--log-fatal #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging fatal log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'fatal level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-fatal* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'fatal #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'fatal level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'fatal level log should be printed.\n\n(fn MSG &rest MSGARGS)"] alert--log-error #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging error log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'error level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-error* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'error #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'error level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'error level log should be printed.\n\n(fn MSG &rest MSGARGS)"] alert--log-warn #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging warn log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'warn level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-warn* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'warn #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'warn level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'warn level log should be printed.\n\n(fn MSG &rest MSGARGS)"] alert--log-info #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging info log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'info level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-info* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'info #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'info level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'info level log should be printed.\n\n(fn MSG &rest MSGARGS)"] alert--log-debug #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging debug log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'debug level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-debug* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'debug #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'debug level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'debug level log should be printed.\n\n(fn MSG &rest MSGARGS)"] alert--log-trace #[385 "\306\307\n \f  \n \310  & )\207" [log4e--msg-buffer-alert log4e--current-msg-buffer log4e--log-buffer-alert log4e--buffer-coding-system-alert log4e--log-template-alert log4e--time-template-alert apply log4e--logging trace log4e--min-level-alert log4e--max-level-alert log4e--toggle-logging-alert] 14 "Do logging for 'trace level log.\nMSG/MSGARGS are passed to `format'.\n\n(fn MSG &rest MSGARGS)"] alert--log-trace* #[385 "\301\302\303\304P!)\302\303\305P!)\302\303\306P!)\302\303\307P!)\302\303\310P!)\302\303\311P!)\302\303\312P!)\302\303\313P!)\314\315DC\316\317\320FE\321\f      BBBBBBBBBBEE\207" [prefix 'trace #1# intern #2# #3# #4# #5# #6# #7# #8# #9# let log4e--current-msg-buffer when and log4e--logging-level-p log4e--logging] 26 "Do logging for 'trace level log.\nMSG/MSGARGS are passed to `format'.\nEvaluation of MSGARGS is invoked only if 'trace level log should be printed.\n\n(fn MSG &rest MSGARGS)"] functionp apply] 9 (#$ . 11004)]) #@20 (fn MES SEV LEN) (defalias 'alert-legacy-log-notify #[771 "r\301\302!q\210db\210\303\304!c\210c\210\305`Z`\306\236AD#\210\307c)\207" [alert-severity-faces get-buffer-create "*Alerts*" format-time-string "%H:%M %p - " set-text-properties face 10] 9 (#$ . 22234)]) #@13 (fn INFO) (defalias 'alert-log-clear #[257 "\300\301!\203 \301 \207\302\303!\205$r\304\303!q\210db\210\305\306!\307\310\311\"\312\261)\207" [functionp alert--log-clear-log bufferp "*Alerts*" get-buffer-create format-time-string "%H:%M %p - " "Clear: " plist-get :message 10] 6 (#$ . 22509)]) (alert-define-style 'log :title "Log to *Alerts* buffer" :notifier 'alert-log-notify) #@13 (fn INFO) (defalias 'alert-message-notify #[257 "\300\301\302\303\"\"\207" [message "%s" plist-get :message] 6 (#$ . 22899)]) #@13 (fn INFO) (defalias 'alert-message-remove #[257 "\300\301!\207" [message ""] 3 (#$ . 23034)]) (alert-define-style 'message :title "Display message in minibuffer" :notifier 'alert-message-notify :remover 'alert-message-remove) #@13 (fn INFO) (defalias 'alert-momentary-notify #[257 "\212r\300\301\"\206\npq\210\302\303\304\300\305\"\206\306\300\307\"\206\310\300\311\"\206(\312\300\313\"\2061\314\300\315\"\206:\316&\317 \210`\"*\207" [plist-get :buffer momentary-string-display format "%s: %s (%s/%s/%s)" :title "untitled" :message "no message" :severity "no priority" :category "no category" :mode "no mode" beginning-of-line] 11 (#$ . 23268)]) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\"\207" [alert-define-style momentary :title "Display message momentarily in buffer" :notifier alert-momentary-notify :remover ignore copy-face fringe alert-saved-fringe-face] 8) #@13 (fn INFO) (defalias 'alert-fringe-notify #[257 "\301\302\303\304\"\236A\"\207" [alert-severity-colors set-face-background fringe plist-get :severity] 6 (#$ . 23950)]) #@13 (fn INFO) (defalias 'alert-fringe-restore #[257 "\300\301\302\"\207" [copy-face alert-saved-fringe-face fringe] 4 (#$ . 24127)]) (alert-define-style 'fringe :title "Change the fringe color" :notifier 'alert-fringe-notify :remover 'alert-fringe-restore) #@13 (fn INFO) (defalias 'alert-mode-line-notify #[257 "\301\302\303\"\210\304\302\305\306\"\236A\"\210\307\302\310\"\207" [alert-severity-colors copy-face mode-line alert-saved-mode-line-face set-face-background plist-get :severity set-face-foreground "white"] 6 (#$ . 24388)]) #@13 (fn INFO) (defalias 'alert-mode-line-restore #[257 "\300\301\302\"\207" [copy-face alert-saved-mode-line-face mode-line] 4 (#$ . 24672)]) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\320\321&\210\310\322\312\313\323DD\324\316\325\320\321&\207" [alert-define-style mode-line :title "Change the mode-line color" :notifier alert-mode-line-notify :remover alert-mode-line-restore custom-declare-variable alert-growl-command funcall function #[0 "\300\301!\207" [executable-find "growlnotify"] 2] "Path to the growlnotify command.\nThis is found in the Growl Extras: http://growl.info/extras.php." :type file :group alert alert-growl-priorities #[0 "\300\207" [((urgent . 2) (high . 2) (moderate . 1) (normal . 0) (low . -1) (trivial . -2))] 1] "A mapping of alert severities onto Growl priority values." (alist :key-type symbol :value-type integer)] 8) #@12 (fn STR) (defalias 'alert-encode-string #[257 "\300\301 \"\207" [encode-coding-string keyboard-coding-system] 4 (#$ . 25571)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put alert-encode-string speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@13 (fn INFO) (defalias 'alert-growl-notify #[257 "\203M\302\303\304\303\305\306\307\"\310\311 \"\262\312\306\313\"\310\311 \"\262\314\315\306 \316\" \236A!\257\n\306\317\"\203B\306\320\"\204B\211\321C\244\210\322\323\324\211\211&\207\325!\207" [alert-growl-command alert-growl-priorities "--appIcon" "Emacs" "--name" "--title" plist-get :title encode-coding-string keyboard-coding-system "--message" :message "--priority" number-to-string :severity :persistent :never-persist "--sticky" apply call-process nil alert-message-notify] 14 (#$ . 25852)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\316\317&\210\306\320\310\311\321DD\322\314\323\316\317&\210\306\324\310\311\325DD\326\314\327\316\317&\207" [alert-define-style growl :title "Notify using Growl" :notifier alert-growl-notify custom-declare-variable alert-libnotify-command funcall function #[0 "\300\301!\207" [executable-find "notify-send"] 2] "Path to the notify-send command.\nThis is found in the libnotify-bin package in Debian based\nsystems." :type file :group alert alert-libnotify-additional-args #[0 "\300\207" [nil] 1] "Additional args to pass to notify-send.\nMust be a list of strings." (repeat string) alert-libnotify-priorities #[0 "\300\207" [((urgent . critical) (high . critical) (moderate . normal) (normal . normal) (low . low) (trivial . low))] 1] "A mapping of alert severities onto libnotify priority values." (alist :key-type symbol :value-type symbol)] 8) #@244 Send INFO using notify-send. Handles :ICON, :CATEGORY, :SEVERITY, :PERSISTENT, :NEVER-PERSIST, :TITLE and :MESSAGE keywords from the INFO plist. :CATEGORY can be passed as a single symbol, a string or a list of symbols or strings. (fn INFO) (defalias 'alert-libnotify-notify #[257 "\203\246\305\306\307\310\"\206 \311\312\313\307\314\"\n\236A\211\203#\315!\202$\316\262\257 \"\307\317\"\320\321\322\307\323\"\203F\307\324\"\204F\325\202G\f_!D\244\210\211\203}\3269\203]\315!\202z;\203f\202z<\205z\327@9\203v\315\202w\330\331#D\244\210\307\332\"\333\334 \"\262\307\335\"\333\334 \"\262D\244\210\336\337\340\341\342!\343D\340&\207\344!\207" [alert-libnotify-command alert-default-icon alert-libnotify-priorities alert-libnotify-additional-args alert-fade-time append "--icon" plist-get :icon "--app-name" "Emacs" "--urgency" :severity symbol-name "normal" :category "--expire-time" number-to-string 1000 :persistent :never-persist 0 "--category" mapconcat identity "," :title encode-coding-string keyboard-coding-system :message apply call-process nil get-buffer-create " *libnotify output*" t alert-message-notify] 10 (#$ . 27354)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\316\317&\210\320\321!\203*\322\323\324\"\210\300\321\302\325\304\323%\210\306\326\310\311\327DD\330\314\331\316\317&\207" [alert-define-style libnotify :title "Notify using libnotify" :notifier alert-libnotify-notify custom-declare-variable alert-gntp-icon funcall function #[0 "\300\207" [#1="http://cvs.savannah.gnu.org/viewvc/*checkout*/emacs/emacs/etc/images/icons/hicolor/48x48/apps/emacs.png"] 1 #1#] "Icon file using gntp." :type string :group alert featurep gntp defalias alert-gntp-notify #[257 "\303\304\305\306\"\307\310 \"\262\305\311\"\307\310 \"\262\312\313\305\314\" \236A!\305\315\"\312=\2032\n\2027\305\315\"&\210\316!\207" [gntp-server alert-growl-priorities alert-gntp-icon gntp-notify alert plist-get :title encode-coding-string keyboard-coding-system :message nil number-to-string :severity :icon alert-message-notify] 11 "\n\n(fn INFO)"] "Notify using gntp" alert-notifications-priorities #[0 "\300\207" [((urgent . critical) (high . critical) (moderate . normal) (normal . normal) (low . low) (trivial . low))] 1] "A mapping of alert severities onto Growl priority values." (alist :key-type symbol :value-type symbol)] 8) #@297 Internal store of notification ids returned by the `notifications' backend. Used for replacing notifications with the same id. The key is the value of the :id keyword to `alert'. An id is only stored here if there `alert' was called ith an :id keyword and handled by the `notifications' style. (defvar alert-notifications-ids (make-hash-table :test 'equal) (#$ . 29785)) (byte-code "\300\301!\203\302\303\304\"\210\302\305\306\"\210\307\301\310\311\312\303%\210\313\314\315\316\317DD\320\321\322\323\324&\210\313\325\315\316\326DD\327\321\330\323\324&\207" [featurep notifications defalias alert-notifications-notify #[257 "\302\303\304\303\"\305\304\306\"\307\304\310\"\311\304 \312\"\203\313\202\314\315\316\304\f\317\"\"\320\304 \321\" \236A&\f\304\317\"\203C\322\304\317\"#\210\210\323!\207" [alert-notifications-ids alert-notifications-priorities notifications-notify :title plist-get :body :message :app-icon :icon :timeout :persistent 0 -1 :replaces-id gethash :id :urgency :severity puthash alert-message-notify] 16 "Show the alert defined by INFO with `notifications-notify'.\n\n(fn INFO)"] alert-notifications-remove #[257 "\301\302\"\205\303\301\302\"\"\211\205\304!\210\305\301\302\"\"\207" [alert-notifications-ids plist-get :id gethash notifications-close-notification remhash] 6 "Remove the `notifications-notify' message based on INFO :id.\n\n(fn INFO)"] alert-define-style :title "Notify using notifications" :notifier custom-declare-variable alert-notifier-command funcall function #[0 "\300\301!\207" [executable-find "terminal-notifier"] 2] "Path to the terminal-notifier command.\nFrom https://github.com/julienXX/terminal-notifier." :type file :group alert alert-notifier-default-icon #[0 "\301P\207" [data-directory "images/icons/hicolor/128x128/apps/emacs.png"] 2] "Filename of default icon to show for terminal-notifier alerts." string] 8) #@13 (fn INFO) (defalias 'alert-notifier-notify #[257 "\2033\302\303\304\"\305\306 \"\262\307\303\310\"\206 \311\303\312\"\305\306 \"\262\257\313\314\315\211\211&\207\316!\207" [alert-notifier-command alert-notifier-default-icon "-title" plist-get :title encode-coding-string keyboard-coding-system "-appIcon" :icon "-message" :message apply call-process nil alert-message-notify] 10 (#$ . 31691)]) (alert-define-style 'notifier :title "Notify using terminal-notifier" :notifier 'alert-notifier-notify) #@13 (fn INFO) (defalias 'alert-osx-notifier-notify #[257 "\300\301\302\303\211\211\304\305\306\307\n\310\"\311\312 \"\262\307 \313\"\311\312 \"\262#C&\210\314!\207" [apply call-process "osascript" nil "-e" format "display notification %S with title %S" plist-get :message encode-coding-string keyboard-coding-system :title alert-message-notify] 15 (#$ . 32215)]) (alert-define-style 'osx-notifier :title "Notify using native OSX notification" :notifier 'alert-osx-notifier-notify) #@13 (fn INFO) (defalias 'alert-frame-notify #[257 "\300\301\"\302!\303=\2051\304 \304 p\305\306#\216\307\310\311!\312\"\210\313!\210\314\304 D\244\210)\266\307!\262\207" [plist-get :buffer alert-buffer-status buried selected-frame make-closure #[0 "\302\300!\203 \303\300\304\"\210\305\301!\205\301q\207" [V0 V1 frame-live-p select-frame norecord buffer-live-p] 3] select-frame make-frame ((width . 80) (height . 20) (top . -1) (left . 0) (left-fringe . 0) (right-fringe . 0) (tool-bar-lines) (menu-bar-lines) (vertical-scroll-bars) (unsplittable . t) (has-modeline-p) (minibuffer)) norecord switch-to-buffer :frame] 9 (#$ . 32708)]) #@13 (fn INFO) (defalias 'alert-frame-remove #[257 "\301=?\205\302\303\304\"\305\"\207" [this-command handle-switch-frame delete-frame plist-get :frame t] 5 (#$ . 33359)]) #@276 Set the x-urgency hint for FRAME to ARG. - If arg is nil, unset the urgency. - If arg is any other value, set the urgency. If you unset the urgency, you still have to visit the frame to make the urgency setting disappear (at least in KDE). (fn FRAME ARG &optional SOURCE) (defalias 'x-urgency-hint #[770 "\300\301\302\302\303\304&\303\"\211@\203\305\306\"\202\307\310\"\240\210\311\302\302\312\304&\207" [append x-window-property "WM_HINTS" nil t logior 256 logand 536870655 x-change-window-property 32] 12 (#$ . 33539)]) #@200 Mark the current Emacs frame as requiring urgent attention. With non-nil ARG, remove the urgency flag (which might or might not change display, depending on the window manager). (fn &optional ARG) (defalias 'x-urgent #[256 "\300 A@@\301?\"\207" [current-frame-configuration x-urgency-hint] 5 (#$ . 34086) "P"]) #@29 Call `x-urgent'. (fn INFO) (defalias 'alert-x11-notify #[257 "\300 \207" [x-urgent] 2 (#$ . 34407)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\316\317&\210\306\320\310\311\321DD\322\314\323\316\317&\207" [alert-define-style x11 :title "Set the X11 window property" :notifier alert-x11-notify custom-declare-variable alert-toaster-default-icon funcall function #[0 "\300\301!\211\203 \302!\303P\207\304\207" [executable-find "emacs.exe" file-name-directory "../share/icons/hicolor/128x128/apps/emacs.png" nil] 3] "Icon file using toaster." :type string :group alert alert-toaster-command #[0 "\300\301!\207" [executable-find "toast"] 2] "Path to the toast command.\nThis is found at https://github.com/nels-o/toaster." file] 8) #@13 (fn INFO) (defalias 'alert-toaster-notify #[257 "\2035\302\303\304\"\305\306 \"\262\307\303\310\"\305\306 \"\262\311\312\303\313\"\206' !\257\314\315\316\211\211&\207\317!\207" [alert-toaster-command alert-toaster-default-icon "-t" plist-get :title encode-coding-string keyboard-coding-system "-m" :message "-p" expand-file-name :icon apply call-process nil alert-message-notify] 10 (#$ . 35179)]) (alert-define-style 'toaster :title "Notify using Toaster" :notifier 'alert-toaster-notify) #@25 (fn &optional BUFFER) (defalias 'alert-buffer-status #[256 "r\211\206pq\210\301 \211\203/\211\302 =\203+\303 \203'\304\303 !V\203'\305\2020\306\2020\307\2020\310\262)\207" [alert-reveal-idle-time get-buffer-window selected-window current-idle-time float-time idle selected visible buried] 4 (#$ . 35694)]) (defvar alert-active-alerts nil) #@21 (fn REMOVER INFO) (defalias 'alert-remove-when-active #[514 "\303 \205 \304\303 !\211\203\211V\206*\211\203'\211 V\203'\305\n\306\307%\207!\207" [alert-persist-idle-time alert-reveal-idle-time alert-fade-time current-idle-time float-time run-with-timer nil alert-remove-when-active] 9 (#$ . 36052)]) (defalias 'alert-remove-on-command #[0 "\301\211\203)\211@p@=\203\"\211B\262\3028\203\"\3028A@!\210A\266\202\202\210\211\211\205=\211@\303\"A\266\202\202+\207" [alert-active-alerts nil 2 delq] 6]) #@64 (fn ALERT-BUFFER INFO STYLE-DEF &optional PERSIST NEVER-PER) (defalias 'alert-send-notification #[1283 "\302\303\"\211\203\f\211!\210\210\302\304\"E\211\235\204\211B\210rq\210\305\306\307\310\311$\210)\211\205@\2038\205@\312 \310\313 %\207" [alert-active-alerts alert-fade-time plist-get :notifier :remover add-hook post-command-hook alert-remove-on-command nil t run-with-timer alert-remove-when-active] 12 (#$ . 36589)]) #@2085 Alert the user that something has happened. MESSAGE is what the user will see. You may also use keyword arguments to specify additional details. Here is a full example: (alert "This is a message" :severity \='high ;; The default severity is `normal' :title "Title" ;; An optional title :category \='example ;; A symbol to identify the message :mode \='text-mode ;; Normally determined automatically :buffer (current-buffer) ;; This is the default :data nil ;; Unused by alert.el itself :persistent nil ;; Force the alert to be persistent; ;; it is best not to use this :never-persist nil ;; Force this alert to never persist :id \='my-id) ;; Used to replace previous message of ;; the same id in styles that support it :style \='fringe) ;; Force a given style to be used; ;; this is only for debugging! If no :title is given, the buffer-name of :buffer is used. If :buffer is nil, it is the current buffer at the point of call. :data is an opaque value which modules can pass through to their own styles if they wish. Here are some more typical examples of usage: ;; This is the most basic form usage (alert "This is an alert") ;; You can adjust the severity for more important messages (alert "This is an alert" :severity \='high) ;; Or decrease it for purely informative ones (alert "This is an alert" :severity \='trivial) ;; Alerts can have optional titles. Otherwise, the title is the ;; buffer-name of the (current-buffer) where the alert originated. (alert "This is an alert" :title "My Alert") ;; Further, alerts can have categories. This allows users to ;; selectively filter on them. (alert "This is an alert" :title "My Alert" :category \='some-category-or-other) (fn MESSAGE &key (SEVERITY \='normal) TITLE ICON CATEGORY BUFFER MODE DATA STYLE PERSISTENT NEVER-PERSIST ID) (defalias 'alert #[385 "\306\307\"\206\310A@\306\311\"A@\306\312\"A@\306\313\"A@\306\314\"A@\306\315\"A@\306\316\"A@\306\317\"A@\306 \320\"A@\306\n\321\"A@\306 \322\"A@ \211\203y\211@\323>\203a\211AA\262\202N\324 >A@\203p\325\262\202N\326\327@\"\210\202N\210r\206\201pq\210p\206\212\330 \331 F)\211G\332U\203\240\211A\262\242\202\247\333\334\335GD\"\211A\262\242\211A\262\242\242\336\311\206\277\312\307\313\314\315\322\316\257\325 \203\337\337!\210\n\204\274\3402\273\341 \f\"\211\205\270\211@\f\206\371\211A@ \236A\3428 \206\320\236A\343!\203\211!\202\211\206\321\236A\343!\203,\211 !\202-\211\344\236A\325C\211\320 >\204F\341 \320D\"\202H\f\240\210\211\321\242>\204]\341\242\321D\"\202_\242\240\210\204\204\325\345\346\347!     &  @\">\204\257\350\242\n%\210\351\262 \204\252\343!\203\246\242!\202\247\204\257\352\340\351\"\210\266A\266\202\202\353\2620\210\211?\205\320+\205\320\350+ \236A#\207" [major-mode alert-log-messages alert-hide-all-notifications alert-user-configuration alert-internal-configuration alert-styles plist-member :severity (nil normal) :title :icon :category :buffer :mode :data :style :persistent :never-persist :id (:severity :title :icon :category :buffer :mode :data :style :persistent :never-persist :id :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:severity :title :icon :category :buffer :mode :data :style :persistent :never-persist :id)" alert-buffer-status buffer-name 4 signal wrong-number-of-arguments (alert-buffer current-major-mode current-buffer-status current-buffer-name) :message alert-log-notify finish append 2 functionp :continue mapcar make-closure #[257 "\211@\211\310\267\202K\301A>\207\306A>\207\311A\312\305!\"\207\304\205L\311A\304;\203*\304\202-\312\304!\"\207\302\205L\311A\302\"\207\311A\300\"\207A\307\242!\207\311A\303\"\207\313\207" [V0 V1 V2 V3 V4 V5 V6 V7 #s(hash-table size 8 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:severity 8 :status 13 :mode 18 :category 26 :title 47 :message 57 :predicate 63 :icon 69)) string-match symbol-name nil] 6 "\n\n(fn CONDITION)"] alert-send-notification t throw alert-default-style] 42 (#$ . 37042)]) (provide 'alert)