我已经开始使用ERC和bitlbee来管理我在Emacs中的聊天会话。它正在精彩地工作,有一个小的缺失功能 - 当Emacs没有焦点时发出警报。
理想情况下,当我发送消息并且聊天缓冲区被隐藏或者Emacs本身不是具有输入焦点的应用程序时,我会有操作系统级警报(Growl或其他)。我的第一个工作正常,但如果我能找到一种方法来确定Emacs本身是否有输入焦点,我就会被惹恼。
我能找到的最近的是frame-visible-p,但这只会告诉你帧是否被最小化。
非常感谢任何帮助 - 谢谢!
答案 0 :(得分:0)
您可以尝试在计时器上进行轮询,并检查switch-frame
事件。可能或可能不起作用。请参阅Elisp手册,节点Focus Events
。
答案 1 :(得分:0)
您可以运行外部命令。这将使用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)))))