Saya mencoba mencapai perilaku berikut di Emacs24:
Saya suka menggunakan tema yang berbeda (solarized-dark vs solarized-light) tergantung pada apakah saya terhubung ke server yang sedang berjalan dengan bingkai terminal
% emacsclient -t
atau dengan bingkai gtk
% emacsclient -c
Tampaknya ini berhasil di Emacs yang lebih lama, tetapi Emacs saat ini saya tidak bisa menemukan jalan. Saya sudah mengecek SO (mis., Https://stackoverflow.com/q/18904529/152439 dan jawaban) dan milis (mis. Https://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.html dan https://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html ).
Setup saya saat ini terlihat seperti ini:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized")
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (display-graphic-p frame)
(load-theme 'solarized-light t)
(load-theme 'solarized-dark t)
)
)
)
(load-theme 'solarized-light t)
)
Masalah dengan ini adalah bahwa jika saya memiliki bingkai grafis terbuka dan kemudian membuka bingkai terminal dengan emacsclient -t
, tema solarized-dark diterapkan ke frame terminal baru (yang benar) dan bingkai grafis yang sudah terbuka (yang harus dibiarkan tidak tersentuh, idealnya). Setara terjadi ketika bingkai terminal sudah terbuka dan saya membuka bingkai grafis baru dengan emacsclient -c
.
EDIT: Dalam hal ini tidak mungkin dengan Emacs24 saat ini, apakah ada rencana untuk membuatnya mungkin lagi?
color-theme.el
IIRC mana yang memiliki pengaturan warna tergantung frame. Tidak ada keuntungan besar dalam menggunakan kemampuan bertema inbuilt selain dari mana-mana.
color-theme
sistem tema Emacs 24 dan keduanya . Versi saya dari tema solarized juga mendukung kedua sistem, jika Anda memutuskan untuk pergi rute ini.