使用emacsclient代替翻译参数



我现在使用一个单独的枪支实例,我开始如下:

emacs --name Mail --title Mail --no-desktop --no-splash --funcall gnus

由于gnus的响应很好,并且我所有的其他emacs东西都是在不同的emacs实例中作为emacsclient运行的,所以我想尝试从emacsclient运行gnus。但我正在努力翻译我使用的命令行选项。我必须设置窗口的名称和标题,因为我使用了很棒的窗口管理器,窗口应该根据窗口名称进行排序。另外,我想自动启动gnus。

那么我如何翻译上面的命令,gnus作为emacsclient启动,windows名称和标题设置为Mail?

emacsclient ...???

您还可以使用-F参数来设置框架列表,并将其与-e参数组合以执行您喜欢的操作,因此不需要定义任何函数。然后调用看起来像这样:

emacsclient -F '((name . "Mail"))' -e '(gnus)'

参数说明请参见(info "(elisp)Frame parameters")

我不确定仅使用命令行开关就可以做到这一点。但是,可以定义一个elisp函数来设置gnus框架,并从emacsclient调用该函数。

试着把这个放到你的emacs初始化文件中:

(defun my/create-gnus-frame ()
  "Create a new frame running `gnus'."
  (select-frame
   (make-frame '((name . "Mail"))))
  (gnus))

并像这样从命令行运行gnus:

emacsclient -e '(my/create-gnus-frame)'

并且新创建的框架的X属性(由xprop获得)似乎是正确的:

WM_CLASS(STRING) = "Mail", "Emacs"
WM_ICON_NAME(STRING) = "Mail"
WM_NAME(STRING) = "Mail"

最新更新