Add all theme packages defined in dotspacemacs-themes to the variable
dotspacemacs-additional-packages and delay the application of user theme at the
end of startup (only when user theme cannot be applied at the very beginning
of Emacs startup).
This has nice properties:
- we leverage the layer system to handle the theme packages installation and
cleanup.
- theme packages are automatically owned by the dotfile preventing them from
being garbage collected.
- the protected package mechanism is now obsolete since themes were the last
packages using it. This mechanism may be removed in a near future.
Thanks to TheBB for the initial idea.
Distribute spacemacs-theme with Spacemacs so we don't need to download the
package of the theme at startup. It was delaying the display of the home buffer.
Now Spacemacs fallback to spacemacs-dark theme if the user theme cannot be
applied. Spacemacs then tries to install and reapply the user theme. If
successful, at the subsequent startups the user theme is applied right away
instead of spacemacs-dark. If the installation failed then we display a warning
informing the user and suggesting some actions.
There is now no package left to be installed manually at the start of Spacemacs.
Choose to inherit from face lazy-highlight instead of region.
Ideally a theme should not set lazy-highlight to the same face as
region.
Also move some function to funcs.el and remove some empty lines.
It's not possible to get full backtraces in these instances when an
error is signaled, and I think we should generate full backtraces when
debug-on-error is enabled as a general rule.
I had to make this change at one place to track down the root of problem
2 in #5200.
If we select a theme after spacemacs' startup, then
`spacemacs--cycle-themes` doesn't have the first theme from
`dotspacemacs-themes` so we start over.
Helm seems to treat "!" specially in pattern matching, so having a ! in
the pattern string when traversing directories is problematic. This
change fixes#2737, because as far as I can tell "+" has no special
meaning in a helm pattern.
Of course, we can choose a different character, but I'm fond of "+" as
representing "more layers here".
Now the user should use `SPC f e h` helm-spacemacs.
This is due to the fact that spacemacs layer is now a regular layer
stored in the "layers" directory.
Once all extensions were moved from "extensions" to "local",
spacemacs was no longer able to find the solarized themes.
Thanks to @TheBB for helping narrow this down!
Closes#2628
- Use `~` marker to represent key bindings. The `~` and `=` markers are
equivalent in Emacs: `=` uses `org-verbatim verbatim` faces, while `~`
uses `org-code verbatim)`, but both `org-verbatim` and `org-code` is
inherited from `shadow` face. So we can use `~` marker for this purpose.
`~` marker is also displayed properly on Github, since it's part of
standard Emacs, so no web functionality is broken.
- Add org-kbd face for displaying key bindings.
- Update CHANGELOG.org: use the proper `~` marker for key bindings.
- Update VIMUSERS.org: use the proper `~` marker for key bindings.