doomemacs/modules/ui/modeline
Henrik Lissner ad6a3d0f33
refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
..
+light.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
autoload.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
config.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
packages.el refactor: deprecate featurep! for modulep! 2022-08-14 20:43:35 +02:00
README.org revert: fix(docs): set mode in file-local vars 2022-08-07 19:08:07 +02:00

:ui modeline

Description   unfold

This module provides an Atom-inspired, minimalistic modeline for Doom Emacs, powered by the doom-modeline package (where you can find screenshots).

Module flags

+light
Enable a lighter, less featureful version of the modeline that does not depend on doom-modeline, which has performances issues in some cases.

Hacks

No hacks documented for this module.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module has no external requirements.

TODO Usage

🔨 This module's usage documentation is incomplete. Complete it?

Hiding the modeline

  • You can use M-x hide-mode-line-mode RET to hide modeline for the current buffer.
  • Also, there is global-hide-mode-line-mode for globally hiding modeline. You can just add (global-hide-mode-line-mode) into =~/.doom.d/config.el~.
  • hide-mode-line-excluded-modes can be set for preventing global-hide-mode-line-mode hiding modeline for buffers with the corresponding major modes.

TODO Switching the modeline and header line

TODO Configuration

🔨 This module's configuration documentation is incomplete. Complete it?

TODO Changing the default modeline

TODO Activating a format

TODO Defining a modeline format

TODO Defining a modeline segment

TODO Extracting Doom's modeline into your config

Troubleshooting

Report an issue?

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.

Icons in my modeline look strange

  1. Check whether all-the-icons are installed. Run M-x all-the-icons-install-fonts to install the resource fonts. Note that all-the-icons only support GUI. See all-the-icons for details.
  2. cnfonts will conflict with all-the-icons. You can refer the following workaround:

    ;; See https://github.com/seagle0128/doom-modeline/issues/278#issuecomment-569510336
    ;; Add to $DOOMDIR/packages.el
    (package! cnfonts)
    ;; Add to $DOOMDIR/config.el
    (add-hook 'after-setting-font-hook #'cnfonts-set-font)
  3. If all-the-icons fonts are installed while the icons cannot display correctly, please install the non-free font Symbola. This issue usually occurs on Windows.

The right side of the modeline is cut off

I believe the consensus is: this is due to oversized icons, i.e. a font issue. Some possible solutions:

  1. Tweak all-the-icons-scale-factor (1.2 by default): (setq all-the-icons-scale-factor 1.1)
  2. Add some padding to the modeline definition:

    (after! doom-modeline
      (doom-modeline-def-modeline 'main
        '(bar matches buffer-info remote-host buffer-position parrot selection-info)
        '(misc-info minor-modes checker input-method buffer-encoding major-mode process vcs "  "))) ; <-- added padding here
  3. Use another font for the mode line (or a different :height) (source)

    (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)

  1. 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 as width 1 or width 3.

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

🔨 This module's appendix is incomplete. Write more?

Autodefs

  • def-modeline-format! NAME LEFT &optional RIGHT
  • def-modeline-segment! NAME &rest REST
  • set-modeline! NAME &optional DEFAULT

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

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