我使用ERC和好bitlbee管理在Emacs我聊天會話啓動OS級別的焦點。它出色地工作,只有一個小缺失功能 - 當Emacs沒有焦點時發出警報。如何找出如果當前幀具有在Emacs
理想我不得不當我發了消息並聊天緩衝埋或Emacs本身不具有輸入焦點的應用程序的操作系統級警報(低吼或其他)。我有第一個工作正常,但如果我能找到一種方法來確定Emacs本身是否具有輸入焦點,那麼我就會發現這個問題。
我能找到最近的是幀可見P,但只告訴你,如果幀被最小化或沒有。
任何幫助非常讚賞 - 謝謝!
我使用ERC和好bitlbee管理在Emacs我聊天會話啓動OS級別的焦點。它出色地工作,只有一個小缺失功能 - 當Emacs沒有焦點時發出警報。如何找出如果當前幀具有在Emacs
理想我不得不當我發了消息並聊天緩衝埋或Emacs本身不具有輸入焦點的應用程序的操作系統級警報(低吼或其他)。我有第一個工作正常,但如果我能找到一種方法來確定Emacs本身是否具有輸入焦點,那麼我就會發現這個問題。
我能找到最近的是幀可見P,但只告訴你,如果幀被最小化或沒有。
任何幫助非常讚賞 - 謝謝!
您可以嘗試投票,一個計時器,並檢查了switch-frame
事件。可能或可能不工作。請參閱Elisp手冊,節點Focus Events
。
您可以運行一個外部命令。這讓你活動窗口的名稱與xdotool
(defun get-active-window-title()
(let ((command-result
(shell-command-to-string
(concat "xdotool getwindowname "
(shell-command-to-string
"xdotool getactivewindow")))))
(substring
command-result
0 (1- (length command-result)))))
嗯,我認爲,只有當你切換到另一個Emacs框架,而不是完全的另一個窗口觸發一個事件。當然,這就是快速測試的結果,它似乎在文檔中表現得如此之多。還是)感謝你的建議! – bbbscarter 2012-01-10 13:23:59