Verwenden Sie für eww-Puffer ein anderes Farbthema


7

Ich habe folgende Frage gesehen: Wie kann ich die Hintergrundfarbe für einige mit eww geöffnete Webseiten anpassen? aber das wird bei mir nicht funktionieren. Ich versuche Wikipedia-Seiten zu lesen und an vielen Stellen verwendet Wikipedia Bilder, um mathematische Formeln zu rendern. Wenn diese einen transparenten Hintergrund haben, scheinen sie nicht akzeptabel zu rendern (Beispiel unten). Daher möchte ich ein weißes Hintergrundthema für eww haben, während alles andere mit einem dunklen Hintergrundthema erhalten bleibt.

Geben Sie hier die Bildbeschreibung ein


1
Ich denke, dies ist ein guter Grund, mehr Gesichter hinzuzufügeneww-mode
ocodo

Antworten:


10

Aktualisieren:

load-theme-buffer-local.el( GitHub-Repository ) soll das tun, was ich versucht habe, aber es richtig machen .

Um es mit zu verwenden eww, installieren Sie es und fügen Sie es hinzu

(add-hook 'eww-mode-hook
          (lambda () (load-theme-buffer-local 'tango (current-buffer))))

zu Ihrer Init-Datei.

PS: Ich kann diesen Ansatz nicht selbst testen. Lassen Sie mich wissen, ob dies funktioniert.

Ursprüngliche Antwort (nur zur Aufzeichnung aufbewahrt):

Sie können face-remap-add-relativeGesichter im aktuellen Puffer festlegen.

Nachdem ich ein bisschen herumgegraben hatte, kam ich auf diesen Hack. Es extrahiert Gesichtseinstellungen aus einem Thema und wendet sie im aktuellen Puffer an.

(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))))))

Sie können dies mit einem kombinieren eww-mode-hook, um ein anderes Thema in ewwPuffern festzulegen.

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

(Ersetzen Sie tangodurch Ihr Lieblingslichtthema.)


Es funktioniert irgendwie für mich. Die Hintergründe dieser transparenten PNGs zeigen immer noch den Hintergrund des vorherigen Themas. Sieht so aus, als müssten wir das vorherige Thema auch im aktuellen Puffer deaktivieren. Wie kann ich das machen?
Kaushal Modi

@kaushalmodi: Nach einigem Stöbern habe ich herausgefunden load-theme-buffer-local.el, was viel besser sein sollte als mein Hack. Versuche es! (Ich habe in der aktualisierten Antwort darauf verlinkt.)
Constantine

@Constantine: Leider hat es das gleiche Problem mit transparenten Bildern
Joseph Garvin

1

Wenn Sie mit dem Lesen von LaTeX-Markups vertraut sind, können Sie Wikipedia auch so konfigurieren, dass keine Bilder zum Rendern von Mathematik verwendet werden. Dazu müssen Sie ein Wikipedia-Konto erstellen und dann unter Einstellungen-> Darstellung-> Mathematik eine Option auswählen. Ich würde "Client-seitiges MathJax" empfehlen, da dies in einem Browser, der Javascript versteht, hübsch gerendert wird, aber nur die LaTeX-Quelle in einem Browser wie ewwdiesem nicht anzeigt.

Zum Beispiel sieht Ihre Seite für mich so aus: Geben Sie hier die Bildbeschreibung ein

Vielleicht könnte in Zukunft jemand Code aus anpassen preview-latexoder org-preview-latex-fragmentdie Anzeige der formatierten Mathematik ewwauf eine Weise ermöglichen, die das Farbschema kennt. (Oder integrieren Sie einen Javascript-Interpreter!)


Maximas Emacs-Bindung macht es so (es rendert LaTeX in den Farben des aktuellen Themas). Ich könnte untersuchen, wie es funktioniert, um das vielleicht zu berücksichtigen. Komisch, dass ich letztendlich beides getan habe (Deaktivieren des serverseitigen Renderns in Wikipedia) und einen Hook hinzugefügt habe eww, aber ich werde Constantines Frage akzeptieren, weil sie allgemeiner ist. Trotzdem danke!
wvxvw
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.