seagle0128 / doom-modeline Goto Github PK
View Code? Open in Web Editor NEWA fancy and fast mode-line inspired by minimalism design.
Home Page: https://seagle0128.github.io/doom-modeline/
License: GNU General Public License v3.0
A fancy and fast mode-line inspired by minimalism design.
Home Page: https://seagle0128.github.io/doom-modeline/
License: GNU General Public License v3.0
I updated to the last version for fix to #16 and I am now getting the error Symbol’s value as variable is void: evil-ex-start-word-search
. Looks like this was introduced in d9c49ac. From looking at the evil source code, evil-ex-start-word-search
is a function, not a variable. It certainly doesn't exist in my environment.
First and for all, this is awesome. This modeline works perfect out-of-the-box.
But I think I'm struggling since I'm using Fura Code from Nerd Fonts.
Nerd-fonts integrate all-the-icon fonts in 1 single font (at least I think they do). For me it might just be easier to use such a font, instead of several fonts.
Although I don't know if it's easy to do. Because it seems to me the NerdFonts are differently spread across the unicode private space and also the vertical align tends to be different.
How to set python version, in the line it says 2.7 but I use 3.6
If I have multiple buffers with the same name (e.g. multiple init.el
from different locations), buffer name in a modeline becomes dotfiles/.e/init.el[.emacs.d/init.el]
. It doesn't happen when I have a single init.el
buffer opened.
I think it's probably being added by uniquify, but I don't see such thing in ivy-switch-buffer
.
The only uniquify-related configuration I have is (setq uniquify-buffer-name-style 'forward)
.
I'm not sure whether it's a bug or feature, but is it possible to disable appending [...] to a buffer name in a modeline?
emacs 27.0.50
doom-modeline: HEAD
Hi, Thanks for your nice package.
Recently, I saw you introduce doom-mode-line is faster. I tried and it's very good. But I see an issue that inconveniencing to me.
I'm using doom-one for my emacs theme.
;; themes
(use-package doom-themes
:ensure t
:init (load-theme 'doom-one t))
;; modeline
(use-package doom-modeline
:ensure t
:init
(setq doom-modeline-buffer-file-name-style 'relative-from-project)
(setq doom-modeline-icon nil)
(setq doom-modeline-major-mode-icon nil)
(setq doom-modeline-minor-modes t)
:hook (after-init . doom-modeline-init))
I prefer emacs on terminal than GUI, as you see a screenshot, the git info has a color same as the background.
And I marked by mouse on the terminal
First of all: Thank you for this package. I basically tried all of the new "modern" mode-lines for Emacs over the recent years and usually went back to the classic mode-line quickly. Not so with doom-modeline; I like everything about it and I will stay with it as the true successor to the classic mode-line. :)
Emacs 26.1 introduced the variable column-number-indicator-zero-based
. When set to nil
, column-number-mode
shows 1
instead of 0
when point is on the leftmost column in a line.
This works as expected with the classic mode-line. Starting Emacs with doom-modeline enabled, however, column-number-mode
s value of the leftmost column is 0
, regardless of column-number-indicator-zero-based
s value.
I'm using Emacs 26.1 stable with the GTK3 toolkit, doom-modeline 20181206.1735
from MELPA with this setup:
(use-package doom-modeline
:ensure t
:hook (after-init . doom-modeline-init)
:init (setq doom-modeline-icon nil))
As the title sais, if the text-scale-mode-amount
has a negative value it doesn't appear in the modeline
Since there is an evil-state indicator, how about a god-mode indicator? #8
I have latest develop version of spacemacs and latest version of doom-modeline, Emacs version 25.2.2. In any file buffer I don't see name of current file and message buffer says:
Error during redisplay: (eval (doom-modeline-segment--buffer-info)) signaled (void-function file-local-name)
Looks like file-local-name
function is missing in my emacs version. I found that it was added long time ago - and its weird as it seams it was added in time before 25.2.2 release but when I define it, everything works:
(defun file-local-name (file)
"Return the local name component of FILE.
It returns a file name which can be used directly as argument of
`process-file', `start-file-process', or `shell-command'."
(or (file-remote-p file 'localname) file))
Not sure if you want to address this somehow, it is solved for me, but maybe others can hit it too.
As like this config: https://github.com/stardiviner/emacs.d/blob/develop/init/Emacs/init-custom-mode-line.el#L946
Can you add a segment for GitHub notifications? Also provide an option to switch between all notifications or participated notifications.
I used my custom mode-line for a few years, Now I found doom-modeline, because it is fast. I switched to doom-modeline now. BTW, honestly, doom-themes does not great on my machine. Colors seems not very same with screenshot. Don't know why.
Backtrace:
Debugger entered--Lisp error: (invalid-function (win (frame-selected-window)))
(win (frame-selected-window))()
doom-modeline-set-selected-window()
run-hooks(focus-in-hook)
handle-focus-in((focus-in #<frame Backtrace 0a079510>))
funcall-interactively(handle-focus-in (focus-in #<frame Backtrace 0a079510>))
call-interactively(handle-focus-in nil [(focus-in #<frame Backtrace 0a079510>)])
command-execute(handle-focus-in nil [(focus-in #<frame Backtrace 0a079510>)] t)
(use-package doom-modeline
:ensure t
:defer t
:hook (after-init . doom-modeline-init)
)
Windows 7
GNU Emacs 26.1 (build 1, i686-w64-mingw32)
it shows only the file name for all buffers
also, Is there a way to make it act like Project-name/uniquified-file-name ?
Running Spacemacs on Windows 10 with Emacs .
GNU Emacs 26.1 (build 1, x86_64-w64-mingw32) of 2018-05-30
Any time I open a file in Windows under the latest build I get the following: replace-regexp-in-string: Invalid regexp: "Invalid back reference"
. It appears to be due to how emacs handles Windows path seperators, but I'm not very good with elisp.
The last working version of doom-modeline I have is #1a2226b242453f44886943f091f21a82f6be435c
Debugger entered--Lisp error: (invalid-regexp "Invalid back reference")
string-match("^C:\\Users\\12722330A\\" "c:/Users/12722330A/.emacs.d/" 0)
replace-regexp-in-string("^C:\\Users\\12722330A\\" "~" "c:/Users/12722330A/.emacs.d/")
shrink-path--dirs-internal("c:/Users/12722330A/.emacs.d/" nil)
shrink-path-dirs("c:/Users/12722330A/.emacs.d/")
shrink-path-prompt("c:/Users/12722330A/.emacs.d/")
shrink-path-file-mixed("c:/Users/12722330A/.emacs.d/" "c:/Users/12722330A/.emacs.d/" "c:/Users/12722330A/.emacs.d/README.md")
doom-modeline--buffer-file-name("c:/Users/12722330A/.emacs.d/README.md" "~/.emacs.d/README.md" shrink)
doom-modeline-buffer-file-name()
doom-modeline-update-buffer-file-name()
run-hooks(find-file-hook)
after-find-file(nil t)
find-file-noselect-1(#<buffer README.md> "~/.emacs.d/README.md" nil nil "~/.emacs.d/README.md" (844424930135331 1812112669))
find-file-noselect("c:/Users/12722330A/.emacs.d/README.md" nil nil nil)
find-file("c:/Users/12722330A/.emacs.d/README.md")
dired-find-file()
funcall-interactively(dired-find-file)
call-interactively(dired-find-file nil nil)
command-execute(dired-find-file)
Thank you for maintaining this great addition to my workflow!
Hey, great modeline, I have an error every time I opened *.py file, can you help me?
I wonder it's because mac sed is different from linux sed
My config:
https://pastebin.com/c3V3deGT
Hello, I'm having crushing performance issues in Windows 10 with doom-modeline enabled. However, I also use it in Linux without any issues.
Took me a while to track down the issue because I had my gc-cons-threshold
turned up higher than the default. I had changed some things in my config and thought something I added was giving me intense lag, but it turned out to be me setting the gc-cons-threshold
back to the default, which exposed I had a different issue going on. Then I had to painstakingly comment out packages until I found what was causing it.
The issue is when I open a file and perform any movements Emacs will slow to the point of becoming unresponsive at times. Curiously, I don't have an issue in the Emacs Tutorial.
In Windows, my version of emacs was installed using MSYS2 as described here
This is GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
of 2018-05-30
A minimal Emacs config file can be used to verify the issue:
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)
(require 'doom-modeline)
(doom-modeline-init)
Here is a gif demonstrating the issue with the above minimal config. In the gif I'm holding down C-n
to move down and C-p
to move up. It's hard to see from this just how unresponsive it is to my pressing of the keys, but you can see it jumping around.
Hi, I just started using emacs, so this issue could well be specific to my configuration, but when editing remote files over ssh, movement and input feels very sluggish. When I disable the doom-modeline, there is no difference between performance on local files.
I'm really enjoying the package otherwise, thanks!
Hi,
I have been a very happy user of your package for a couple of months now. Thank you for providing this package!
Unfortunately, after upgrading my pacakages this morning, emacs completely broke down. I am on emacs version
GNU Emacs 26.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.22.30) of 2018-06-26
I have been able to track down what the issue is, and it seems to have been introduced in commit 69e3f08. Undoing the changes in this commit fixes all issues for me. Notably, executing the defaliases immediately disables emacs. I cannot change buffers, execute commands, or even edit files.
Could the changes from this commit be undone? Or would this impact emacs 25 users?
Thanks!
I pulled the latest version of doom modeline and I am now getting the error undefined function doom-modeline-fix-anzu-count
when ever I search. Removing the eval-when-compile
wrapper fixed the issue for me. I think the problem is if evil-anzu
has not been loaded when doom-modeline
is compiled then this function never gets defined.
doom modeline use this code to determine if it should add the mode-line-process. however when running a compilation-mode
buffer it will update mode-line-process
to show the exit status. this mode-line-process
does not satisfy the predicate stringp
resulting in nothing being added modeline. Instead, mode-line-process
looks like this
(#(":exit [0]" 0 9
(face compilation-mode-line-exit help-echo "Compilation finished"))
(" ["
(:propertize
(:eval
(int-to-string compilation-num-errors-found))
face compilation-error help-echo "Number of errors so far")
" "
(:propertize
(:eval
(int-to-string compilation-num-warnings-found))
face compilation-warning help-echo "Number of warnings so far")
" "
(:propertize
(:eval
(int-to-string compilation-num-infos-found))
face compilation-info help-echo "Number of informational messages so far")
"]"))
The following use-package
form gives me that error:
(use-package doom-modeline
:straight (doom-modeline :host github :repo "seagle0128/doom-modeline")
:hook (after-init . doom-modeline-init))
Error (use-package): doom-modeline/:catch: Cannot open load file: No such file or directory, ./data/data-alltheicons.el
I'm having an issue where the panel height is much taller then the height of the mode line itself. Any ideas what could be causing this?
Here is an example of what I mean.
Thanks!
Thanks for creating a package for doom-modeline!
Getting following error if using (setq doom-modeline-buffer-file-name-style 'file-name)
:
Error during redisplay: (eval (doom-modeline-format--main)) signaled (void-function active)
And this throws that error:
doom-modeline/doom-modeline.el
Lines 521 to 526 in 501a930
The function (active)
is void because it has been renamed to doom-modeline--active
Using the current version of doom-modeline completely breaks Emacs (i.e. Emacs is unusable) when you access your dotfile (SPC f e d); there's a Projectile "Switch to project" window that you can't move your cursor from or exit out of. (You have to kill -9
the emacs process in order to quit. :() Switching to the normal Spacemacs modeline fixes the issue.
If you turn on the debugger, there's a "Variable binding depth exceeds max-specpdl-size" error message, which might be helpful. I suspect it's either an issue with 3018171 or a9847ab, but I haven't looked too deeply into the issue.
Perhaps my previous issue is somehow relevant: #44.
With (setq doom-modeline-major-mode-icon t)
major mode icon is not in the center of the modeline:
Changing modeline height doesn't change icon position.
Hi seagle0128:
Thanks for extract the doom-modeline from doom-emacs.
With the view hours usage for it, I really loved the simple way and pure visualization experience of
this package, but I also found something which I want it to be hidden ---> the blue line segment
which holds the evil-search info or sth else.
+---------+-+------------------------------------------------------------------------+
|eyebrowse| | |
+---------+-+------------------------------------------------------------------------+
^
|
|
|
|
|
this blue segment
How can I hide it because that I didn't use evil and anzue, iedit or other windows number package?
(I've read the raw code, but without any thoughts for leading movables of actual action based on the elisp skill on the current stage of my emacs career.)
Hope for your help 😃
I think it would be great to see it somewhere near the filename
I get the following error when I launch Gnus:
doom-modeline--buffer-file-name: Wrong type argument: stringp, nil
I’ve noticed it happen when I start a new Emacs instance. I think
it happens if I launch Gnus before I open a file-visiting buffer
(e.g. my init.org).
Edit: it happens when there are no file-visiting buffers open and I launch Gnus.
It would be nice if the modeline would somehow indicate if you are in insert mode or normal mode when using evil. A simple color change would suffice.
As in the topic, same list that the default modeline or spaceline shows. The one that can be modified with packages like delight.
With truncate-with-project
style buffer name /ssh:my-connection:/home/wedens/projects/myproject/core/src/main/scala/abcd/package.scala
becomes myproject//p/m/c/s/m/s/a/package.scala
With default truncate-upto-project
it becomes: /s/h/w/p/myproject//home/wedens/projects/myproject/core/src/main/scala/abcd/package.scala
.
relative-from-project
style: /home/wedens/projects/myproject/core/src/main/scala/abcd/package.scala
.
truncate-except-project
style: /s/h/w/p/myproject//p/m/c/s/m/s/a/package.scala
.
doom-modeline-project-root
result for the buffer: /ssh:my-connection:/home/wedens/projects/myproject/
, so project root is detected correctly.
doom-modeline 58eb5c3
emacs 27.0.50
local and remote OS: GNU/Linux
Hi, thanks for providing this nice package outside of doom-emacs! I was able to install and run it successfully, but for some reason I don't see git integration which is present in screenshots. This, for example, is what's on my modeline with default configuration:
Just in case, my doom-modeline code:
(use-package doom-modeline
:ensure t
:defer t
:hook (after-init . doom-modeline-init))
What am I missing?
Wanted to toss my hat in the ring to help on the project. If you have any TODOs or anything you can add, I'd be happy to contribute some time :)
Hey there!
First of all, I wanted to thank you for extracting this modeline from DOOM and maintaining it, it's great :)
I wanted to make a suggestion, if you don't mind diverging from DOOM: I know this modeline is supposed to be minimalistic, so it selects only the information it needs to keep it nice and tidy.
The problem is that some base modes like display-time-mode
completely disappear. After investigating, this mode uses global-mode-string
, which in my case is empty except for the time. So, including it in your modeline wouldn't make a difference for the people that don't want time, but would make it possible to have it.
Another example is the page number in pdf-view
, which uses mode-line-position
. Maybe these should be treated in separate issues, I don't know. In the package, instead of using mode-line-position
, you use " %l:%c %p "
.
My two suggestions together could look more or less like this:
;; For the time string and whatever uses global-mode-string
(doom-modeline-def-segment global
(when global-mode-string '(" " global-mode-string)))
;; For the position
(setq-default mode-line-position
'((line-number-mode
(column-number-mode
(column-number-indicator-zero-based " %l:%c" " %l:%C")
" %l")
(column-number-mode (column-number-indicator-zero-based " :%c" " :%C")))
(mode-line-percent-position (" " mode-line-percent-position))
(:eval (when (or line-number-mode mode-line-percent-position column-number-mode) " "))))
(doom-modeline-def-segment buffer-position
'(" " mode-line-position))
;; Update the setups accordingly
(doom-modeline-def-modeline main
(workspace-number window-number bar matches " " buffer-info buffer-position " " selection-info)
(buffer-encoding major-mode vcs flycheck global))
(doom-modeline-def-modeline special
(window-number bar matches " " buffer-info-simple buffer-position " " selection-info)
(buffer-encoding major-mode flycheck global))
(doom-modeline-def-modeline project
(window-number bar buffer-default-directory)
(major-mode global))
(doom-modeline-def-modeline media
(window-number bar " %b ")
(media-info major-mode global))
This makes it automatically compatible with modes like pdf-view
, and also makes it possible to turn column-line-mode off, for example. Will also display the time, when enabled.
If I find-file directly to ~/mymodule/project.clj, I get
cl-no-applicable-method: No applicable method: project-roots, (clojure . "~/mymodule/")
but if I navigate to the project directory dired and select the project.clj from there it starts working.
Versions: emacs 26.1, doom-modeline 20181130
there is no indicator of the current input method.
C-
Enable or disable use of the selected input method (toggle-input-method).
in the default mode-line this indicator is present
Hey, thanks a lot for your great work.
I am experiencing the same issue as explained here, even though I am not using spacemacs.
Could you take a look at it?
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
find-file-name-handler(nil process-file)
process-file("/bin/zsh" nil t nil "-c" "python --version 2>&1 | cut -d' ' -f2 | sed -n '1p'")
shell-command-to-string("python --version 2>&1 | cut -d' ' -f2 | sed -n '1p'")
doom-modeline-update-env()
run-hooks(find-file-hook)
after-find-file(t t)
find-file-noselect-1(#<buffer test.py> "~/test.py" nil nil "~/test.py" nil)
find-file-noselect("/home/verf/test.py" nil nil nil)
find-file("/home/verf/test.py")
#f(compiled-function (candidate) "Open file CANDIDATE or open helm marked files in separate windows.\nCalled with one prefix arg open files in separate windows in a\nvertical split.\nCalled with two prefix arg open files in background without selecting them." #<bytecode 0xf3ba11>)("/home/verf/test.py")
apply(#f(compiled-function (candidate) "Open file CANDIDATE or open helm marked files in separate windows.\nCalled with one prefix arg open files in separate windows in a\nvertical split.\nCalled with two prefix arg open files in background without selecting them." #<bytecode 0xf3ba11>) "/home/verf/test.py")
helm-find-file-or-marked("/home/verf/test.py")
helm-execute-selection-action-1()
helm-execute-selection-action()
helm-internal(helm-source-find-files "/home/verf/" "Find files or url: " nil nil "*helm find files*" nil nil nil)
apply(helm-internal (helm-source-find-files "/home/verf/" "Find files or url: " nil nil "*helm find files*" nil nil nil))
helm(helm-source-find-files "/home/verf/" "Find files or url: " nil nil "*helm find files*" nil nil nil)
apply(helm (helm-source-find-files "/home/verf/" "Find files or url: " nil nil "*helm find files*" nil nil nil))
helm(:sources helm-source-find-files :input "/home/verf/" :case-fold-search smart :preselect nil :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*")
helm-find-files-1("/home/verf/" nil)
helm-find-files(nil)
funcall-interactively(helm-find-files nil)
call-interactively(helm-find-files nil nil)
command-execute(helm-find-files)
Hi, recently I encountered a problem when open or create a python file. At first I thought it due to python-mode or lsp-mode, and then I commented out all of my config and finaly found out it due to doom-modeline.
I'm a newbie to emacs and it bother me a lot. Here is my emacs.d, and here is the config of modeline.
I also found that when i opened the exist python file in git repo, every thing is ok. This problem just happened when open single python file not in git repo directory or create a new file.
Notice some padding on the top side.
I've tried with different fonts (Fantasque Sans Mono, Fira Code). all-the-icons fonts are installed with all-the-icons-install-fonts
. Font size is 16.
If I set modeline height to >= 40 or set font size to <= 10, the problem goes away.
doom-modeline revision: 781ce1b
emacs: 26.1
The evil visual block modeline indicator doesn't appear when C-v
is pressed. But it does appear when o
is pressed, which moves the cursor to the other end of the selection.
C-x b
test
<return>
a
C-v
The modeline should show: 1x1B
The modeline doesn't indicate that there is an active selection, even though the minibuffer shows:
-- VISUAL BLOCK --
When o
is pressed, then the 1x1B
indicator appears on the modeline.
Pressing C-x SPC
shows the block indicator on the modeline instantly.
Emacs also seems to have issues with detecting an evil visual block selection. Because when a visual block selection is started C-v
then both the Emacs toolbar copy button and the edit menu > copy entry are disabled. They become enabled when o
is pressed.
(both packages were installed from melpa)
doom-modeline 20180911.941 a476d58
evil 20180914.1216
Emacs 26.1
Windows 10 Version 1803
I have a problem, where the mode-line only is visible in buffers not associated with files (e.g. scratch, dired). As soon as i open an existing file, the modeline completely disappears.
I tried removing modules from my .emacs, but to no avail. It doesn't work with the following .emacs:
`
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives '("ORG" . "http://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("MELPA STABLE" . "http://stable.melpa.org/packages/"))
(add-to-list 'package-archives '("MELPA" . "http://melpa.org/packages/"))
(add-to-list 'package-archives '("MARMALADE" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("GNU ELPA" . "http://elpa.gnu.org/packages/"))
(setq package-archive-priorities
'(("ORG" . 10)
;;("MELPA STABLE" . 7)
("GNU ELPA" . 5)
;;("MARMALADE" . 2)
("MELPA" . 9)))
(package-initialize)
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(eval-when-compile
(require 'use-package))
(setq use-package-always-ensure t)
(require 'bind-key)
;;; Use-package
(use-package projectile)
(use-package shrink-path)
(use-package eldoc-eval)
(load "~/.emacs.d/doom-modeline.el")
(require 'doom-modeline)
(+doom-modeline|init)
`
(also, the package is not available on Melpa yet)
Hey,
Requiring doom-modeline gives me these errors:
(require 'doom-modeline)
Debugger entered--Lisp error: (void-function eldoc-in-minibuffer-mode)
eldoc-in-minibuffer-mode(1)
byte-code("\301\020\302\303!\207" [eldoc-in-minibuffer-show-fn doom-modeline--show-eldoc eldoc-in-minibuffer-mode 1] 2)
require(doom-modeline)
eval((require 'doom-modeline) nil)
elisp--eval-last-sexp(nil)
eval-last-sexp(nil)
funcall-interactively(eval-last-sexp nil)
#<subr call-interactively>(eval-last-sexp nil nil)
apply(#<subr call-interactively> eval-last-sexp (nil nil))
call-interactively@ido-cr+-record-current-command(#<subr call-interactively> eval-last-sexp nil nil)
apply(call-interactively@ido-cr+-record-current-command #<subr call-interactively> (eval-last-sexp nil nil))
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
I did some investigation:
There is no such a function eldoc-in-minibuffer-mode in eldoc-eval.el
because the downloaded eval file is an older version of it!
Even though it is marked to download 0.1 version of eldoc-eval!
gist with the downloaded eldoc-eval file: https://gist.github.com/j3kyl/9374851dfb7a59610648a0d2b19f62a4
Emacs 26.1
Fedora
I use evil-search. When I do a search in one buffer then switch to the other, there is still anzu modeline segment with results (index, matches count) from the previous buffer.
Steps to reproduce:
(setq evil-search-module 'evil-search)
/
for searchdoom-modeline 88a1096
Since doom-modeline already supports some evil features, how about an evil-state indicator?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.