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?
redisplaymotore è 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-formatcontiene 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-hookpuò essere utilizzato per registrare l'ultimo noto selected-windowe 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.