.emacs-all 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. ;;; Packages
  2. ;; Bootstrap Straight Package Manager
  3. (defvar bootstrap-version)
  4. (let ((bootstrap-file
  5. (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
  6. (bootstrap-version 5))
  7. (unless (file-exists-p bootstrap-file)
  8. (with-current-buffer
  9. (url-retrieve-synchronously
  10. "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
  11. 'silent 'inhibit-cookies)
  12. (goto-char (point-max))
  13. (eval-print-last-sexp)))
  14. (load bootstrap-file nil 'nomessage))
  15. ;; packages to install and load
  16. (straight-use-package 'auto-complete)
  17. (straight-use-package '(nano-theme :type git :host github
  18. :repo "rougier/nano-theme"))
  19. (straight-use-package
  20. '(slime-company :type git :host github :repo "anwyn/slime-company"))
  21. (straight-use-package 'sublimity)
  22. (straight-use-package 'dashboard)
  23. (straight-use-package 'all-the-icons)
  24. (straight-use-package 'neotree)
  25. (straight-use-package 'rust-mode)
  26. (straight-use-package 'powerline)
  27. (straight-use-package 'markdown-mode)
  28. (straight-use-package 'moe-theme)
  29. (straight-use-package 'ample-theme)
  30. (straight-use-package 'slime)
  31. (straight-use-package 'ac-slime)
  32. (straight-use-package 'evil)
  33. (straight-use-package 'dimmer)
  34. (straight-use-package 'magit)
  35. (straight-use-package 'diff-hl)
  36. (straight-use-package 'powerline-evil)
  37. (straight-use-package 'rainbow-delimiters)
  38. (require 'rainbow-delimiters)
  39. (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
  40. ;; Git stuff
  41. (require 'magit)
  42. (require 'diff-hl)
  43. ;; Just enable diff-hl per buffer,
  44. ;; it seems expensive
  45. ; (global-diff-hl-mode)
  46. (add-hook 'magit-pre-refresh-hook 'diff-hl-magit-pre-refresh)
  47. (add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh)
  48. (diff-hl-margin-mode t)
  49. (require 'dimmer)
  50. (setq dimmer-fraction 0.4)
  51. (dimmer-mode t)
  52. ;; always enable ido mode
  53. (require 'ido)
  54. (ido-mode t)
  55. (require 'evil)
  56. (evil-mode 1)
  57. ;; Enable tab behavior like vi
  58. (straight-use-package '(evil-tabs :type git :host github
  59. :repo "krisajenkins/evil-tabs"))
  60. (require 'evil-tabs)
  61. (global-evil-tabs-mode t)
  62. (require 'auto-complete)
  63. (global-auto-complete-mode t)
  64. (require 'slime)
  65. (require 'ac-slime)
  66. (slime-setup '(slime-fancy ac-slime))
  67. (add-hook 'slime-mode-hook 'set-up-slime-ac)
  68. (add-hook 'slime-repl-mode-hook 'set-up-slime-ac)
  69. (eval-after-load "auto-complete"
  70. '(add-to-list 'ac-modes 'slime-repl-mode))
  71. (require 'markdown-mode)
  72. (require 'powerline)
  73. (powerline-default-theme)
  74. ;; Better powerline support for evil mode
  75. (require 'powerline-evil)
  76. (require 'neotree)
  77. (global-set-key [f8] 'neotree-toggle)
  78. (require 'dashboard)
  79. (dashboard-setup-startup-hook)
  80. (require 'all-the-icons)
  81. (require 'sublimity)
  82. (require 'sublimity-scroll)
  83. (require 'sublimity-map) ;; experimental
  84. (require 'sublimity-attractive)
  85. (setq sublimity-scroll-weight 10
  86. sublimity-scroll-drift-length 5)
  87. (setq sublimity-map-size 30)
  88. (setq sublimity-map-fraction 0.3)
  89. (setq sublimity-map-text-scale -5)
  90. (sublimity-map-set-delay nil)
  91. (setq sublimity-attractive-centering-width nil)
  92. (setq backup-directory-alist
  93. `((".*" . ,temporary-file-directory)))
  94. (setq auto-save-file-name-transforms
  95. `((".*" ,temporary-file-directory t)))
  96. ;;; Generic options for all OSs
  97. ; Smooth mouse scroll a bit
  98. (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))
  99. (setq mouse-wheel-progressive-speed nil)
  100. ;; normal home/end behavior
  101. (global-set-key (kbd "<home>") 'beginning-of-line)
  102. (global-set-key (kbd "<end>") 'end-of-line)
  103. ;;; erc config
  104. (setq erc-nick "speskk")
  105. ;; Allow M-up / M-down behavior to switch windows
  106. (windmove-default-keybindings 'meta)
  107. (display-time-mode t)
  108. (display-line-numbers-mode t)
  109. ;; Load for macOS
  110. ;;; Slime/etc
  111. (if (eq system-type 'darwin)
  112. (progn
  113. (setq inferior-lisp-program "/opt/homebrew/bin/sbcl")
  114. (load (expand-file-name "~/.local/opt/quicklisp/slime-helper.el"))
  115. (load "/Users/swatson/.emacs.d/.erc-auth.el")
  116. ;; Font/themes/etc
  117. (load "/Users/swatson/Repos/dotfiles/emacs/mac-load/customs.el")
  118. ;; Custom Commands
  119. (defun connect-to-libera-erc () (interactive)
  120. (erc :server "irc.libera.chat" :port "6667"
  121. :nick "speskk" :password *libera-chat*))
  122. ;; Easily set cua mode on/off so that I don't have to
  123. ;; use shift+insert for paste on mac
  124. (global-set-key (kbd "C-c c") 'cua-mode)
  125. ;; Graphic Display
  126. (if (display-graphic-p)
  127. (progn
  128. (load-theme 'nano t)
  129. (nano-dark)))))
  130. ;; Load for Windows10
  131. (if (eq system-type 'windows-nt)
  132. (progn
  133. (load "C:/Users/watsonsi/Documents/GitHub/dotfiles/emacs/windows-load/customs.el")
  134. (setq visible-bell 1)
  135. (load-theme 'nano t)
  136. (nano-dark)))
  137. ;; Load for Linux
  138. ;; Load for Linux Term