> Because minor-mode-alist is for displaying an indication of a minor mode in the mode line? Right, but there doesn't appear to be any other more reliable way to know what minor mode is active in a buffer. An alternative I can think of is see if there's buffer local variable that also exists in `minor-mode-list`, but that's still not reliable, hence we have these `desktop-minor-mode-*` vars. The fundamental reason appears to be desktop.el needs an efficient and reliable way to know what buffer local variables are minor modes, since `minor-mode-list` is just a global list of loaded minor-modes, `minor-mode-alist` is as close as you get. If my patch make it in, it will not be the first minor mode in emacs that defines an empty string lighter. `xref`, `linum`, `erc-track` and `rcirc` all do this. There are even more examples in the wild. I have at least 8 other packages in my ~/.emacs.d/elpa that do the same thing. I agree, however, that this is an abuse. There should be perhaps some buffer local variable called `buffer-minor-modes`, but I think this should be a separate issue and a new feature, so perhaps wait til after 26.1? On Fri, Jan 5, 2018 at 3:16 PM, Eli Zaretskii wrote: > > From: Jimmy Yuen Ho Wong > > Date: Fri, 05 Jan 2018 15:02:21 +0000 > > Cc: 29972@debbugs.gnu.org > > > > Actually I would question why we have minor modes not added to > minor-mode-alist at all just because both > > lighter and keymap are missing. > > Because minor-mode-alist is for displaying an indication of a minor > mode in the mode line? > > > What do you think about changing define-minor-mode? > > IMO, a better idea is to find out why desktop.el requires a minor mode > to be in minor-mode-alist before it saves it. Is there really a > justification for that? >