Respuestas:
Esto es realmente una cuestión de opinión, pero siempre he descubierto que lo mejor es hl-linetener un fondo un poco más oscuro que el predeterminado.
Me gustaría mantener el resaltado de sintaxis, que se ha roto en mis intentos.
Si desea mantener el resaltado de sintaxis, asegúrese de que hl-lineel :foregroundatributo de la cara sea nulo, luego configure el :backgroundatributo como desee.
Esto es lo que me parece con esta configuración:
(set-face-attribute 'default nil :background "gray15")
(set-face-attribute 'hl-line nil :foreground nil :background "gray5")

Por lo que parece, no desea colores codificados porque va a cambiar los temas. Puede hacer que emacs configure automáticamente :backgroundla hl-linecara en un color ligeramente más oscuro que el predeterminado actual de :backgroundesta manera:
(require 'color)
(defun set-hl-line-color-based-on-theme ()
"Sets the hl-line face to have no foregorund and a background
that is 10% darker than the default face's background."
(set-face-attribute 'hl-line nil
:foreground nil
:background (color-darken-name (face-background 'default) 10)))
(add-hook 'global-hl-line-mode-hook 'set-hl-line-color-based-on-theme)
Esto establecerá el fondo de la cara en un color 10% más oscuro que el fondo predeterminado cada vez que habilite global-hl-line-mode
global-hl-line-mode? En resumen, especifique la pregunta más claramente: ayudará a las personas a ayudarlo.