ale*_*exm 17 emacs awesome-wm lua
我让我的 Emacs 在一个worker带有server-start启动的标签上运行。我在其他地方打开了一个文件管理器(例如另一个监视器),当我打开一个文本文件时,emacsclient它成功地在 emacs 中打开,但没有切换到它,也没有启动它。
我正在寻找的是rc.lua. 就像是:
client.add_signal("focus", function(c) c:raise() end)
Run Code Online (Sandbox Code Playgroud)
我希望它只针对 Emacs。并同时切换到worker标签。或者我可以从 Emacs 规则回调中完成吗?
有任何想法吗?:)
我想要同样的东西,你的 emacs 回调的想法最终起作用了。我还没有在 Awesome 上测试过它,但我正在使用 dwm,并且我认为它们足够相似,足以使其工作。
这是emacs中的回调函数:
(defun raiseme ()
(x-send-client-message
nil ; DISPLAY - nil is selected frame
0 ; DEST - 0 is root window of display
nil ; FROM - nil is selected frame
"_NET_ACTIVE_WINDOW" ; MESSAGE-TYPE - name of an Atom as a string
32 ; FORMAT - size of the values in bits
'(1 "_NET_WM_USER_TIME" 0) ; VALUES
)
)
Run Code Online (Sandbox Code Playgroud)
有多种方法可以调用回调。为了简单性和灵活性,我选择了一个 shell 别名,它调用回调,然后调用常规 emacsclient:
$ alias edi
alias edi='emacsclient -e "(raiseme)"; emacsclient -n'
Run Code Online (Sandbox Code Playgroud)
希望它仍然有用;)
有关消息类型和值的更多参考,请参阅窗口管理器提示。
至于awesome对这个消息的处理,好像是对这个事件进行了处理。源代码在这里。
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |