kkk-package.el 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. ;;; kkk-package.el --- Package Config -*- lexical-binding: t; -*-
  2. ;; Copyright (C) 2023 Vinicius Teshima <vini.tes@pm.me>
  3. ;; Author: Vinicius Teshima <vini.tes@pm.me>
  4. ;; This program is free software; you can redistribute it and/or modify
  5. ;; it under the terms of the GNU General Public License as published by
  6. ;; the Free Software Foundation, either version 3 of the License, or
  7. ;; (at your option) any later version.
  8. ;; This program is distributed in the hope that it will be useful,
  9. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. ;; GNU General Public License for more details.
  12. ;; You should have received a copy of the GNU General Public License
  13. ;; along with this program. If not, see <https://www.gnu.org/licenses/>.
  14. ;;; Commentary:
  15. ;; This are my package config
  16. ;;; Code:
  17. (defgroup kkk-package nil
  18. "A group for all my modes."
  19. :group 'kkk-emacs)
  20. (defvar bootstrap-version)
  21. (let ((bootstrap-file
  22. (expand-file-name
  23. "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
  24. (bootstrap-version 5))
  25. (unless (file-exists-p bootstrap-file)
  26. (with-current-buffer
  27. (url-retrieve-synchronously
  28. "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
  29. 'silent 'inhibit-cookies)
  30. (goto-char (point-max))
  31. (eval-print-last-sexp)))
  32. (load bootstrap-file nil 'nomessage))
  33. (straight-use-package 'use-package)
  34. (setq straight-use-package-by-default t)
  35. ;; (setq use-package-verbose t)
  36. (setq use-package-always-defer t)
  37. ;; GCMH:
  38. (when (> (/ (car (memory-info)) 1024.0 1024.0) 4.0)
  39. (use-package gcmh
  40. :demand t
  41. :delight
  42. :functions (gcmh-mode gcmh-set-high-threshold)
  43. :defines gcmh-verbose
  44. :init (gcmh-mode t)
  45. :config
  46. (setq gcmh-verbose t)
  47. (gcmh-set-high-threshold)))
  48. (straight-use-package 'org)
  49. ;; Evil:
  50. (require 'kkk-evil)
  51. ;; Modes:
  52. (require 'kkk-modes)
  53. ;; Delight:
  54. (use-package delight
  55. :demand t
  56. :functions delight
  57. :config
  58. (delight '((abbrev-mode " Ab" emacs)
  59. (eldoc-mode " Edc" emacs)
  60. (glasses-mode nil emacs)
  61. (whitespace-mode nil emacs)
  62. (global-whitespace-mode nil emacs)
  63. (evil-collection-unimpaired-mode nil evil-collection-unimpaired)
  64. (org-indent-mode nil emacs)
  65. (org-src-mode nil emacs)
  66. (gcmh-mode nil gcmh))))
  67. ;; ;; Company:
  68. ;; (use-package company
  69. ;; :delight " Cp"
  70. ;; :hook (after-init . global-company-mode)
  71. ;; :bind (:map company-active-map
  72. ;; ("<tab>" . company-complete-selection))
  73. ;; :config
  74. ;; (setq company-minimum-prefix-length 1
  75. ;; company-idle-delay 1)
  76. ;; (setq company-global-modes '(not
  77. ;; eshell-mode vterm-mode shell-mode term-mode)))
  78. ;; FlyCheck:
  79. (defun load-flycheck ()
  80. "Load FlyCheck using `use-package'."
  81. (use-package flycheck
  82. :demand t
  83. :delight
  84. :functions global-flycheck-mode
  85. :defines flycheck-mode-line-prefix
  86. :init (global-flycheck-mode)
  87. :config (setq flycheck-mode-line-prefix "FC"))
  88. (remove-hook 'prog-mode #'load-flycheck)
  89. )
  90. (add-hook 'prog-mode #'load-flycheck)
  91. ;; Helpful
  92. (use-package helpful
  93. :bind (([remap describe-function] . helpful-function)
  94. ([remap describe-command] . helpful-command)
  95. ([remap describe-variable] . helpful-variable)
  96. ([remap describe-key] . helpful-key)
  97. ("C-h M" . helpful-macro)))
  98. ;; IEdit:
  99. (use-package iedit
  100. :bind ("M-E" . iedit-mode))
  101. ;; ;; Logos
  102. ;; (use-package logos
  103. ;; :bind (([remap narrow-to-region] . logos-narrow-dwim)
  104. ;; ([remap forward-page] . logos-forward-page-dwim)
  105. ;; ([remap backward-page] . logos-backward-page-dwim)))
  106. (use-package fancy-compilation
  107. :defer 5
  108. :functions fancy-compilation-mode
  109. :defines (fancy-compilation-quiet-prelude fancy-compilation-quiet-prolog)
  110. :init (fancy-compilation-mode)
  111. :config
  112. (setq fancy-compilation-quiet-prelude nil
  113. fancy-compilation-quiet-prolog nil))
  114. (defun load-magit ()
  115. "Load Magit using `use-package'."
  116. ;; Magit
  117. (use-package magit
  118. :demand t
  119. :functions (define-package)
  120. :custom
  121. (magit-display-buffer-function
  122. #'magit-display-buffer-same-window-except-diff-v1))
  123. ;; Magit-Todo
  124. (use-package magit-todos
  125. :functions magit-todos-mode
  126. :after magit
  127. :init (magit-todos-mode t))
  128. )
  129. ;; Vertigo:
  130. (use-package vertico
  131. :demand t
  132. :functions (vertico-mode vertico-exit-input)
  133. :defines vertico-map
  134. :bind (:map vertico-map
  135. ("C-x RET" . vertico-exit-input))
  136. :init (vertico-mode))
  137. ;; Marginalia
  138. (use-package marginalia
  139. :functions marginalia-mode
  140. ;; :bind (("M-A" . marginalia-cycle)
  141. ;; :map minibuffer-local-map
  142. ;; ("M-A" . marginalia-cycle))
  143. :init (marginalia-mode))
  144. ;; Ordeless:
  145. (use-package orderless
  146. :init
  147. (setq completion-styles '(orderless basic))
  148. (setq completion-category-defaults nil)
  149. (setq completion-category-overrides '((file (styles partial-completion)))))
  150. (defun load-popper ()
  151. "Load Popper using `use-package'."
  152. ;; Popper
  153. (use-package popper
  154. :demand t
  155. :functions (popper-mode popper-echo-mode)
  156. :defines popper-referende-buffers
  157. :bind (("C-c p l" . popper-toggle-latest)
  158. ("C-c p c" . popper-cycle)
  159. ("C-c p k" . popper-kill-latest-popup)
  160. ("C-c p t" . popper-toggle-type))
  161. :init
  162. (popper-mode t)
  163. (popper-echo-mode -1)
  164. :custom
  165. (setq popper-reference-buffers
  166. '(Custom-mode
  167. compilation-mode
  168. message-mode
  169. messages-buffer-mode "^\\*Messages\\*"
  170. help-mode "^\\*Help\\*"
  171. helpful-mode "^\\*helpful"
  172. occur-mode
  173. "^\\*Warning\\*"
  174. "^\\*Compile-Log\\*"
  175. "^\\*Backtrace\\*"
  176. "^\\*evil-registers\\*"
  177. "^\\*Apropos"
  178. "^Calc:"
  179. "^\\*ielm\\*"
  180. "^\\*Tex Help\\*"
  181. "^\\*Shell Command Output\\*"
  182. "^\\*Async Shell Command\\*"
  183. "^\\*Completions\\*"
  184. "[Oo]utput\\*"))
  185. )
  186. )
  187. ;; ;; Projectile
  188. (defun load-projectile()
  189. "Load Projectile using `use-package'."
  190. (use-package projectile
  191. :demand t
  192. :functions projectile-mode
  193. :defines (projectile-command-map projectile-mode-line-prefix
  194. projectile-mode-line-lighter)
  195. :bind (("C-x p" . projectile-command-map))
  196. :init (projectile-mode t)
  197. :config
  198. (setq projectile-mode-line-prefix " Pj")
  199. (setq projectile-mode-line-lighter " Pj"))
  200. )
  201. ;; ;; Rainbow Delimiter
  202. (use-package rainbow-delimiters
  203. :functions rainbow-delimiters-mode
  204. :hook (prog-mode . rainbow-delimiters-mode))
  205. ;; ;; Vterm
  206. (use-package vterm
  207. :defines (vterm-max-scrollback vterm-clear-scrollback-when-clearing)
  208. :config
  209. (setq vterm-max-scrollback 100000
  210. vterm-clear-scrollback-when-clearing t))
  211. ;; Which Key
  212. (use-package which-key
  213. :delight
  214. :functions which-key-mode
  215. :defines which-key-idle-delay
  216. :init (which-key-mode t)
  217. :config (setq which-key-idle-delay 1))
  218. (use-package dired
  219. :straight nil
  220. :bind (("C-x C-j" . dired-jump))
  221. :config
  222. (setq dired-listing-switches "-lagho --group-directories-first")
  223. (setq dired-kill-when-opening-new-dired-buffer t))
  224. ;; Diredfl
  225. (defun load-diredfl()
  226. "Load Diredfl using `use-package'."
  227. (use-package diredfl
  228. :demand t
  229. :functions diredfl-global-mode
  230. :init (diredfl-global-mode)
  231. )
  232. (remove-hook 'dired-mode-hook #'load-diredfl)
  233. )
  234. (add-hook 'dired-mode-hook #'load-diredfl)
  235. (unless (display-graphic-p)
  236. (use-package xclip
  237. :demand t
  238. :functions xclip-mode
  239. :defines xclip-method
  240. :init (xclip-mode 1)
  241. :config (setq xclip-method 'emacs))
  242. )
  243. ;; (require 'kkk-org)
  244. (use-package tempel
  245. :defer 5
  246. :custom
  247. (tempel-trigger-prefix "<")
  248. (setq tempel-path (concat user-emacs-directory "tempel.eld"))
  249. :init
  250. (add-hook 'prog-mode-hook #'tempel-abbrev-mode)
  251. (global-tempel-abbrev-mode)
  252. )
  253. ;; (use-package combobulate
  254. ;; :straight '(combobulate :type git :host github :repo "mickeynp/combobulate")
  255. ;; :preface (setq combobulate-key-prefix "C-c o")
  256. ;; :functions combobulate-mode
  257. ;; :hook ((python-ts-mode . combobulate-mode)
  258. ;; (js-ts-mode . combobulate-mode)
  259. ;; (css-ts-mode . combobulate-mode)
  260. ;; (yaml-ts-mode . combobulate-mode)
  261. ;; (json-ts-mode . combobulate-mode)
  262. ;; (typescript-ts-mode . combobulate-mode)
  263. ;; (tsx-ts-mode . combobulate-mode))
  264. ;; )
  265. (provide 'kkk-package)
  266. ;;; kkk-package.el ends here