doom-modeline icon indicating copy to clipboard operation
doom-modeline copied to clipboard

Support specifying both header-line and mode-line independently

Open evertedsphere opened this issue 6 years ago • 4 comments

Describe the solution you'd like

Something like:

(doom-modeline-def-modeline 'my-simple-line
  ... ...)

(doom-modeline-def-headerline 'my-simple-headerline
  ... ...)

(defun setup-custom-doom-lines ()
   (doom-modeline-set-modeline 'my-simple-modeline 'default)
   (doom-modeline-set-headerline 'my-simple-headerline 'default))
(add-hook 'doom-modeline-mode-hook 'setup-custom-doom-lines)

Describe alternatives you've considered

I've tried hacking this in myself, e.g. in Doom Emacs with (package! doom-modeline) (and without the modeline module), I attempted to first make a setup with a headerline and no modeline:


(use-package! doom-modeline
  :config
  (setq doom-modeline-icon nil)

  (doom-modeline-def-modeline
    'evsph/modeline
    `(
      ,(propertize "❈" 'face 'doom-modeline-urgent)
      buffer-info buffer-position remote-host
      minor-modes major-mode
      process vcs lsp checker))

  (setq-default header-line-format
                (list "%e"
                      '(:eval (doom-modeline-format--evsph/modeline)))))

which kind of works but doesn't react to things like my recording evil macros or generally anything hook-dependent, I guess. I'm very new to Emacs so I'm not sure how to work with advice and such.

Additional context Add any other context or screenshots about the feature request here.

evertedsphere avatar Mar 28 '20 19:03 evertedsphere

doom-modeline is designed for beautifying the mode-line, while not header-line. I don't know what do you want to do exactly? Maybe you can provide some examples.

Well, since the formats of mode-line and header-line are the same, you are definitely able to define the mode-line and set to the header-line, including recording evil macros or something like that. e.g. (setq-default header-line-format (doom-modeline-set-main-modeline)). What you need to do is defining the segment and modeline.

seagle0128 avatar Mar 29 '20 09:03 seagle0128

Here is what I have now:

image

I've put a few static (i.e. not reacting to things like changes of Evil state) segments in my header-line: date, time, and currently playing (using libmpdel).

https://github.com/evertedsphere/.doom.d/blob/255af27839e5af9a34c7c54e757cf444055908ef/config.el#L42

evertedsphere avatar Mar 29 '20 09:03 evertedsphere

Basically, I'd like some way for doom-modeline to support beautification of the header-line as well. :)

evertedsphere avatar Mar 29 '20 09:03 evertedsphere

matches segment is for searching and anzu, etc.

seagle0128 avatar Mar 29 '20 09:03 seagle0128