2014-01-17 31 views
5

我试图在OS X上使用notify.el,但每次得到一个错误:DBUS错误

Symbol's value as variable is void: dbus-message-type-method-call 

的emacs --debug-INIT给出了一个输出:

Debugger entered--Lisp error: (void-variable dbus-message-type-method-call) 
    dbus-call-method(:session "org.freedesktop.Notifications" "/org/freedesktop/DBus" "org.freedesktop.DBus.Peer" "Ping") 
    byte-code("\305^H!\203^S^@\306  \n^K\f\307\310^H&^G\202^Z^@\306 \n^K\f\307%?\207" [timeout bus service dbus-path-dbus dbus-interface-peer natnump dbus-call-method "Ping" :timeout] 8) 
    dbus-ping(:session "org.freedesktop.Notifications") 
    (and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications")) 
    (cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications")) (defvar notify-id 0 "Current D-Bus notification$ 
    (setq notify-method (cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications")) (defvar notify-id 0 "Curren$ 
    (cond ((null notify-method) (setq notify-method (cond ((executable-find "growlnotify") (quote notify-via-growl)) ((and (require (quote dbus) nil t) (dbus-ping :session "org.freedesktop.Notifications"))$ 
    eval-buffer(#<buffer *load*-569235> nil "/Users/araeris/.emacs.d/packages/notify/notify.el" nil t) ; Reading at buffer position 3614 
    load-with-code-conversion("/Users/araeris/.emacs.d/packages/notify/notify.el" "/Users/araeris/.emacs.d/packages/notify/notify.el" nil t) 
    require(notify) 
    (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (symbol-name name))) (require name)) 
    (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (symbol-name name))) (require name))) 
    (while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-name (buffer-file-name))) "packages/" (sym$ 
    (let* ((--cl-var-- packages) (name nil)) (while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory (or load-file-n$ 
    (progn (let* ((--cl-var-- packages) (name nil)) (while (consp --cl-var--) (setq name (car --cl-var--)) (progn (if (fboundp name) nil (add-to-list (quote load-path) (concat (file-name-directory ...) "pa$ 
    eval-buffer(#<buffer *load*> nil "/Users/araeris/.emacs.d/init.el" nil t) ; Reading at buffer position 1796 
    load-with-code-conversion("/Users/araeris/.emacs.d/init.el" "/Users/araeris/.emacs.d/init.el" t t) 
    load("/Users/araeris/.emacs.d/init" t t) 
    #[0 "^H\205\262^@  \306=\203^Q^@\307^H\310Q\202;^@ \311=\204^^^@\307^H\312Q\202;^@\313\307\314\315#\203*^@\316\202;^@\313\307\314\317#\203:^@\320\nB^R\321\202;^@\316\322^S\323^A\322\211#\210^K\322=\$ 
    command-line() 
    normal-top-level() 

有谁知道如何处理它?

P. S.我已经通过自制安装DBUS。

回答

5

您需要使用的DBus支持建立Emacs的实际使用的DBus。在OS X上,这是相当不寻常的,我不明白你想在Emacs中使用DBus支持,因为没有别的东西在OS X上使用DBus。

如果你刚刚在通知之后,你不需要DBus。事实上,的DBus不会给你在OS X

有关OS X的通知通知与notify.el,你需要低吼。也就是说,您必须在AppStore中购买Growl,或者自己构建它,并从http://growl.info/downloads另外安装Growlnotifier。

+3

然后'(setq notify-method'notify-via-growl)'(或失败的咆哮,只是将它设置为不是''notify-via-dbus'的选项之一) – phils

+0

谢谢你的回答。它帮助我解决了我的问题。 – d12frosted