doom-modeline, 左下角会经常出现 嫎
这个字,这个问题是怎么解决的?我用的是macos下的emacs,安装了cnfonts。
知道方法了:init.el文件的修改如下:
;;(cnfonts-enable) // 防止cnfonts自动启动
;; 如果用户觉得 cnfonts *太厚重*, 可以将下面
;; 一段 elisp 粘贴到 ~/.emacs 文件,然后保存,就不需要启
;; 动 cnfonts 来配置字体了。
;; -------
;; Auto generated by cnfonts
;; <https://github.com/tumashu/cnfonts>
(set-face-attribute
'default nil
:font (font-spec :name "-*-Monaco-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1"
:weight 'normal
:slant 'normal
:size 15.0))
(dolist (charset '(kana han symbol cjk-misc bopomofo))
(set-fontset-font
(frame-parameter nil 'font)
charset
(font-spec :name "-*-Hiragino Sans GB-normal-normal-normal-*-*-*-*-*-p-0-iso10646-1"
:weight 'normal
:slant 'normal
:size 18.0)))
//下面这段拷贝至上面的朋友
(defun +ng/better-font()
(interactive)
(if (display-graphic-p)
(progn
(set-face-attribute
'default nil
:font (font-spec :name "-PfEd-DejaVu Sans Mono-bold-normal-normal-*-*-*-*-*-m-0-iso10646-1"
:weight 'normal
:slant 'normal
:size 9.0))
(dolist (charset '(kana han symbol cjk-misc bopomofo))
(set-fontset-font
(frame-parameter nil 'font)
charset
(font-spec :name "-ADBO-思源黑体 CN-light-normal-normal-*-*-*-*-*-*-0-iso10646-1"
:weight 'normal
:slant 'normal
:size 11.0))))))
(defun +ng|init-font(frame)
(with-selected-frame frame
(if (display-graphic-p)
(+ng/better-font))))
(if (and (fboundp 'daemonp) (daemonp))
(add-hook 'after-make-frame-functions #'+ng|init-font))
谢谢楼上朋友的提示,谢谢。
Ein
2020 年1 月 8 日 06:59
42
doom-emacs, 平时显示icon正常,但是当使用leader key 唤出底部菜单时,icon便显示乱码。
这是bug吗?
本地测试没有这个问题。你可能需要问下doom-emacs
.
关于前天在 GitHub 上反馈的图标背景色不一致的 issue,非常感谢作者能够快速修复。不过在使用的时候还是有些疑问,放到 issue 里讨论觉得不太合适,就在论坛反馈一下。
首先是经过更新,在 vanilla emacs 使用完全正常,但是在 Doom 中使用时还是和之前一样。同时因为去掉了 inactive icon 这个 face,所以也不能通过 (custom-set-faces `(doom-modeline-icon-inactive ((t (:inherit mode-line-inactive)))))
解决。
不知道 Doom 对 doom-modeline 和 which-key 进行了哪些魔法 hack,尝试找了一下没找到。
所以,我觉得还是恢复 inactive icon 这个 face 比较好,这样起码 vanilla emacs 和 doom 中都能通过上面那条配置解决图标背景色的问题 。
另外,在 vanilla emacs 中 M-x 进行 tab 补全时,modeline 背景色不太对,不知道是 doom-themes 故意设计的,还是没有适配这个场景。
我没有用 doom,不知道 doom 内部还有什么设置。不过奇怪的是目前只有你一个人报告这个问题。建议你试试 which-key-setup-minibuffer
之类的,看看是否还有问题。
关于第二个问题,很奇怪的是补全操作焦点为何是在*Completions*
buffer 里。我再在本地重现下。
只有我报告这个问题,可能是因为在部分主题下(doom-one/light),图标背景色虽然与整体不一致,但是区别不是很明显,其他人没有注意或者是注意到了也没太在意。
而我也是因为 doom-one 用腻了换成 doom-dark+,这才发现这个问题。
在将 which-key 的弹出方式设为 minibuffer 后确实没有这个问题,因为没有弹出新的窗口,所以 modeline 一直是激活状态,不需要切换到 inactive 状态。
我怀疑跟 doom 内部的 popup buffer 机制有关。Centaur 中用的 shackle 没有问题。
第二个问题找到原因了,应该是 lib 函数兼容性问题。我马上提交一个 patch 。
C-h v face-remapping-alist
是什么?
你应该能从他的输出中找到线索!
输出结果是这样的:
face-remapping-alist is a variable defined in C source code.
Value in #<buffer init.el>
((mode-line-inactive solaire-mode-line-inactive-face mode-line-inactive)
(mode-line solaire-mode-line-face mode-line)
(header-line solaire-header-line-face header-line)
(org-indent solaire-org-hide-face org-indent)
(org-hide solaire-org-hide-face org-hide)
(hl-line solaire-hl-line-face hl-line)
(default solaire-default-face default))
可能是,Doom 内部为了管理弹出窗口自己写了一套机制,有很多 hack 配置。
我去 Discord 频道问一下 Doom 的作者这个问题。
当你需要用到mode-line的face的时候
他给你转到了 solaire-mode-line-face
如果你需要用到 mode-line-inactive
那么你得用 solaire-mode-line-inactive-face 替换
我先尝试将 solaire-mode 这个包禁用了,face-remapping-alist
的值现在是 nil
, modeline 图标背景色的问题没有变化。感觉和这个没有关系。
由于有兼容性问题,我 revert 了 commit,重新恢复了doom-modeline-icon-inactive
face。
昨天经过这个 patch 后,在 vanilla emacs 测试发现又变成之前那样了,which-key 激活时 modeline 上的图标不会隐藏,并且背景色不对。
committed 11:23AM - 17 Feb 20 UTC
刚才拉取最新的代码,配合 custom-set-faces 没有问题了,不过 flycheck 的图标背景色不对。
vanilla emacs有这个问题吗?
我想你是不是在加载 theme 前设置的doom-modeline-mode
.
上面那幅图是在 vanilla emacs 下测试的,刚才换了下 theme 和 doom-modeline 的加载顺序,还是会出现这个问题。
因为缺少一些细节,仍然无法重现你的问题。不过我想了个全新的方法,希望能彻底解决这个问题。已经提交了 pacth。
1 个赞