J'ai mis en place un indicateur org-timer dans la ligne de mode avec cela.
(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")))
)))
Je veux que cet indicateur org-timer soit affiché dans la ligne de mode actif uniquement, au lieu de toutes les lignes de mode. Comment faire?
redisplay
moteur est capable de vérifier chaque fenêtre dans certaines circonstances (par exemple, lorsque la ligne de mode est rafraîchie naturellement ou lorsqu'elle est forcée de se rafraîchir). Lorsque le mode-line-format
contient la fonction (selected-window)
, une fenêtre différente sera renvoyée lorsque l'affichage réaffiche les différentes fenêtres. Cette valeur peut être comparée à une valeur préenregistrée - par exemple, le post-command-hook
peut être utilisé pour enregistrer le dernier connu selected-window
et cette valeur peut ensuite être comparée avec une fonction à l'intérieur du mode-line-format
. Donc, j'utilise le PCH pour enregistrer / stocker le selected-window
.
org-timer
. Que devrais-je faire? J'espère d'une manière plus générale. Même cela m'a inspiré. Pouvez-vous me donner plus exactement un exemple de code? Parce que je l'ai trouvé différent 'face
, mais je dois changer la chaîne d'affichage.