I am looking into what it will take to make additional spacemacs distribution. Currently, the way we have the distribution set up, spacemacs-bootstrap is run regardless of setting in dotspacemacs, followed by the distribution selected. spacemacs distr links to spacemacs-base automatically and both are loaded; however, there is currently no way to load plain vanilla emacs with the layer capability of Spacemacs. If we make an empty distribution layer, it will load, but half of the layers defined depend on functionality defined in spacemacs-base.
For example, all evilify- configurations and hooks depend on spacemacs-base being loaded on startup, and you will get errors. To fix this, I think we need to move some of the core configuration that is used across all layers into the -bootstrap distribution and out of -base. Also, the -base distribution already has a lot of opinionated settings and configurations that make it difficult to overwrite in the case of making a new emacs distribution.
Also, functionality that is set in dotspacemacs variables is used and defined in spacemacs-base and individual layers (like helm for instance). Shouldn't we be keeping layer specific settings out of the primary dotspacemacs configuration variables and defined within the layer? We have very good documentation already, so moving this documentation to the pertinent layer wouldn't be that difficult.
This is along the lines of what I am thinking:
distribution=nil loads vanilla emacs directly with all the core and layer functionality defined, but no additional keybindings or settings set.
all necessarily options currently in -base that are needed for startup of spacemacs should be moved to -bootstrap.
dotspacemacs variables that are common to only one layer, and not established in core or -bootstrap should be moved to the config.el of the pertinent layer.
I don't know if this is already a milestone or if there has been some discussion about this topic, but I wanted to see what the general consensus was at this point.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please let us know if this issue is still valid!
I am looking into what it will take to make additional spacemacs distribution. Currently, the way we have the distribution set up,
spacemacs-bootstrap
is run regardless of setting indotspacemacs
, followed by the distribution selected.spacemacs
distr links tospacemacs-base
automatically and both are loaded; however, there is currently no way to load plain vanilla emacs with the layer capability of Spacemacs. If we make an empty distribution layer, it will load, but half of the layers defined depend on functionality defined inspacemacs-base
.For example, all
evilify-
configurations and hooks depend onspacemacs-base
being loaded on startup, and you will get errors. To fix this, I think we need to move some of the core configuration that is used across all layers into the-bootstrap
distribution and out of-base
. Also, the-base
distribution already has a lot of opinionated settings and configurations that make it difficult to overwrite in the case of making a new emacs distribution.Also, functionality that is set in dotspacemacs variables is used and defined in
spacemacs-base
and individual layers (likehelm
for instance). Shouldn't we be keeping layer specific settings out of the primary dotspacemacs configuration variables and defined within the layer? We have very good documentation already, so moving this documentation to the pertinent layer wouldn't be that difficult.This is along the lines of what I am thinking:
nil
loads vanilla emacs directly with all the core and layer functionality defined, but no additional keybindings or settings set.-base
that are needed for startup of spacemacs should be moved to-bootstrap
.core
or-bootstrap
should be moved to theconfig.el
of the pertinent layer.I don't know if this is already a milestone or if there has been some discussion about this topic, but I wanted to see what the general consensus was at this point.