根据连接的显示器更改Emacs 24主题

时间:2013-05-21 08:13:32

标签: emacs dbus

我在运行Ubuntu Linux的笔记本电脑上使用Emacs 24,它通常连接到一个非常漂亮的外部显示器,我喜欢一个颜色主题(使用deftheme)。但是当我在旅途中时,我喜欢另一个默默无闻。

如何让Emacs监听监听连接事件,并相应地设置主题?

1 个答案:

答案 0 :(得分:0)

我怀疑有一种简单的方法可以对显示配置的更改做出反应。在Linux上,您可能很幸运找到一个DBus服务来发出这样的变化,您可以通过Emacs D-Bus library对此做出反应,但在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)