doom-modeline - 源自doom emacs 的 mode-line

mode-line
doom

#41

@xiangsheng 这确实是个问题,已经fix,请升级看看。另外那个 issue,可能跟 project 有关,你的文件应该都不在任何 project 中。


#42

着色问题修复了。另外那个问题应该确实是缺少项目文件引起的,我在有项目文件的目录里面打开文件就很正常。能否在没有项目的目录中fallback到比如truncate-upto-root的样式?毕竟不太可能在所有目录中都建立项目。


#43

已经fix 这个问题,请升级试试。


#44

确认问题已经修复,谢谢!


#45

不客气,enjoy


#46

建议每个 release 加上 changelog,最好每个changelog 带上PR地址


#47

谢谢,有时间我会加上。


#48

mu4e-alert 会导致emacs启动的时候modeline在misc处显示“*Invalid*”。 应该是 global-mode-string 里面的(:eval mu4e-alert-mode-line) 导致的,好像这个变量在doom modeline加载之后就是一个数了。

如果未读邮件数不是0,这个“*Invalid*”很快就没有了,如果是0,会一直存在。


#49

因为我没有用mu4e,这个 segment 是一个老外提的 PR,如果有问题请到 github 上提个 issue,加上详细信息,我们会沟通fix。


#50

我看了下代码,尝试修复了下,但没有测试过。你可以稍后更新试试看。


#51

赞速度! 信封图标比mu4e-alert用的漂亮,提示比原来清晰多了。

不过 “*Invalid*” 还是有。我试了个简单粗暴的办法把它去掉了,不知道有没有副作用 :sweat_smile: : 在 https://github.com/seagle0128/doom-modeline/blob/2ae39ff5ca079d47e83e0aadceb910f86c455025/doom-modeline.el#L179 加上 (setq global-mode-string (delete '(:eval mu4e-alert-mode-line) global-mode-string)) 直接在doom-modeline 启用的时候把原本的提示去掉。

原来只是在未读数非0的时候才去掉:https://github.com/seagle0128/doom-modeline/blob/2ae39ff5ca079d47e83e0aadceb910f86c455025/doom-modeline-segments.el#L1583)


#52

又更新了下,未读邮件是0的情况下也会去掉。你指出的地方添加有点副作用:如果doom-modeline-modemu4e-alert 之前 enable 还是会失效。你试试吧。

BTW:能 share 下你的mu4e配置么?我配了一下没有成功,感觉还挺麻烦。


#53

最近增加的一些功能,直接上图吧。

image


#54

:+1: 测试没什么问题了,除了一开始启动 Emacs 什么都没做的时候有个 invalid,马上就消失了。

我用的是 mbsync + mu4e + msmtp 的方案,折腾的时候主要时间都花在mbsync以及怎么收发gmail上面了,mu4e好像没花多少时间,东拼西凑就凑合能用了:

(use-package mu4e
  :config
  ;;compose with org mode
  (require 'org-mu4e)
  (setq org-mu4e-convert-to-html t)
  (setq mu4e-change-filenames-when-moving t)
  (setq mail-user-agent 'mu4e-user-agent)
  (setq mu4e-completing-read-function 'ivy-completing-read)
  (setq mu4e-user-mail-address-list '("XXX" "XXXX"))
  (setq mu4e-maildir "~/MAILDIR")
  ;; get mail
  (setq mu4e-get-mail-command "proxychains4 mbsync GmailXXX; mbsync XXX")
  (setq mu4e-update-interval 300)
  (setq mu4e-headers-auto-update t)
  (setq mu4e-hide-index-messages t
	mu4e-display-update-status-in-modeline t)
  ;;headers
  ;;threading does not work well with Gmail
  (setq mu4e-headers-include-related nil
	mu4e-headers-show-threads nil)
  (setq mu4e-headers-fields '((:human-date . 15)
			      (:flags . 6)
			      (:from-or-to . 24)
			      (:subject . nil)))
  (setq mu4e-use-fancy-chars t)
  ;;pick up some symbols with consistent widths
  (setq mu4e-headers-attach-mark '("a" . "📎")
	mu4e-headers-seen-mark '("S" . "☑")
	mu4e-headers-unread-mark '("u" . "☐")
	mu4e-headers-visible-flags '(unread seen draft flagged new passed replied trashed attach encrypted signed))
  ;;message view
  (add-hook 'mu4e-headers-mode-hook (lambda ()
				      (display-line-numbers-mode -1)))
  (setq mu4e-view-show-addresses t)
  (setq user-full-name "XXX")
  ;;contexts
  (setq mu4e-contexts
	`(,(make-mu4e-context
	    :name "XXX"
	    :enter-func (lambda () (mu4e-message "Entering XXX context"))
	    :leave-func (lambda () (mu4e-message "Leaving XXX context"))
	    :match-func (lambda (msg)
			  (when msg
			    (string-match-p "XXXXX" (mu4e-message-field msg :maildir))))
	    :vars '((user-mail-address . "XXX")
		    (message-sendmail-extra-arguments . ("-a" "XXX"))
		    (mu4e-trash-folder . "XXX")
		    (mu4e-refile-folder . "XXX")
		    (mu4e-sent-folder . "XXX"))
	    )
	  ,(make-mu4e-context
	    ;;another context...
	    )
	  ))
  ;; send
  (setq message-send-mail-function 'message-send-mail-with-sendmail
	sendmail-program "/usr/bin/msmtp")
  (setq message-kill-buffer-on-exit t)
  (setq mu4e-sent-messages-behavior 'delete)
  )

我使用场景有限,够用就没使劲折腾,再加上还在过渡期,肯定有不少问题。


#55

谢谢!改天有时间也折腾下。现在勉强用 gnus 收发,还是觉得不如网页版好用。上次配置 mu 时遇到翻墙问题就搁置了。


#56

确实头疼,最终用了proxychains


#57

重构了下,之前的 PR 代码组织不是很好。启动闪现invalid的问题我也修复了(但是仍然没有测试过)。改动较大,应该没啥问题,但还是需要你测试下。


#58

貌似需要在mu4e-alert 之前加载。


#59

没有环境测试真的无法保证所有场景都没问题啊。又改了下,应该可以随时加载生效了。


#60

确实。可能我没描述清楚,现在要在 doom modeline 加载后执行一次 mu4e-alert-enable-mode-line-display,否则 modeline 显示的是 mu4e-alert 自带的提示,我想这应该是 add-advice 的原因吧。

对了,顺便请教下,为什么我把mu4e-alert-enable-mode-line-display写到 (use-package doom-modeline :config ....) 里面是没用的,而非要加在 doom-modeline-mode-hook里面才可以?对advice不熟悉。