config.el 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. ;;; ~/.config/doom/config.el -*- lexical-binding: t; -*-
  2. ;; (defvar xdg-data (getenv "XDG_DATA_HOME"))
  3. ;; (defvar xdg-bin (getenv "XDG_BIN_HOME"))
  4. ;; (defvar xdg-cache (getenv "XDG_CACHE_HOME"))
  5. ;; (defvar xdg-config (getenv "XDG_CONFIG_HOME"))
  6. (add-to-list 'default-frame-alist '(inhibit-double-buffering . t))
  7. (setq-default
  8. user-full-name "Colin Powell"
  9. user-mail-address "colin@onec.me"
  10. +workspaces-switch-project-function #'ignore
  11. +pretty-code-enabled-modes '(emacs-lisp-mode org-mode)
  12. +format-on-save-enabled-modes '(not emacs-lisp-mode)
  13. )
  14. ;; (setq-hook! 'minibuffer-setup-hook show-trailing-whitespace nil)
  15. (setq ns-use-thin-smoothing t)
  16. (add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
  17. (add-to-list 'default-frame-alist '(ns-appearance . dark))
  18. ;(add-hook 'window-setup-hook 'toggle-frame-maximized)
  19. (setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)")))
  20. ;;
  21. ;; Keybindings
  22. (map!
  23. ;; Easier window navigation
  24. :n "C-h" #'evil-window-left
  25. :n "C-j" #'evil-window-down
  26. :n "C-k" #'evil-window-up
  27. :n "C-l" #'evil-window-right
  28. (:after treemacs-evil
  29. (:map evil-treemacs-state-map
  30. "C-h" #'evil-window-left
  31. "C-l" #'evil-window-right))
  32. ;; Leader tricks
  33. (:leader
  34. (:prefix "f"
  35. :desc "Find file in dotfiles" :n "t" #'+hlissner/find-in-dotfiles
  36. :desc "Browse dotfiles" :n "T" #'+hlissner/browse-dotfiles)
  37. (:prefix "t"
  38. :desc "Switch themes" :n "t" #'counsel-load-theme)
  39. (:prefix "o"
  40. :desc "Elfeed feed reader" :n "f" #'elfeed)
  41. (:prefix "a"
  42. :desc "Save all org buffers" :n "a" #'org-save-all-org-buffers
  43. :desc "Set task deadline" :n "d" #'org-deadline
  44. :desc "New journal entry" :n "j" #'org-journal-new-entry
  45. :desc "Sync gcal with org" :n "g" #'org-gcal-sync
  46. :desc "Open agenda" :n "o" #'org-agenda-list
  47. :desc "Schedule task" :n "s" #'org-schedule)
  48. (:prefix "p"
  49. :desc "Black buffer" :n "b" #'blacken-buffer)
  50. (:prefix "y"
  51. :desc "Yank pop!" :n "p" #'counsel-yank-pop
  52. :desc "Git yank link" :n "g" #'git-link)
  53. (:prefix "n"
  54. :desc "Browse mode notes" :n "m" #'+hlissner/find-notes-for-major-mode
  55. :desc "Browse project notes" :n "p" #'+hlissner/find-notes-for-project)))
  56. ;; Company mode
  57. (require 'company)
  58. (setq company-idle-delay 0.2
  59. completion-ignore-case t
  60. company-minimum-prefix-length 3
  61. company-async-timeout 2)
  62. ;;(set! :company-backend 'python-mode '(company-anaconda))
  63. (add-hook 'prog-mode-hook 'global-company-mode)
  64. ;; importmagic
  65. (add-hook 'python-mode-hook 'importmagic-mode)
  66. ;; Golang
  67. (add-hook 'go-mode-hook 'gofmt-before-save)
  68. ;; app/rss
  69. (add-hook! 'elfeed-show-mode-hook (text-scale-set 1.5))
  70. ;; emacs/eshell
  71. (after! eshell
  72. (set-eshell-alias!
  73. "f" "find-file $1"
  74. "l" "ls -lh"
  75. "d" "dired $1"
  76. "dc" "docker-compose $1"
  77. "gl" "(call-interactively 'magit-log-current)"
  78. "gs" "magit-status"
  79. "gc" "magit-commit"
  80. "rg" "rg --color=always $*"))
  81. ;; Add notice for lines over 88 chars
  82. ;;(setq-default
  83. ;; whitespace-line-column 88
  84. ;; whitespace-style '(face lines-tail))
  85. ;; tools/magit
  86. (setq magit-repository-directories '(("~/devel" . 2))
  87. magit-save-repository-buffers nil)
  88. ;; make the lines in the buffer wrap around the edges of the screen.
  89. ;(add-hook 'org-mode-hook '(lambda () (visual-line-mode)))
  90. ;;; Setup sending email with msmtp
  91. (setq send-mail-function 'sendmail-send-it
  92. sendmail-program "/usr/local/bin/msmtp"
  93. mail-specify-envelope-from t
  94. message-sendmail-envelope-from 'header
  95. mail-envelope-from 'header)
  96. ;; Hide hidden files in treemacs
  97. (setq treemacs-show-hidden-files nil)
  98. ;;(load! "+org-daypage") ;; hardwire this baby in here somewhere
  99. (load! "+ui") ;; My ui mods. Also contains ligature stuff.
  100. (load! "+music") ;; Music stuff, visible through SPC-a-m. Not perfect.
  101. (load! "+ranger") ;; File manager stuff
  102. ;;(load! "+reason") ;; ReasonML stuff
  103. (load! "+mail") ;; Mail stuff
  104. (load! "+org") ;; Org mode stuff like todos and rebindings
  105. (load! "+org-gcal") ;; Org mode stuff like todos and rebindings
  106. (load! "+wttrin") ;; Weather config