:ui modeline
Snazzy, Atom-inspired modeline, plus API
1. Description
This module provides an Atom-inspired, minimalistic modeline for Doom Emacs, powered by the doom-modeline package (where you can find screenshots).
1.1. Maintainers
1.2. Module flags
- +light
- Enable a lighter and faster, but less featureful, version of the modeline that
does not depend on
doom-modeline
.
1.3. Packages
1.4. Hacks
No hacks documented for this module.
2. Prerequisites
This module has no external prerequisites.
3. TODO Usage
This module’s usage documentation is incomplete. Complete it?
3.1. TODO Hiding the modeline
3.2. TODO Switching the modeline and header line
4. TODO Configuration
This module’s configuration documentation is incomplete. Complete it?
4.1. TODO Changing the default modeline
4.2. TODO Activating a format
4.3. TODO Defining a modeline format
4.4. TODO Defining a modeline segment
4.5. TODO Extracting Doom’s modeline into your config
5. Troubleshooting
5.1. Where are my minor modes?
I rarely need to know what minor modes are active, so I removed them. M-x
doom/describe-active-minor-mode
was written to substitute for it.
5.2. TODO Icons in my modeline look strange
5.3. TODO The right side of the modeline is cut off
The consensus is: this is due to oversized icons, i.e. a font issue. Some possible solutions:
- Tweak
all-the-icons-scale-factor
(1.2
by default):(setq all-the-icons-scale-factor 1.1)
Add some padding to the modeline definition:
Use another font for the mode line (or a different
:height
):(custom-set-faces! '(mode-line :family "Noto Sans" :height 0.9) '(mode-line-inactive :family "Noto Sans" :height 0.9))
(Mentioned in #1680, #278 and seagle0128/doom-modeline#334)
Change the width of icon characters in
char-width-table
:(add-hook! 'doom-modeline-mode-hook (let ((char-table char-width-table)) (while (setq char-table (char-table-parent char-table))) (dolist (pair doom-modeline-rhs-icons-alist) (let ((width 2) ; <-- tweak this (chars (cdr pair)) (table (make-char-table nil))) (dolist (char chars) (set-char-table-range table char width)) (optimize-char-table table) (set-char-table-parent table char-table) (setq char-width-table table)))))
If this doesn’t help, try different values for
width
such as1
or3
.
6. Appendix
6.1. Autodefs
def-modeline-format! NAME LEFT &optional RIGHT
def-modeline-segment! NAME &rest REST
set-modeline! NAME &optional DEFAULT
6.2. Variables
- doom-modeline-height
- doom-modeline-bar-width
- doom-modeline-buffer-file-name-style
- doom-modeline-icon
- doom-modeline-major-mode-icon
- doom-modeline-major-mode-color-icon
- doom-modeline-buffer-state-icon
- doom-modeline-buffer-modification-icon
- doom-modeline-minor-modes
- doom-modeline-enable-word-count
- doom-modeline-buffer-encoding
- doom-modeline-indent-info
- doom-modeline-checker-simple-format
- doom-modeline-vcs-max-length
- doom-modeline-persp-name
- doom-modeline-lsp
- doom-modeline-github
- doom-modeline-github-interval
- doom-modeline-env-version
- doom-modeline-mu4e
- doom-modeline-irc
- doom-modeline-irc-stylize
6.3. Faces
- doom-modeline-buffer-path
- doom-modeline-buffer-file
- doom-modeline-buffer-modified
- doom-modeline-buffer-major-mode
- doom-modeline-buffer-minor-mode
- doom-modeline-project-parent-dir
- doom-modeline-project-dir
- doom-modeline-project-root-dir
- doom-modeline-highlight
- doom-modeline-panel
- doom-modeline-debug
- doom-modeline-info
- doom-modeline-warning
- doom-modeline-urgent
- doom-modeline-unread-number
- doom-modeline-bar
- doom-modeline-inactive-bar
- doom-modeline-evil-emacs-state
- doom-modeline-evil-insert-state
- doom-modeline-evil-motion-state
- doom-modeline-evil-normal-state
- doom-modeline-evil-operator-state
- doom-modeline-evil-visual-state
- doom-modeline-evil-replace-state
- doom-modeline-persp-name
- doom-modeline-persp-buffer-not-in-persp