Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chenyanming/spacemacs_module_for_doom
Aim to port spacemacs features (defaults keybinding, transient state, layers and more) to doom, and provides a spacemacs module for doom.
https://github.com/chenyanming/spacemacs_module_for_doom
doom-emacs emacs spacemacs
Last synced: 2 months ago
JSON representation
Aim to port spacemacs features (defaults keybinding, transient state, layers and more) to doom, and provides a spacemacs module for doom.
- Host: GitHub
- URL: https://github.com/chenyanming/spacemacs_module_for_doom
- Owner: chenyanming
- Created: 2020-02-29T05:25:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-26T04:21:33.000Z (6 months ago)
- Last Synced: 2024-08-07T18:31:26.763Z (6 months ago)
- Topics: doom-emacs, emacs, spacemacs
- Language: Emacs Lisp
- Homepage:
- Size: 2.84 MB
- Stars: 147
- Watchers: 9
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: README.org
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
* spacemacs module for doom emacs
#+attr_org: :width 600px
[[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.
1. Setup as Doom Private Module (new method, more "doom-way")
If you find missing packages, welcome PR or request an Issue.
2. Load this module directly (old method, you can clone and hack anything if you like)** Setup as Doom Private Module
This is the new method to enable as a private Doom module. It is the easiest way to setup.
1. Clone
#+begin_src sh
git clone [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/private/spacemacs
#+end_src
or
#+begin_src sh
git clone [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.emacs.d/modules/private/spacemacs
#+end_src
2. Setup ~/.doom.d/init.el
- Add ~:private spacemacs~ into ~init.el~ after ~:default~ group - the end of ~doom!~ section, so that all necessary modules are loaded before ~spacemacs~ module
- In order to use the windows transient state properly (~SPC w w~ if windows numbers >=3), please add ~+numbers~ for
~windows-select~ module.
#+BEGIN_SRC emacs-lisp
(window-select ; visually switch windows
+numbers)
#+END_SRC
- Important: Please enable =hydra= in ~init.el~
#+BEGIN_SRC emacs-lisp
:ui
hydra
#+END_SRC
- To enable the spacemacs like dashboard, comment out ~doom-dashboard~.
- To disable default doom keybindings, delete ~+bindings~, in ~:config default~ module.
3. Setup ~/.doom.d/config.el
- To enable the spacemacs like dashboard, add this:
#+begin_src emacs-lisp
(add-hook 'doom-init-ui-hook #'spacemacs/home)
#+end_src
- Spacemacs dashboard may consume 0.2 second to boot after testing.
- Configure ~dotspacemacs-startup-banner~, ~dotspacemacs-startup-lists~ to control the dashboard details.
- To disable doom org keybindings, add this:
#+begin_src elisp
(remove-hook 'org-load-hook #'+org-init-keybinds-h)
#+end_src
4. Quit Emacs and Run
#+begin_src sh
~./emacs.d/bin/doom sync
#+end_src5. 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
#+begin_src sh
git clone [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/spacemacs
#+end_srcThen follow the following sections one by one, there are 5 steps:
1. Setup ~init.el~
2. Setup ~package.el~
3. Adjust ~config.el~ (This module's ~config.el~)
4. Setup ~config.el~
5. Quit Emacs and Run ~./emacs.d/bin/doom sync~*** 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.
#+BEGIN_SRC emacs-lisp
(window-select ; visually switch windows
+numbers)
#+END_SRCTo 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~#+BEGIN_SRC emacs-lisp
(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
#+END_SRC
*** 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
- Load the this module's ~config.el~:
~(load! "~/.doom.d/modules/spacemacs/config")~ ; important, since I use ~load-file-name~ to determine the module location.
- To enable the spacemacs like dashboard, add this:
#+begin_src emacs-lisp
(add-hook 'doom-init-ui-hook #'spacemacs/home)
#+end_src
- Spacemacs dashboard may consume 0.2 second to boot after testing.
- Configure ~dotspacemacs-startup-banner~, ~dotspacemacs-startup-lists~ to control the dashboard details.
- To disable doom org keybindings, add this:
#+begin_src elisp
(remove-hook 'org-load-hook #'+org-init-keybinds-h)
#+end_src*** 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~:
#+BEGIN_SRC emacs-lisp
(setq hydra-hint-display-type 'posframe)
#+END_SRC** Restart Emacs
Finally restart emacs~Enjoy~
** Current status
1. Some Default spacemacs leader keybindings.
- spacemacs-editing
- spacemacs-layouts
- spacemacs-navigation
- spacemacs-defaults
- spacemacs-evil
2. org layer keybindings.
3. Github layer keybindings.
4. PDF layer keybindings.
5. epub layer keybindings.
6. dash layer keybindings.
7. Some transient states:
- Windows Transient State: ~SPC-w-.~
- Symbol Overlay Transient State: ~SPC-s-o~
- Symbol Highlight Transient State: ~SPC-s-h~ / ~*~ / ~#~
- Buffer Transient State: ~SPC-b-.~
- Error Transient State: ~SPC-e-.~
- Font Scaling Transient State: ~SPC-z-x~
- Frame Transparency Transient State: ~SPC-T-T~
- Layouts Transient State: ~SPC-l~
- Workspaces Transient State: ~SPC-l-w~
- BM Transient State: ~SPC-a-b~
- VCS Transient State: ~SPC-g-.~
- Git Timemachine Transient State: ~SPC-g-t~
- Move Text Transient State: ~SPC-x-J, SPC-x-K~
- String Inflection Transient State: ~SPC-x-i-i~
- Fold Transient State: ~SPC-z-.~
- Evil number Transient State: ~SPC-n-+~
8. JavaScript layer major mode keybindings.
9. Spacemacs Like Dashboard.