如何从 org-faces.el 覆盖覆盖模式行自定义



org-faces.el 包含此代码

(org-copy-face 'mode-line 'org-mode-line-clock
  "Face used for clock display in mode line.")
;; ...snip...
(provide 'org-faces)
;;; org-faces.el ends here

这使得我的模式线(组织时钟显示)的右侧与"模式线"具有相同的面。 使用我的 .emacs,我想更改此行为,以便组织时钟显示使用与"模式行非活动"相同的面。

我尝试将其添加到 .emacs:

(require 'org-faces) ;;necessary?
(org-copy-face 'mode-line-inactive 'org-mode-line-clock
  "Face used for clock display in mode line."
  :background "blue")
(provide 'org-faces) ;;necessary?

但是在评估 .emacs 后,模式线保持不变。 我哪里出错了? 我对 Lisp 很陌生。感谢您的任何帮助。

你应该重新定义脸,就像我对"org-todo"所做的那样:

(set-face-attribute 'org-todo nil
                    :weight 'bold :box '(:line-width 1 :color "#D8ABA7")
                    :foreground "#D8ABA7" :background "#FFE6E4")

您可以(或必须,也许,取决于您放置上述行的位置)离开组织面孔的要求,但显然不是提供行。

或者,使用改善 Org 使用的颜色主题(例如我的 Emacs Leuven 主题,请参阅 https://github.com/fniessen/emacs-leuven-theme),最终对其进行自定义以适合您的口味。

似乎有效:

(eval-after-load "org-faces"
  '(set-face-attribute 'org-mode-line-clock nil
                       :inherit nil))

也就是说,使org-mode-line-clock不再继承mode-line人脸的属性。 当显示在模式行中时,它似乎会根据需要从mode-linemode-line-inactive中获取属性。

相关内容

  • 没有找到相关文章

最新更新