Ho impostato un indicatore org-timer nella riga della modalità con questo.
(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")))
)))
Voglio che questo indicatore org-timer sia mostrato solo nella riga della modalità attiva , anziché in tutte le righe della modalità. Come farlo?
redisplay
motore è in grado di controllare ciascuna finestra in determinate circostanze (ad esempio, quando la linea di modalità viene aggiornata in modo naturale o quando è costretta ad aggiornare). Quando mode-line-format
contiene la funzione (selected-window)
, verrà restituita una finestra diversa mentre il display visualizza le varie finestre. Tale valore può essere confrontato con un valore preregistrato - ad esempio, post-command-hook
può essere utilizzato per registrare l'ultimo noto selected-window
e quel valore può essere successivamente confrontato con una funzione all'interno di mode-line-format
. Quindi, utilizzo PCH per registrare / archiviare selected-window
.
org-timer
. Cosa dovrei fare? Spero in un modo più generale. Persino mi ha ispirato. Puoi darmi l'esempio di codice più esattamente? Perché l'ho trovato impostato diversamente 'face
, ma ho bisogno di cambiare la stringa di visualizzazione.