Sử dụng một chủ đề màu khác nhau cho bộ đệm eww


7

Tôi thấy câu hỏi này: Làm cách nào để tùy chỉnh màu nền cho một số trang web được mở bằng eww? nhưng điều này sẽ không làm việc cho tôi. Tôi đang cố đọc các trang Wikipedia và ở nhiều nơi Wikipedia sử dụng hình ảnh để hiển thị các công thức toán học. Khi những cái này có nền trong suốt, xuất hiện không hiển thị chấp nhận được (ví dụ bên dưới). Vì vậy, tôi muốn có chủ đề nền trắng cho eww, trong khi vẫn giữ mọi thứ khác với chủ đề nền tối.

nhập mô tả hình ảnh ở đây


1
Tôi nghĩ rằng đây là một lý do tốt để thêm nhiều khuôn mặt vàoeww-mode
ocodo

Câu trả lời:


10

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 ewwbộ đệm.

(add-hook 'eww-mode-hook
          (lambda () (set-theme-faces-in-buffer 'tango)))

(Thay thế tangobằng chủ đề ánh sáng yêu thích của bạn.)


Nó là loại công việc cho tôi. Hình nền của những png trong suốt đó vẫn hiển thị nền từ chủ đề trước. Có vẻ như chúng ta cũng cần phải tắt chủ đề trước đó trong bộ đệm hiện tại. Làm thế nào tôi có thể làm điều đó?
Kaushal Modi

@kaushalmodi: Sau khi tìm thấy thêm một số hoạt động đào xung quanh load-theme-buffer-local.el, nó sẽ tốt hơn nhiều so với bản hack của tôi. Hãy thử một lần! (Tôi đã liên kết với nó trong câu trả lời được cập nhật.)
Constantine

@Constantine: tiếc là nó có cùng một vấn đề với những hình ảnh minh bạch
Joseph Garvin

1

Ngoài ra, nếu bạn cảm thấy thoải mái với việc đọc đánh dấu LaTeX, bạn có thể thích cấu hình wikipedia để không sử dụng hình ảnh để kết xuất toán học. Điều này yêu cầu bạn tạo một tài khoản wikipedia, sau đó vào Tùy chọn-> Giao diện-> Toán để chọn một tùy chọn. Tôi muốn giới thiệu "MathJax phía máy khách", vì điều này sẽ hiển thị chính xác trong trình duyệt hiểu javascript, nhưng sẽ chỉ hiển thị nguồn LaTeX trong trình duyệt như thế eww.

Chẳng hạn, trang của bạn trông như thế này đối với tôi: nhập mô tả hình ảnh ở đây

Có lẽ trong tương lai ai đó có thể điều chỉnh mã từ preview-latexhoặc org-preview-latex-fragmentcho phép hiển thị toán học được định dạng ewwtheo cách nhận thức được bảng màu. (Hoặc tích hợp trình thông dịch javascript!)


Loại ràng buộc Emacs của Maxima làm điều đó (nó thể hiện LaTeX theo màu sắc của chủ đề hiện tại). Tôi có thể xem xét làm thế nào nó có thể kết hợp điều đó. Thật buồn cười, tôi thực sự đã kết thúc cả hai, (vô hiệu hóa kết xuất phía máy chủ trong Wikipedia) và thêm một cái móc vào eww, nhưng tôi sẽ chấp nhận câu hỏi của Constantine vì nó chung chung hơn. Cảm ơn bạn mặc dù!
wvxvw
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.