Use un tema de color diferente para los buffers de eww

7

Vi esta pregunta: ¿Cómo personalizar el color de fondo para algunas páginas web abiertas con eww? Pero esto no funcionará para mí. Estoy tratando de leer las páginas de Wikipedia y en muchos lugares Wikipedia usa imágenes para representar fórmulas matemáticas. Cuando estos tienen fondo transparente, parece que no se procesan de manera aceptable (ejemplo a continuación). Por lo tanto, me gustaría tener un tema de fondo blanco-ish para eww, manteniendo todo lo demás con un tema de fondo oscuro.

ingrese la descripción de la imagen aquí

wvxvw
fuente
1
Creo que esta es una buena razón para agregar más caras aeww-mode
ocodo

Respuestas:

10

Actualizar:

load-theme-buffer-local.elSe supone que el ( repositorio de GitHub ) hace lo que intenté hacer, pero hacerlo de la manera correcta .

Para usarlo eww, instálalo y agrega

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

a su archivo de inicio.

PD: No puedo probar este enfoque yo mismo, así que avíseme si funciona.

Respuesta original (guardada solo para el registro):

Puede usar face-remap-add-relativepara establecer caras en el búfer actual.

Después de investigar un poco, se me ocurrió este truco. Extrae la configuración de la cara de un tema y la aplica en el búfer actual.

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

Puede combinar esto con un eww-mode-hookpara establecer un tema diferente en ewwbuffers.

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

(Reemplace tangocon su tema de luz favorito).

Constantina
fuente
De alguna manera funciona para mí. Los fondos de esos png transparentes aún muestran el fondo del tema anterior. Parece que también necesitaríamos deshabilitar el tema anterior en el búfer actual. ¿Cómo puedo hacer eso?
Kaushal Modi
@kaushalmodi: Después de investigar un poco más load-theme-buffer-local.el, encontré , que debería ser mucho mejor que mi truco. ¡Darle una oportunidad! (Lo vinculé en la respuesta actualizada).
Constantine
@Constantine: lamentablemente tiene el mismo problema con las imágenes transparentes
Joseph Garvin
1

Alternativamente, si se siente cómodo leyendo el marcado de LaTeX, es posible que prefiera configurar Wikipedia para que no use imágenes para representar las matemáticas. Esto requiere que cree una cuenta de wikipedia, luego vaya a Preferencias-> Apariencia-> Matemáticas para seleccionar una opción. Recomendaría "MathJax del lado del cliente", ya que esto se renderizará con precisión en un navegador que entienda javascript, pero solo mostrará la fuente LaTeX en un navegador como ewwese no.

Por ejemplo, tu página se ve así para mí: ingrese la descripción de la imagen aquí

Quizás en el futuro alguien pueda adaptar el código preview-latexo org-preview-latex-fragmentpermitir la visualización de las matemáticas formateadas ewwde una manera que sea consciente del esquema de color. (¡O integre un intérprete de JavaScript!)

obsoleto
fuente
El enlace Emacs de Maxima lo hace (representa LaTeX en los colores del tema actual). Podría investigar cómo lo hace para incorporar eso. Es curioso, en realidad terminé haciendo ambas cosas (deshabilitando la representación del lado del servidor en Wikipedia) y agregando un gancho eww, pero voy a aceptar la pregunta de Constantine porque es más genérica. ¡Gracias de cualquier forma!
wvxvw