私はUbuntu Linuxを実行しているラップトップでEmacs 24を使用しています。これは通常、非常に優れた外部モニターに接続されており、1つのカラーテーマが好きです(defthemeを使用)。しかし、外出中は、別の deftheme が好きです。
Emacs に接続イベントの監視をリッスンさせ、それに応じてテーマを設定するにはどうすればよいですか?
ディスプレイ構成の変更に反応する簡単な方法があるとは思えません。Linux では、そのような変更を通知する DBus サービスを見つけることができて幸運かもしれません。これは、Emacs D-Bus ライブラリによって対応できますが、OS X と Windows では、そのような単純な方法があるとは思えません。
お気に入りの 2 つのテーマを切り替える単純なキー バインドを使用する方がよい場合があります。
(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)