Я установил индикатор таймера организации в строке режима с этим.
(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")))
)))
Я хочу, чтобы этот индикатор таймера организации отображался только в строке активного режима , а не во всех строках режима. Как это сделать?
См .: emacs.stackexchange.com/a/22682/2287
—
юрист
@lawlist Не могу понять ваш код. Не знаю, как подать заявку на мое дело.
—
stardiviner
redisplay
Двигатель способен проверять каждое окно при определенных обстоятельствах (например, когда режим линия обновляется естественным образом , или когда он вынужден обновить). Когда mode-line-format
функция содержит функцию (selected-window)
, будет возвращено другое окно при повторном отображении посещений различных окон. Это значение можно сравнить с предварительно записанным значением - например, post-command-hook
можно использовать для записи последнего известного, selected-window
а затем это значение можно сравнить с функцией внутри mode-line-format
. Итак, я использую PCH для записи / хранения selected-window
.
@lawlist Я проверил ваш код, но не нашел общего использования в моем случае. Если я перейду на другую вещь вместо
—
stardiviner
org-timer
. Что мне делать? Я надеюсь, что более общий способ. Даже это вдохновило меня. Можете ли вы привести более точный пример кода? Потому что я обнаружил, что он установлен по-другому 'face
, но мне нужно изменить строку отображения.
Я не пробовал это, но этот вопрос похож на этот: emacs.stackexchange.com/q/13842/115
—
Modi