[[file:img/home.png]]
Aim to port spacemacs features (keybindings, transient states, layers etc) to doom, and provides a spacemacs module for doom emacs.
** Performance I personally use it every day, and it works really great with doom.
*** Startup Time Estimate that it costs around 0.2 ~ 0.3 second.
** How to setup? There are two ways to setup this module, you can choose either one.
** Setup as Doom Private Module This is the new method to enable as a private Doom module. It is the easiest way to setup.
Clone
git clone git@github.com:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/private/spacemacs
or
git clone git@github.com:chenyanming/spacemacs_module_for_doom.git ~/.emacs.d/modules/private/spacemacs
Setup ~/.doom.d/init.el
(window-select ; visually switch windows +numbers)
:ui hydra
Setup ~/.doom.d/config.el
(add-hook 'doom-init-ui-hook #'spacemacs/home)
(remove-hook 'org-load-hook #'+org-init-keybinds-h)
Quit Emacs and Run
~./emacs.d/bin/doom sync
Restart Emacs.
** Load this module directly This is the old method to enable as a Doom module, it is more complicated but more easy to hack. *** Clone the module
git clone git@github.com:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/spacemacs
Then follow the following sections one by one, there are 5 steps:
*** Setup ~/.doom.d/init.el Enable necessary modules in ~init.el~. Make sure enable the necessary modules in ~init.el~.
At lease evil, org, gist, pdf, lookup, workspaces, eshell, and javascript etc.
In order to use the windows transient state properly, please add ~+numbers~ for ~windows-select~ module.
(window-select ; visually switch windows +numbers)
To enable the spacemacs like dashboard, comment out ~doom-dashboard~.
To disable default doom keybindings, delete ~+bindings~, in ~:config default~ module.
*** Setup ~/.doom.d/packages.el And install the missing packages in ~packages.el~
(package! nov) ;; for epub layer (package! auto-highlight-symbol) ;; for spacemacs-navigation (package! eyebrowse) ;; for spacemacs-layouts (package! bm) ;; for bm layer (package! evil-iedit-state) ;; for spacemacs-navigation (package! bind-map) (package! symbol-overlay) (package! move-text) ;; for spacemacs-editing (package! string-inflection) ;; for spacemacs-editing (package! forge) ;; for github layer (package! evil-terminal-cursor-changer) ;; for spacemacs evil (package! eshell-prompt-extras) ;; for shell layer
*** IMPORTANT: Adjust this module's ~config.el~ (~+spacemacs.el~ bofore) based on your need Since this package only simply load the necessary layer files and call their init functions, you can comment out them in this module's ~config.el~ if necessary.
*** Setup ~/.doom.d/config.el
(add-hook 'doom-init-ui-hook #'spacemacs/home)
(remove-hook 'org-load-hook #'+org-init-keybinds-h)
*** Quit Emacs and Run ~/emacs.d/bin/doom sync Then sync the doom.
Please notice: If you want to keep sync with my commits, every time you do git pull, you should better run ~./emacs.d/bin/doom sync~ again, in case the ~packages.el~ is updated.
** Notes on transient states Spacemacs's transient states are based on ~hydra~, while it seems has some problems with doom. I am trying to fix it. You can choose ~message~, ~lv~, or ~posframe~ in ~config.el~ e.g. to choose ~posframe~:
(setq hydra-hint-display-type 'posframe)
** Restart Emacs Finally restart emacs~
Enjoy~
** Current status