Я встановив індикатор орга-таймера в рядку режимів із цим.
(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
—
Kaushal Modi