我在运行 Ubuntu Linux 的笔记本电脑上使用 Emacs 24,它通常连接到一个非常好的外接显示器,我喜欢一个颜色主题(使用 deftheme)。但是当我在路上时,我喜欢另一个deftheme。
如何让 Emacs 监听连接事件,并相应地设置主题?
我怀疑是否有一种简单的方法可以对显示配置的更改做出反应。在 Linux 上,您可能很幸运地找到了一个指示此类更改的 DBus 服务,您可以通过Emacs D-Bus 库对其做出反应,但在 OS X 和 Windows 上,我怀疑是否存在这种简单的方法。
使用简单的键绑定在您最喜欢的两个主题之间切换可能会更好:
(defvar my-current-theme nil
"The last used theme.")
(defun my-toggle-themes ()
"Toggle between my favorite themes."
(let ((new-theme (if (eq my-current-theme 'solarized-light)
'zenburn 'solarized-light)))
(load-theme new-theme :no-confirm)
(setq my-current-theme new-theme)))
(global-set-key (kbd "C-c t") #'my-toggle-themes)