!REFACTOR: cleaning doom
This refactor removes a lot of the 'training wheels' that doom provides (i.e. no modeline, bindings, etc). Instead, I defined my own modules and systems to help with those tasks. I am now using the default emacs modeline, customised to my liking, as well as the default scratch buffer as my startup page. This basically allows me to have a finer degree of control over what my Emacs is doing, which is great as I can remove redundant pieces that I don't use.
This commit is contained in:
157
Doom/.doom.d/modules/private/bindings/README.org
Normal file
157
Doom/.doom.d/modules/private/bindings/README.org
Normal file
@@ -0,0 +1,157 @@
|
||||
#+TITLE: private/bindings Literate configuration
|
||||
#+PROPERTY: header-args(elisp) :tangle config.el
|
||||
|
||||
* Introduction
|
||||
This is the main document for this module (=private/bindings=).
|
||||
To compile, simply execute the source code block below
|
||||
#+BEGIN_SRC elisp :tangle no
|
||||
(org-babel-tangle-file "README.org" "config.el")
|
||||
#+END_SRC
|
||||
* Initial
|
||||
#+BEGIN_SRC elisp
|
||||
;;; private/bindings/config.el -*- lexical-binding: t; -*-
|
||||
#+END_SRC
|
||||
* Leader
|
||||
Bindings for the leader map
|
||||
** Single binds
|
||||
These are immediate bindings to the leader map that instantly launch functions when pressed.
|
||||
This binding space is reserved for stuff I use quite often.
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
"SPC" #'execute-extended-command
|
||||
"!" #'async-shell-command
|
||||
"T" #'eshell
|
||||
"-" #'dired-jump
|
||||
"_" #'dired-jump-other-window
|
||||
";" #'eval-expression
|
||||
"h" #'help-command
|
||||
"w" #'ace-window)
|
||||
#+END_SRC
|
||||
** Files
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix "f"
|
||||
"r" #'counsel-recentf
|
||||
"f" #'find-file
|
||||
"p" #'(lambda () (interactive) (doom-project-find-file "~/Dotfiles"))
|
||||
"s" #'save-buffer
|
||||
"d" #'dired)
|
||||
#+END_SRC
|
||||
** Buffers
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix "b"
|
||||
"n" #'next-buffer
|
||||
"p" #'previous-buffer
|
||||
"d" #'kill-current-buffer
|
||||
"b" #'switch-to-buffer
|
||||
"i" #'ibuffer)
|
||||
#+END_SRC
|
||||
** Search
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix "s"
|
||||
"i" #'imenu
|
||||
(:after counsel
|
||||
"s" #'swiper
|
||||
"r" #'counsel-rg)
|
||||
(:after counsel-etags
|
||||
"t" #'counsel-etags-find-tag)
|
||||
"o" #'+lookup/online)
|
||||
#+END_SRC
|
||||
** Projectile
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:after projectile
|
||||
:desc "Switch to p-buffer" ">" #'projectile-switch-to-buffer
|
||||
:desc "Projects" "p" #'projectile-switch-project
|
||||
(:prefix ("p" . "project")
|
||||
:desc "Regen tags" "g" #'projectile-regenerate-tags
|
||||
:desc "Open project files" "f" #'projectile-find-file))
|
||||
#+END_SRC
|
||||
** Code
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix ("c" . "code") ; Code
|
||||
:desc "Compile" "c" #'compile
|
||||
:desc "Compile via make" "m" #'+make/run
|
||||
:desc "Undo tree" "u" #'undo-tree-visualize
|
||||
(:after lsp
|
||||
:desc "Format code lsp" "f" #'+default/lsp-format-region-or-buffer
|
||||
:desc "Execute action" "a" #'lsp-execute-code-action))
|
||||
#+END_SRC
|
||||
** Magit and VC
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix "g"
|
||||
"g" #'magit-status
|
||||
"c" #'magit-clone
|
||||
"f" #'magit-fetch
|
||||
"p" #'magit-pull)
|
||||
#+END_SRC
|
||||
** Notes
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix ("n" . "notes")
|
||||
:desc "Open notes in dired" "-" #'(lambda () (interactive) (dired org-directory))
|
||||
:desc "Open quicknotes" "q" #'(lambda () (interactive) (find-file (format "%s/qnotes.org" org-directory))))
|
||||
#+END_SRC
|
||||
** Frames
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:leader
|
||||
:prefix "F"
|
||||
"d" #'delete-frame)
|
||||
#+END_SRC
|
||||
* Company
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:map (company-search-map company-mode-map)
|
||||
"C-j" #'company-select-next
|
||||
"C-k" #'company-select-previous
|
||||
"C-SPC" #'company-complete)
|
||||
#+END_SRC
|
||||
* Multi cursors
|
||||
Setup bindings for multi cursors.
|
||||
As it's a motion based system, use the "gz" namespace.
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:prefix "g"
|
||||
(:prefix "z"
|
||||
"m" #'evil-mc-resume-cursors
|
||||
"p" #'evil-mc-pause-cursors
|
||||
"d" #'evil-mc-make-all-cursors
|
||||
"j" #'evil-mc-make-cursor-move-next-line
|
||||
"k" #'evil-mc-make-cursor-move-prev-line
|
||||
"z" #'evil-mc-make-cursor-at-pos))
|
||||
#+END_SRC
|
||||
* Quit
|
||||
Quit Emacs or restart it
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
:prefix "q"
|
||||
"q" #'save-buffers-kill-terminal
|
||||
"r" #'doom/restart)
|
||||
#+END_SRC
|
||||
* Remaps
|
||||
#+BEGIN_SRC elisp
|
||||
(define-key!
|
||||
[remap org-goto] #'counsel-org-goto)
|
||||
#+END_SRC
|
||||
* Misc
|
||||
Misc bindings that don't fit to any other category.
|
||||
#+BEGIN_SRC elisp
|
||||
(map!
|
||||
"C-x C-z" #'text-scale-adjust
|
||||
"TAB" #'evil-jump-item
|
||||
"M-c" #'count-words-region
|
||||
"M-s" #'occur)
|
||||
#+END_SRC
|
||||
10
Doom/.doom.d/modules/private/startup/README.org
Normal file
10
Doom/.doom.d/modules/private/startup/README.org
Normal file
@@ -0,0 +1,10 @@
|
||||
#+TITLE: private/startup
|
||||
#+DATE: July 15, 2020
|
||||
|
||||
* Description
|
||||
Basically setup the default Emacs mode-line and the scratch buffer for ease of use.
|
||||
This replaces the =modeline= and =doom-dashboard= modules as it leverages the default Emacs utilities.
|
||||
* Prerequisites
|
||||
Emacs of some kind, preferably 27 just for the sake of preserving versioning.
|
||||
* Requirements
|
||||
None
|
||||
12
Doom/.doom.d/modules/private/startup/config.el
Normal file
12
Doom/.doom.d/modules/private/startup/config.el
Normal file
@@ -0,0 +1,12 @@
|
||||
;;; private/startup/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defun +startup/create-scratch-message ()
|
||||
"Generate a string for the scratch buffer"
|
||||
(format "Welcome to Emacs! (。◕‿◕。)
|
||||
Load time was %s
|
||||
Time of startup: %s"
|
||||
(emacs-init-time)
|
||||
(current-time-string (current-time))))
|
||||
|
||||
(setq-default mode-line-format (list "%l:%c %P \t %+%b(" '(:eval (format "%s" major-mode)) ") \t %I \t" vc-mode mode-line-end-spaces))
|
||||
(setq initial-scratch-message (+startup/create-scratch-message))
|
||||
Reference in New Issue
Block a user