My attempt to optimize my emacs load time <1 second
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

650 lines
19 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. ;;; 08-custom-packages --- Provide all the use-package declarations
  2. ;;; Commentary:
  3. ;;
  4. ;; See https://github.com/jwiegley/use-package for help
  5. ;; USE PACKAGE help
  6. ;; (use-package package-here
  7. ;; :commands (cmd cmd-all cmd-etc) ;; List commands used to ":defer" the package
  8. ;; :bind-keymap
  9. ;; ("M-q" . package-here-keymap) ;; Setup an entire keymap using Prefix "M-q"
  10. ;; :bind
  11. ;; (("M-s" . cmd) ;; Available Globally
  12. ;; :map here-mode-map
  13. ;; ("C-t" . cmd-all) ;; Available only in "here-mode"
  14. ;; ("C-e" . cmd-etc)) ;; Available only in "here-mode"
  15. ;; :init
  16. ;; (setq stuff t) ;; declar vars etc...
  17. ;; :config
  18. ;; (here-mode 1) ;; eval stuff here after the init
  19. ;;
  20. ;; (use-package ruby-mode
  21. ;; :mode "\\.rb\\'"
  22. ;; :interpreter "ruby"
  23. ;;
  24. ;; ;; OR when the package name isn't the same as the =mode=
  25. ;; (use-package python
  26. ;; :mode ("\\.py\\'" . python-mode)
  27. ;; :interpreter ("python" . python-mode))
  28. ;;
  29. ;; USE ":defer" when you aren't using either :commands, :bind, :bind*, :bind-keymap, :bind-keymap*, :mode, :interpreter, or :hook
  30. ;; (use-package deferred-package
  31. ;; :defer t)
  32. ;;; Code:
  33. (use-package use-package-ensure-system-package
  34. :ensure t)
  35. (use-package ag
  36. :ensure t)
  37. ;; https://melpa.org/#/async
  38. (use-package async
  39. :ensure t)
  40. ;; https://github.com/myrjola/diminish.el
  41. (use-package diminish
  42. :ensure t
  43. :demand t
  44. )
  45. ;; https://elpa.gnu.org/packages/delight.html
  46. (use-package delight
  47. :ensure t)
  48. ;; https://github.com/winterTTr/ace-jump-mode
  49. (use-package ace-jump-mode
  50. :bind
  51. (("C-c SPC" . just-one-space)
  52. ("M-SPC" . ace-jump-mode)))
  53. ;; https://github.com/NicolasPetton/zerodark-theme
  54. (use-package zerodark-theme
  55. :ensure t
  56. :config
  57. (load-theme 'zerodark t)
  58. (zerodark-setup-modeline-format))
  59. ;; https://github.com/Malabarba/beacon
  60. (use-package beacon
  61. :diminish
  62. :ensure t
  63. :commands beacon-mode
  64. :demand t
  65. :init
  66. (setq beacon-size 70
  67. beacon-color "#5B6268"
  68. beacon-blink-delay 0.1
  69. beacon-blink-duration 0.4
  70. beacon-blink-when-focused t)
  71. (beacon-mode 1))
  72. ;; https://github.com/iqbalansari/emacs-emojify
  73. (use-package emojify
  74. :ensure t
  75. :defer 15
  76. :config
  77. (global-emojify-mode 1))
  78. ;; https://github.com/hrs/engine-mode
  79. (use-package engine-mode
  80. :ensure t
  81. :defer 5
  82. :commands (engine/get-query engine/execute-search)
  83. :config
  84. ;; C-x / to start
  85. (defengine google "https://www.google.com/search?q=%s"
  86. :keybinding "a")
  87. (defengine github "https://github.com/search?q=%s"
  88. :keybinding "g")
  89. (defengine vlocity "https://success.vlocity.com/s/searchunifylightning?searchString=%s"
  90. :keybinding "v")
  91. (defengine duckduckgo "https://duckduckgo.com/?q=%s"
  92. :keybinding "d")
  93. (defengine melpa "https://melpa.org/#/?q=%s"
  94. :keybinding "m")
  95. (engine-mode 1))
  96. ;; https://github.com/Fanael/rainbow-delimiters
  97. (use-package rainbow-delimiters
  98. :ensure t
  99. :hook (prog-mode . rainbow-delimiters-mode))
  100. ;; rainbow-mode
  101. (use-package rainbow-mode
  102. :ensure t
  103. :hook prog-mode)
  104. ;; M-x all-the-icons-install-fonts
  105. (use-package all-the-icons
  106. :ensure t
  107. :config
  108. (setq inhibit-compacting-font-caches t))
  109. ;; https://github.com/emacs-dashboard/emacs-dashboard
  110. (use-package dashboard
  111. :ensure t
  112. :preface
  113. (defvar show-week-agenda-p)
  114. :init
  115. (setq dashboard-items '((recents . 10)
  116. (bookmarks . 5)
  117. (projects . 5)
  118. (agenda . 5)))
  119. (setq dashboard-center-content t)
  120. (setq dashboard-banner-logo-title "Let's do this...")
  121. (setq dashboard-startup-banner 1)
  122. (setq dashboard-show-shortcuts t)
  123. (setq show-week-agenda-p t)
  124. (setq dashboard-org-agenda-categories '("work" "tasks"))
  125. :config
  126. (dashboard-setup-startup-hook))
  127. ;; counsel
  128. (use-package counsel
  129. :ensure t
  130. :demand t
  131. :bind
  132. ("M-x" . counsel-M-x)
  133. ("C-c k" . counsel-rg)
  134. ("C-x C-f" . counsel-find-file)
  135. ("C-x f" . counsel-recentf)
  136. ("C-x C-d" . counsel-dired)
  137. ("C-x p" . counsel-package)
  138. ("C-x b" . counsel-bookmark)
  139. ("C-x c" . counsel-colors-web)
  140. ("C-c C-d" . counsel-org-capture)
  141. ;; Describe Replacements
  142. ("C-h f" . counsel-describe-function)
  143. ("C-h v" . counsel-describe-variable)
  144. ("C-h b" . counsel-descbinds)
  145. ("M-y" . counsel-yank-pop)
  146. ;; Ivy
  147. ("C-c b" . ivy-switch-buffer)
  148. ("C-c c" . ivy-resume)
  149. ;; Swiper
  150. ("C-s" . swiper)
  151. :config
  152. (ivy-mode 1)
  153. )
  154. (use-package amx
  155. :ensure t
  156. :config (amx-mode 1)
  157. )
  158. ;; https://github.com/magnars/expand-region.el
  159. (use-package expand-region
  160. :ensure t
  161. :bind
  162. ("C-@" . er/expand-region)
  163. ("C-#" . er/contract-region))
  164. ;; https://github.com/thanhvg/emacs-howdoyou
  165. (use-package howdoyou
  166. :ensure t
  167. :commands (howdoyou-query howdoyou-next-link howdoyou-previous-link howdoyou-go-back-to-first-link howdoyou-reload-link)
  168. :bind
  169. ("C-c h q" . howdoyou-query)
  170. ("C-c h n" . howdoyou-next-link)
  171. ("C-c h p" . howdoyou-previous-link)
  172. ("C-c h f" . howdoyou-go-back-to-first-link)
  173. ("C-c h r" . howdoyou-reload-link)
  174. )
  175. ;; https://github.com/magnars/multiple-cursors.el
  176. (use-package multiple-cursors
  177. :ensure t
  178. :bind
  179. ("C-}" . mc/mark-next-like-this)
  180. ("C-)" . mc/unmark-next-like-this)
  181. ("C-{" . mc/mark-previous-like-this)
  182. ("C-(" . mc/unmark-previous-like-this))
  183. ;; https://github.com/skeeto/elfeed
  184. (use-package elfeed
  185. :ensure t
  186. :commands (elfeed elfeed-search-set-filter)
  187. :bind
  188. (("C-x C-l e" . elfeed)
  189. :map elfeed-search-mode-map
  190. ("a" . (lambda () (interactive) (elfeed-search-set-filter "")))
  191. ("e" . (lambda () (interactive) (elfeed-search-set-filter "+emacs")))
  192. ("d" . (lambda () (interactive) (elfeed-search-set-filter "+daily")))
  193. ("x" . (lambda () (interactive) (elfeed-search-set-filter "xkcd"))))
  194. :init
  195. (setq elfeed-feeds
  196. '(
  197. ("http://telescoper.wordpress.com/feed/" daily)
  198. ("http://xkcd.com/rss.xml" daily)
  199. ("http://timharford.com/feed/" daily)
  200. ("http://understandinguncertainty.org/rss.xml" daily)
  201. ("http://pragmaticemacs.com/feed/" emacs)
  202. ("http://endlessparentheses.com/atom.xml" emacs)
  203. ;; ("http://www.reddit.com/r/emacs/.rss" emacs)
  204. ;; ("http://planet.emacsen.org/atom.xml" emacs)
  205. ("http://feeds.feedburner.com/XahsEmacsBlog" emacs)
  206. ("http://emacs.stackexchange.com/feeds" emacs)
  207. ("https://www.google.com/alerts/feeds/13353713273807811484/2710948715805064535" tesla)
  208. ("https://www.google.com/alerts/feeds/13353713273807811484/17638090915837343269" pixel4)
  209. ("https://www.google.com/alerts/feeds/13353713273807811484/14416938028701328804" stadia)
  210. ))
  211. :config
  212. (elfeed-update)
  213. )
  214. ;; https://github.com/rmuslimov/browse-at-remote
  215. (use-package browse-at-remote
  216. :bind ("C-c B" . browse-at-remote))
  217. ;; https://github.com/justbur/emacs-which-key
  218. (use-package which-key
  219. :diminish
  220. :ensure t
  221. :config
  222. (which-key-setup-minibuffer)
  223. (which-key-mode))
  224. ;; https://github.com/lewang/fic-mode
  225. (use-package fic-mode
  226. :ensure t
  227. :hook (prog-mode js-mode javascript-mode)
  228. :commands fic-mode
  229. :custom-face
  230. (fic-face ((t :foreground "red" :weight bold)))
  231. (fic-author-face ((t :foreground "red" :underline t))))
  232. ;; https://github.com/joaotavora/yasnippet
  233. (use-package yasnippet
  234. :ensure t
  235. :commands (yas-reload-all)
  236. :hook (prog-mode . yas-minor-mode)
  237. :init
  238. (setq yas-snippet-dirs (list (concat user-emacs-directory "snippets")))
  239. :config
  240. (yas-reload-all))
  241. ;; https://company-mode.github.io/
  242. (use-package company
  243. :ensure t
  244. :defer 5
  245. :commands (company-mode)
  246. :hook (prog-mode . company-mode)
  247. :bind
  248. (:map company-active-map
  249. ("M-n" . nil)
  250. ("M-p" . nil)
  251. ("C-n" . company-select-next)
  252. ("C-p" . company-select-previous))
  253. :config
  254. (setq company-idle-delay 0.1)
  255. (setq company-minimum-prefix-length 4)
  256. (setq company-dabbrev-downcase nil)
  257. )
  258. ;; https://github.com/pashky/restclient.el
  259. (use-package restclient
  260. :ensure t
  261. :mode ("\\.rest\\'" . restclient-mode))
  262. ;; https://github.com/iquiw/company-restclient
  263. (use-package company-restclient
  264. :ensure t
  265. :after (company restclient))
  266. ;; https://github.com/magit/magit
  267. (use-package magit
  268. :commands magit-status
  269. :ensure t
  270. :bind
  271. ("C-x g" . magit-status)
  272. ("C-c g" . magit-status))
  273. ;; This is used in `rg-menu'
  274. (use-package rg
  275. :ensure t)
  276. ;; This is used in `projectile'
  277. (use-package ripgrep
  278. :ensure t)
  279. ;; https://github.com/bbatsov/projectile
  280. (use-package projectile
  281. :delight '(:eval (concat " [" (projectile-project-name) "]"))
  282. :ensure t
  283. :bind (
  284. ("C-c p" . projectile-command-map)
  285. :map projectile-command-map
  286. ("s r" . rg-project)
  287. )
  288. :init
  289. ;; (setq projectile-mode-line-prefix " P")
  290. (setq projectile-completion-system 'ivy)
  291. :config
  292. (projectile-mode 1))
  293. ;; https://github.com/rudolfolah/angularjs-mode
  294. (use-package angular-mode
  295. :ensure t
  296. :defer t
  297. )
  298. ;; https://github.com/magnars/angular-snippets.el
  299. (use-package angular-snippets
  300. :ensure t
  301. :defer t
  302. )
  303. ;; https://github.com/magit/git-modes
  304. (use-package gitignore-mode
  305. :ensure t)
  306. ;; https://github.com/magit/git-modes
  307. (use-package gitconfig-mode
  308. :ensure t)
  309. ;; http://web-mode.org/
  310. (use-package web-mode
  311. :ensure t
  312. ;; :mode (("\\.html?\\'" . web-mode)
  313. ;; ("\\.xml?\\'" . web-mode))
  314. :hook (html-mode xml-mode)
  315. )
  316. ;; https://github.com/smihica/emmet-mode
  317. (use-package emmet-mode
  318. :ensure t
  319. :hook (sgml-mode html-mode web-mode css-mode))
  320. (use-package dash-at-point
  321. :if (eq system-type 'darwin)
  322. :ensure-system-package
  323. ("/Applications/Dash.app" . "brew cask install dash"))
  324. ;; https://github.com/joshwnj/json-mode
  325. (use-package json-mode
  326. :ensure t
  327. :mode "\\.json\\'")
  328. ;; https://github.com/mojochao/npm-mode
  329. (use-package npm-mode
  330. :ensure t
  331. :custom
  332. (npm-mode-command-prefix "C-c r"))
  333. ;; https://github.com/antonj/scss-mode
  334. (use-package scss-mode
  335. :ensure t
  336. :mode ("\\.s?css\\'" . scss-mode))
  337. ;; https://github.com/yoshiki/yaml-mode
  338. (use-package yaml-mode
  339. :ensure t
  340. :mode ("\\.yml\\'" . yaml-mode))
  341. ;; https://github.com/kwrooijen/cargo.el
  342. (use-package cargo
  343. :hook (rust-mode . cargo-minor-mode))
  344. ;; https://github.com/flycheck/flycheck
  345. (use-package flycheck
  346. :diminish
  347. :ensure t
  348. :preface
  349. (defvar flycheck-emacs-lisp-load-path)
  350. :init
  351. (setq flycheck-emacs-lisp-load-path 'inherit)
  352. (global-flycheck-mode))
  353. ;; https://orgmode.org/elpa.html
  354. (use-package org
  355. :commands (org-cycle-agenda-files org-capture)
  356. :ensure org-plus-contrib
  357. :mode ("\\.org\\'" . org-mode)
  358. :bind (
  359. ("C-," . org-cycle-agenda-files)
  360. ("C-c C-d" . org-capture)
  361. ("C-x C-l a" . org-agenda)
  362. :map org-mode-map
  363. ("M-RET" . org-insert-todo-heading)
  364. ("M-n" . leo/org-narrow-next-tree)
  365. ("M-p" . leo/org-narrow-prev-tree)
  366. ("M-P" . leo/org-present)
  367. )
  368. :preface
  369. (defvar org-html-validation-link)
  370. (defvar org-html-text-markup-alist)
  371. :init
  372. (setq org-agenda-files '("~/Dropbox/Org/todo.org"
  373. "~/Dropbox/Org/projects.org"
  374. "~/Dropbox/Org/archive.org"
  375. "~/Dropbox/Org/diary/eaglecrk.org"))
  376. (add-to-list 'safe-local-variable-values '(eval leo/deft-insert-boilerplate))
  377. (setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)")
  378. (sequence "BUG(b)" "INPROGRESS(i)" "|" "FIXED(f)")
  379. (sequence "TEST(T)" "NOTEST(N)" "|" "COMPLETE(C)")
  380. (sequence "|" "CANCELED(c)")
  381. (sequence "|" "NEEDCLARIFICATION(n)")
  382. (sequence "|" "PROVIDEUPDATE(p)")
  383. (sequence "|" "WAITING(w)"))
  384. org-refile-targets '((nil :maxlevel . 3)
  385. (org-agenda-files :maxlevel . 3))
  386. org-directory "~/Dropbox/Org"
  387. org-default-notes-file (concat org-directory "/todo.org")
  388. org-src-fontify-natively t
  389. org-startup-folded t
  390. org-startup-indented t
  391. org-startup-align-all-tables t
  392. org-startup-with-inline-images t
  393. org-startup-with-latex-preview t
  394. org-src-tab-acts-natively t
  395. org-confirm-babel-evaluate nil
  396. org-log-done t
  397. org-log-done-with-time t
  398. org-log-into-drawer t
  399. org-hide-leading-stars t
  400. org-pretty-entities t
  401. org-use-property-inheritance t
  402. org-html-validation-link nil
  403. org-html-text-markup-alist '((bold . "<b>%s</b>")
  404. (code . "<code>%s</code>")
  405. (italic . "<i>%s</i>")
  406. (strike-through . "<del>%s</del>")
  407. (underline . "<span class=\"underline\">%s</span>")
  408. (verbatim . "<code class=\"verbatim\">%s</code>"))
  409. )
  410. :config
  411. (defun org-src-disable-flycheck-doc ()
  412. "Disable flycheck comment doc string checking when (C-c ') ing a file."
  413. (interactive)
  414. (setq flycheck-disabled-checkers '(emacs-lisp-checkdoc)))
  415. (add-to-list 'org-src-mode-hook 'org-src-disable-flycheck-doc)
  416. (when (version<= "9.2" (org-version))
  417. (require 'org-tempo))
  418. (org-babel-do-load-languages 'org-babel-load-languages '((js . t)
  419. (shell . t)
  420. (restclient . t)
  421. (emacs-lisp . t)))
  422. (setq org-structure-template-alist
  423. '(("r" . "src restclient :results raw")
  424. ("j" . "src js :cmd \"/usr/local/bin/babel-node\" :results output code")
  425. ("e" . "src emacs-lisp :results silent")
  426. ("a" . "export ascii")
  427. ("c" . "center")
  428. ("C" . "comment")
  429. ("E" . "export")
  430. ("h" . "export html")
  431. ("l" . "export latex")
  432. ("q" . "quote")
  433. ("s" . "src")
  434. ("v" . "verse")))
  435. (defconst checkbox-fontlock-keywords-alist
  436. (mapcar (lambda (regex-char-pair)
  437. `(,(car regex-char-pair)
  438. (0 (prog1 ()
  439. (compose-region (match-beginning 1)
  440. (match-end 1)
  441. ,(concat (list ?\C-i)
  442. (list (decode-char 'ucs (cadr regex-char-pair)))))))))
  443. '(("\\(\\[ \\]\\)" #XF096);2B1C
  444. ("\\(\\[-\\]\\)" #XF147);29C7;F458
  445. ("\\(\\[X\\]\\)" #XF046);2BBD
  446. )))
  447. (defun add-checkbox-symbol-keywords ()
  448. "Add checkbox font to font-lock."
  449. (font-lock-add-keywords nil checkbox-fontlock-keywords-alist))
  450. (add-hook 'org-mode-hook 'add-checkbox-symbol-keywords)
  451. )
  452. (use-package ob-restclient
  453. :ensure t
  454. :config
  455. (setq org-babel-default-header-args:restclient
  456. `((:results . "output"))))
  457. ;; https://github.com/astahlman/ob-async
  458. (use-package ob-async
  459. :ensure t
  460. :after org)
  461. ;; https://github.com/sabof/org-bullets
  462. (use-package org-bullets
  463. :ensure t
  464. :after org
  465. :commands org-bullets-mode
  466. :hook (org-mode . org-bullets-mode)
  467. :config
  468. (setq org-bullets-bullet-list '( "" "" "" "" "" "" ""))
  469. (set-face-attribute 'org-level-1 nil :height 1.5)
  470. (set-face-attribute 'org-level-2 nil :height 1.0)
  471. (set-face-attribute 'org-level-3 nil :height 1.0)
  472. (set-face-attribute 'org-level-4 nil :height 1.0)
  473. (set-face-attribute 'org-level-5 nil :height 1.0)
  474. (set-face-attribute 'org-scheduled-today nil :height 2.0)
  475. (set-face-attribute 'org-agenda-date-today nil :height 2.0))
  476. ;; https://orgmode.org/worg/org-contrib/org-protocol.html
  477. (use-package org-protocol
  478. :ensure org-plus-contrib
  479. :after org
  480. :preface
  481. (defvar org-capture-templates)
  482. :init
  483. (setq org-capture-templates
  484. '(("t" "new task" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks")
  485. "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n")
  486. ("n" "new note" entry (file+headline org-default-notes-file "Notes")
  487. "* %?\n%i\n")
  488. ("l" "store link" entry (file+olp org-default-notes-file "Links" "Unfiled")
  489. "* %a\n%?\n")
  490. ("d" "store link w/drawer" entry (file+olp org-default-notes-file "Links" "Unfiled")
  491. "* %?\n%l\n:COPIED_TEXT:\n %i\n:END:\n")
  492. ))
  493. )
  494. ;; https://github.com/marsmining/ox-twbs
  495. (use-package ox-twbs
  496. :ensure t
  497. :demand t
  498. :after org)
  499. (use-package ox-extra
  500. :ensure org-plus-contrib
  501. :after org
  502. :config
  503. (ox-extras-activate '(ignore-headlines)))
  504. ;; https://github.com/yjwen/org-reveal
  505. (use-package ox-reveal
  506. :ensure t
  507. :after org)
  508. ;; https://github.com/jethrokuan/org-roam/
  509. (use-package org-roam
  510. :ensure t
  511. :after org
  512. :hook
  513. ((org-mode . org-roam-mode)
  514. (after-init . org-roam--build-cache-async) ;; optional!
  515. )
  516. :straight (:host github :repo "jethrokuan/org-roam" :branch "develop")
  517. :custom
  518. (org-roam-directory "~/Dropbox/Org/Roam/")
  519. :config
  520. (org-roam--build-cache-async)
  521. (setq org-roam-graphviz-executable "/usr/local/Cellar/graphviz/2.42.2/bin/dot")
  522. (setq org-roam-graph-viewer "/usr/bin/open")
  523. (setq org-roam-link-title-format "r::%s")
  524. :bind
  525. ("C-c n l" . org-roam)
  526. ("C-c n t" . org-roam-today)
  527. ("C-c n f" . org-roam-find-file)
  528. ("C-c n i" . org-roam-insert)
  529. ("C-c n g" . org-roam-show-graph))
  530. ;; https://github.com/jrblevin/deft
  531. (use-package deft
  532. :after org
  533. :bind
  534. ("C-c n d" . deft)
  535. :custom
  536. (deft-recursive t)
  537. (deft-use-filter-string-for-filename t)
  538. (deft-default-extension "org")
  539. (deft-directory "~/Dropbox/Org/Roam/"))
  540. ;; https://github.com/hniksic/emacs-htmlize
  541. (use-package htmlize
  542. :ensure t
  543. :defer 5)
  544. ;; https://github.com/jwiegley/use-package/blob/master/bind-key.el
  545. (use-package bind-key
  546. :ensure t
  547. :bind
  548. ("C-<tab>" . leo/tidy)
  549. ("C-;" . leo/comment-or-uncomment-region-or-line)
  550. ("C-c e" . leo/find-user-init-file)
  551. ("M-q" . leo/kill-this-buffer-unless-scratch)
  552. ("C-c d" . leo/duplicate-thing)
  553. ("M-n" . leo/jump-to-next-symbol)
  554. ("M-p" . leo/jump-to-prev-symbol)
  555. ("M-u" . upcase-dwim)
  556. ("M-c" . capitalize-dwim)
  557. ("M-l" . downcase-dwim)
  558. ;; ("C-x C-l s p" . sfdx/create-project)
  559. ;; ("C-x C-l s c" . sfdx/create-component)
  560. ;; ("C-x C-l s d" . sfdx/deploy-component-or-project)
  561. )
  562. ;; https://github.com/nflath/sudo-edit
  563. (use-package sudo-edit
  564. :ensure t
  565. :defer t
  566. :commands (sudo-edit))
  567. ;; https://www.emacswiki.org/emacs/ParEdit
  568. (use-package paredit
  569. :defer 5
  570. :commands enable-paredit-mode
  571. :hook (
  572. (emacs-lisp-mode . enable-paredit-mode)
  573. (lisp-mode . enable-paredit-mode)
  574. (lisp-interaction-mode . enable-paredit-mode)
  575. (scheme-mode . enable-paredit-mode)
  576. (eval-expression-minibuffer-setup . enable-paredit-mode)
  577. )
  578. :config
  579. (unbind-key "M-q" paredit-mode-map)
  580. )
  581. (provide '08-custom-packages)
  582. ;;; 08-custom-packages.el ends here