Blog | Mastodon | Github | Gitlab | Sourcehut |
---|
tarsius / minions Goto Github PK
View Code? Open in Web Editor NEWA minor-mode menu for the mode line
License: GNU General Public License v3.0
A minor-mode menu for the mode line
License: GNU General Public License v3.0
Blog | Mastodon | Github | Gitlab | Sourcehut |
---|
Hi!
I just updated to version minions-20180306.5
from minions-20180227.1031
and now it does not work anymore. By not working I mean it just shows all the minor modes directly in the mode line :)
My setup:
(use-package minions
:init
(setq minions-mode-line-lighter "⚇")
(setq minions-direct '(flycheck-mode))
:config
(minions-mode 1))
Should I do something differently in my setup now?
Hi @tarsius
First of all, thanks for this fantastic package!
I was trying to set up the menu symbol in the modeline as a hamburguer-like unicode character with three bars, which is mentioned somewhere else (https://www.fileformat.info/info/unicode/char/2630/index.htm). This happens to add approximately 2 seconds to my startup time, which seems bizarre. Interestingly, ESUP (https://github.com/jschaf/esup) doesn't pick this delay up. Other more common unicode symbols (e.g. emojis) do not have that effect.
For reference, I am using a self-compiled emacs 29.1 with Roboto Mono.
Probably not a bug, or nothing can be done about it (e.g. the font does not contain the glyph and it needs to be looked-up at startup). In that case, please feel free to close.
Hi is there anyway to have minions display the current active python virtualenv? Just that I prefer to be aware what python environment I'm working in at a glance and the same for projectile projects. Thanks.
Please indicate in README.
Take for example glasses-mode
. This mode is not loaded by default in my Emacs configuration but I would still like for it to appear in the minions menu. Adding it to minions-available-modes
only makes glasses-mode
display if glasses
is not loaded.
Thank you very much. I've just removed 51 lines of my init.el file :-).
It seems that minions can temporarily display minor modes in Magit:
I wonder if I can achieve the same thing for multiple cursors. Without minions-mode
when there are several cursors active the modeline displays count:
But with minions-mode
turned on I loose this useful metric completely. It helps me see when there are cursors offscreen and when cursors overlapping.
If you summon the minions menu just to check which minor modes are on, and then click off of the menu to exit, it reports Quit
and dings.
Hi @tarsius,
Thanks for the great package!
I am failing to change the face of the major mode name (mode-name
) inserted inside the minions-mode-line-modes
object. A propertize
affecting minions-mode-line-modes
does not do the job, since mode-line
is already under a propertize
, and they cannot be nested. So I end up with something similar to what was found in #32, but without using any mode-line modification package.
Would if be possible to add and expose a custom face for the major mode name, or, alternatively, an option to remove it from the minions-mode-line-modes
so that its face can be changed separately? I may be able to write a PR for the 2nd case, though my elisp is not very good at all and it would need some review.
Hi,
thanks for this package, very handy to reduce clutter in the mode line.
I configured it like this:
(use-package minions
:ensure t
:init (minions-mode))
However, when clicking on the ;-)
indicator, I get this error:
Debugger entered--Lisp error: (void-function semantic-minor-modes-format)
documentation(semantic-minor-modes-format t)
minions--documentation(semantic-minor-modes-format)
minions--define-help((keymap (super-save-mode menu-item "super-save-mode" #f(compiled-function () (interactive nil) #<bytecode 0x1bd579d>) :help "A minor mode that saves your Emacs buffers when they lose focus.") (which-key-mode menu-item "which-key-mode" #f(compiled-function () (interactive nil) #<bytecode 0x1bd577d>) :help "Toggle which-key-mode.")) semantic-minor-modes-format)
minions--help-menu()
minions-minor-modes-menu()
funcall-interactively(minions-minor-modes-menu)
call-interactively(minions-minor-modes-menu nil nil)
command-execute(minions-minor-modes-menu)
It seems that if minions-mode doesn't detect that it's substitution of the mode-line-format resulted in any changes, it throws an error. I see this generally during config dev when manually reloading part of my config which causes minion-mode to run via hook. Since it's already run once, the mode-line-format already has the necessary changes.
I'm not sure yet why this bit of code is actually used, what does it matter if the mode-line-format already has the substitutions you expect to make? Could it just be a message instead?
I got Minons working in Powerline by following your advise as far I was able to understand it as a non-coder. Now the only thing I could not use is minions-direct. When I enable it, it causes the major-mode button shown by Minions to become one with the modes I specified in minions-direct. When I press mouse-1 on the button it throws an error. Any idea how to fix it?
The problem:
(The clipboard unicode-symbol is the "delighted" projectile-mode, same result without "delighting")
My use-package minions config:
(use-package minions
:after
(powerline)
:config
(setq minions-mode-line-lighter "🤓")
(setq minions-mode-line-delimiters nil)
; (setq minions-direct '(flycheck-mode projectile-mode))
(minions-mode))
My powerline-theme:
(defun my-powerline-theme ()
"Setup my powerline theme"
(interactive)
(setq-default mode-line-format
'("%e"
(:eval
(let* ((active (powerline-selected-window-active))
(mode-line-buffer-id (if active 'mode-line-buffer-id 'mode-line-buffer-id-inactive))
(mode-line (if active 'mode-line 'mode-line-inactive))
(face0 (if active 'powerline-active0 'powerline-inactive0))
(face1 (if active 'powerline-active1 'powerline-inactive1))
(face2 (if active 'powerline-active2 'powerline-inactive2))
(separator-left (intern (format "powerline-%s-%s"
(powerline-current-separator)
(car powerline-default-separator-dir))))
(separator-right (intern (format "powerline-%s-%s"
(powerline-current-separator)
(cdr powerline-default-separator-dir))))
(lhs (list
(powerline-raw "%*" face1 'l)
(when powerline-display-buffer-size
(powerline-buffer-size face1 'l))
(powerline-raw " " face1)
(funcall separator-left face1 face2)
(when powerline-display-mule-info
(powerline-raw mode-line-mule-info face2 'l))
(powerline-raw " " face2)
(funcall separator-left face2 face0)
(powerline-buffer-id `(mode-line-buffer-id ,face0))
(when (and (boundp 'which-func-mode) which-func-mode)
(powerline-raw which-func-format face0 'l))
(powerline-raw " " face0)
(funcall separator-left face0 face2)
(when (and (boundp 'erc-track-minor-mode) erc-track-minor-mode)
(powerline-raw erc-modified-channels-object face2 'l))
(when (and (boundp 'evil-mode) evil-mode)
(powerline-raw evil-mode-line-tag face2 'l))
(powerline-raw " " face2)
(funcall separator-left face2 face1)
(powerline-process face1)
(powerline-raw minions-mode-line-modes face1 'l)
(powerline-raw " " face1)
(funcall separator-left face1 face2)
(powerline-raw " " face2)
(powerline-vc face2 'l)
(funcall separator-left face2 face1)
(powerline-raw mode-line-position face1 'l)
(powerline-raw " " face1)
(funcall separator-left face1 face2)
))
(rhs (list
(funcall separator-right face2 face1)
(powerline-raw " " face1)
(powerline-raw (symbol-name buffer-file-coding-system) face1 'r)
(funcall separator-right face1 face0)
(powerline-raw mode-line-misc-info face0 'r)
(funcall separator-right mode-line face1)
)))
(concat (powerline-render lhs)
(powerline-fill face2 (powerline-width rhs))
(powerline-render rhs)))))))
I cannot find which font override I'm missing, but I can't get the area below the diagonal strokes to match the active tab's colour. Here's a screenshot that will hopefully explain it better:
Can you think of why that would be? Sorry for not providing much but I'm not very good with the under-the-hood parts of Emacs.
I'm using Solarized Light with the instructions in the README. Emacs version is:
GNU Emacs 26.0.50 (build 2, x86_64-apple-darwin16.4.0, NS appkit-1504.81 Version 10.12.3 (Build 16D32)) of 2017-09-13
.
Thanks!
I'm not sure if it's mentioned somewhere, but I couldn't find it. I'd love to hide 99% of my minor modes with minion, but keep modes like "projectile" or "lsp" visible. This is my attempt so far:
(use-package minions
:config
(minions-mode +1)
(add-to-list 'minions-whitelist '(projectile-mode))
(add-to-list 'minions-whitelist '(lsp-mode)))
First of thanks for all your efforts in making this package. I've tried everything I know to display the git branch in the modeline but have failed so far. Below is my current setting for both Minions
and Moody
hoping you can spot something that I've missed.
;; A minor-mode menu for the mode line
(use-package minions
:ensure t
:config
(setq
minions-mode-line-lighter "[+]"
minions-direct '(flycheck-mode pyvenv-mode))
(minions-mode 1))
;; Tabs and ribbons for the mode line
(use-package moody
:ensure t
:config
(setq x-underline-at-descent-line t
moody-mode-line-height 25
moody-slant-function #'moody-slant-apple-rgb)
(moody-replace-mode-line-buffer-identification)
(moody-replace-vc-mode))
I have powerline installed, and when I do (minions-mode 1)
, I get an error "Cannot turn on minions mode". Is this to be expected?
btw, I think the theme / modeline in the screenshot is very beautiful. Would you mind sharing which theme you're using and how you're setting up the modeline to look that fabulous? Cheers!
For some reason minions-mode doesn't work in scratch buffers for me, even if I disable/re-enable it, it doesn't take effect.
Hi, minions
is compatible with doom-modeline
now. Please refer to seagle0128/doom-modeline#70.
Config:
(setq doom-modeline-minor-modes t)
(minions-mode 1)
I think https://github.com/tarsius/minions/wiki should be updated.
You used setq-default
in minor mode definition. That doesn't change current buffer's mode-line-format. Is there any reason for that?
Line 112 in acac7fb
When I try to autoload minions like this:
(use-package minions
:defer 2
:config (minions-mode 1))
Mode-line doesn't change if I have opened a buffer before autoload take place.
(minions-mode 1)
did not appear to be working for me because I modified my mode-line
via customize
and start my emacs as a daemon using emacsclient -a ""
.
I presume that setq-default
in the define-minor-mode
is not compatible with customize
. I'm not sure what the solution is. I'm out of my depth trying to work out what would behave better default-set-variable
wasn't it.
Obviously I can work around it by not using customize. Thank you for the package. Not only does it clean up my modeline it speeds up my startup quite significantly as I was using delight
which seems remarkably slow.
Unfortunately frameshot
doesn't support that yet.
ERC (IRC client for Emacs) provides a minor mode (erc-track-minor-mode
) that displays an indicator on the modeline when there is some activity in one of its hidden buffers, for example (note the [#]
):
-UUU:@----F2 *scratch* All (1,0) [#] (Fundamental Z W) ----------
With minions said indicator disappears:
-UUU:@----F2 *scratch* All (1,0) (Fundamental ···) ----------
Is this a bug or is there anything I can do to make it coexist with minions?
Is there a way to apply minions, but allow at least Projectile to show the project name, or something similar? The modeline currently has file name and git branch, but not the project or enclosing directory.
It can be reproduced by adding overwrite-mode
to minions-prominent-modes
:
(setq minions-prominent-modes (list 'overwrite-mode))
The change that triggered such behaviour is this one. Restoring it to (memq (car mode) minions-prominent-modes))
fixes the issue.
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.