All Projects → chenyanming → spacemacs_module_for_doom

chenyanming / spacemacs_module_for_doom

Licence: other
Aim to port spacemacs features (defaults keybinding, transient state, layers and more) to doom, and provides a spacemacs module for doom.

Programming Languages

emacs lisp
2029 projects

Projects that are alternatives of or similar to spacemacs module for doom

Space Vim
🍀 Lean & mean spacemacs-ish Vim distribution
Stars: ✭ 2,785 (+2280.34%)
Mutual labels:  spacemacs
spacemacs.d
rich Clojure & LSP config for Spacemacs
Stars: ✭ 102 (-12.82%)
Mutual labels:  spacemacs
dotfiles
My dotfiles for Bash/Zsh, Vim/Neovim, Doom Emacs, tmux, Git, terminal emulators, JupyterLab, aria2, mpv, Nix and Homebrew
Stars: ✭ 149 (+27.35%)
Mutual labels:  doom-emacs
dotfiles
My dotfiles - Emacs centric OSX Big Sur
Stars: ✭ 29 (-75.21%)
Mutual labels:  doom-emacs
.doom.d
Personal doom emacs configs
Stars: ✭ 24 (-79.49%)
Mutual labels:  doom-emacs
dotfiles
Dotfiles
Stars: ✭ 25 (-78.63%)
Mutual labels:  doom-emacs
Dotfiles
🔩 Dotfiles for bash, zsh, tmux, emacs, vim, etc
Stars: ✭ 175 (+49.57%)
Mutual labels:  spacemacs
dotfiles
My life's work 🔥🔥
Stars: ✭ 28 (-76.07%)
Mutual labels:  doom-emacs
Juggernaut
The unstoppable programmers editor written in Rust and Javascript
Stars: ✭ 28 (-76.07%)
Mutual labels:  spacemacs
doom-emacs-on-rails
Emacs Configuration for who loves Ruby on Rails and also uses magic to code!
Stars: ✭ 73 (-37.61%)
Mutual labels:  doom-emacs
snippets
The Doom Emacs snippets library
Stars: ✭ 248 (+111.97%)
Mutual labels:  doom-emacs
dotfiles
🚀 @1995parham Linux / OSx configurations files
Stars: ✭ 79 (-32.48%)
Mutual labels:  doom-emacs
practicalli.github.io
Landing Page for Practicalli for broadcasts, books and guides on Clojure, ClojureScript, Emacs, Spacemacs and more. Developed with ClojureScript and reagent, using figwheel.main
Stars: ✭ 15 (-87.18%)
Mutual labels:  spacemacs
navim
A full-blown IDE based on Neovim (or Vim) with better navigation.
Stars: ✭ 16 (-86.32%)
Mutual labels:  spacemacs
emacs-config
Abelardo Jara-Berrocal's Emacs configuration files
Stars: ✭ 15 (-87.18%)
Mutual labels:  spacemacs
Git Link
Emacs package to get the GitHub/Bitbucket/GitLab/... URL for a buffer location
Stars: ✭ 239 (+104.27%)
Mutual labels:  spacemacs
.spacemacs.d
aborn's spacemacs configuration.
Stars: ✭ 24 (-79.49%)
Mutual labels:  spacemacs
lsp-volar
Language support for Vue3
Stars: ✭ 20 (-82.91%)
Mutual labels:  doom-emacs
evil-briefcase
Change cases quickly with vim motions in emacs
Stars: ✭ 20 (-82.91%)
Mutual labels:  spacemacs
spacemacs
Content for the book - Clojure Development with Spacemacs
Stars: ✭ 86 (-26.5%)
Mutual labels:  spacemacs

spacemacs module for doom emacs

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
    git clone [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/private/spacemacs
        

    or

    git clone [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.emacs.d/modules/private/spacemacs
        
  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.
    (window-select     ; visually switch windows
            +numbers)
        
    • Important: Please enable hydra in init.el
    :ui
    hydra
        
    • 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:
      (add-hook 'doom-init-ui-hook #'spacemacs/home)
              
    • 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:
      (remove-hook 'org-load-hook #'+org-init-keybinds-h)
              
  4. Quit Emacs and Run
    ~./emacs.d/bin/doom sync
        
  5. 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 [email protected]:chenyanming/spacemacs_module_for_doom.git ~/.doom.d/modules/spacemacs

Then 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.

(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

  • 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:
    (add-hook 'doom-init-ui-hook #'spacemacs/home)
        
  • 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:
    (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

  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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].