Cập nhật:
load-theme-buffer-local.el
( Kho lưu trữ GitHub ) được cho là làm những gì tôi đã cố gắng thực hiện, nhưng thực hiện đúng cách .
Để sử dụng nó với eww
, cài đặt nó và thêm
(add-hook 'eww-mode-hook
(lambda () (load-theme-buffer-local 'tango (current-buffer))))
vào tập tin init của bạn.
PS: Tôi không thể tự kiểm tra phương pháp này, vì vậy hãy cho tôi biết nếu cách này hiệu quả.
Câu trả lời gốc (chỉ giữ lại cho hồ sơ):
Bạn có thể sử dụng face-remap-add-relative
để đặt khuôn mặt trong bộ đệm hiện tại.
Sau một chút đào bới xung quanh tôi đã nghĩ ra bản hack này. Nó trích xuất các thiết lập khuôn mặt từ một chủ đề và áp dụng chúng trong bộ đệm hiện tại.
(defun set-theme-faces-in-buffer (theme)
"Use face remapping to set faces from a theme in the current
buffer. THEME should be a symbol."
(dolist (setting (get theme 'theme-settings))
(when (eq (car setting) 'theme-face)
(let ((face (nth 1 setting))
(spec (cadar (nth 3 setting))))
(ignore-errors
(apply #'face-remap-add-relative face spec))))))
Bạn có thể kết hợp điều này với một eww-mode-hook
để thiết lập một chủ đề khác nhau trong eww
bộ đệm.
(add-hook 'eww-mode-hook
(lambda () (set-theme-faces-in-buffer 'tango)))
(Thay thế tango
bằng chủ đề ánh sáng yêu thích của bạn.)
eww-mode