Configuré un indicador de temporizador de organización en la línea de modo con esto.
(setq-default
mode-line-format
(quote
(
;; org-timer
(:eval
(unless (not org-timer-countdown-timer)
(propertize (let* ((rtime (decode-time
(time-subtract
(timer--time org-timer-countdown-timer)
(current-time))))
(rmins (nth 1 rtime))
(rsecs (nth 0 rtime)))
(format "🕔 %d:%d" rmins rsecs))
'face '(:foreground "cyan" :weight bold)
'help-echo "org-timer")))
)))
Quiero que este indicador de temporizador de organización se muestre solo en la línea del modo activo , en lugar de todas las líneas del modo. ¿Cómo hacerlo?

redisplaymotor puede verificar cada ventana bajo ciertas circunstancias (p. Ej., Cuando la línea de modo se actualiza naturalmente o cuando se ve obligada a actualizar). Cuandomode-line-formatcontiene la función(selected-window), se devolverá una ventana diferente a medida que la pantalla vuelve a visitar las distintas ventanas. Ese valor se puede comparar con un valor pregrabado, por ejemplo,post-command-hookse puede usar para registrar el último conocidoselected-windowy ese valor se puede comparar más tarde con una función dentro demode-line-format. Entonces, uso el PCH para grabar / almacenar elselected-window.org-timer. ¿Qué tengo que hacer? Espero una forma más general. Incluso eso me inspiró. ¿Me puede dar más ejemplo de código exactamente? Porque lo encontré configurado diferente'face, pero necesito cambiar la cadena de visualización.Respuestas:
En el siguiente ejemplo, la palabra "ACTIVO" aparecerá en la línea de modo de la ventana que está activa, y todas las demás ventanas mostrarán la palabra "INACTIVO" en la línea de modo.
Asegúrese de probar este ejemplo con
emacs -Qpara verificar que funciona como se anuncia. A partir de entonces, personalícelo según sea necesario.Agregue ganchos adicionales según sea necesario para llamar
ml-update-all.fuente