123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- ;;; ~/.config/doom/config.el -*- lexical-binding: t; -*-
- ;; (defvar xdg-data (getenv "XDG_DATA_HOME"))
- ;; (defvar xdg-bin (getenv "XDG_BIN_HOME"))
- ;; (defvar xdg-cache (getenv "XDG_CACHE_HOME"))
- ;; (defvar xdg-config (getenv "XDG_CONFIG_HOME"))
- (add-to-list 'default-frame-alist '(inhibit-double-buffering . t))
- (setq-default
- user-full-name "Colin Powell"
- user-mail-address "colin@onec.me"
- +workspaces-switch-project-function #'ignore
- +pretty-code-enabled-modes '(emacs-lisp-mode org-mode)
- +format-on-save-enabled-modes '(not emacs-lisp-mode)
- )
- ;; (setq-hook! 'minibuffer-setup-hook show-trailing-whitespace nil)
- (setq ns-use-thin-smoothing t)
- (add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
- (add-to-list 'default-frame-alist '(ns-appearance . dark))
- ;(add-hook 'window-setup-hook 'toggle-frame-maximized)
- ;; Keybindings
- (map!
- ;; Easier window navigation
- :n "C-h" #'evil-window-left
- :n "C-j" #'evil-window-down
- :n "C-k" #'evil-window-up
- :n "C-l" #'evil-window-right
- (:after treemacs-evil
- (:map evil-treemacs-state-map
- "C-h" #'evil-window-left
- "C-l" #'evil-window-right))
- ;; some handy alt shortcuts
- :n "s-g" #'magit-status
- :n "s-c" #'org-capture
- ;; Let's be like our friends Slack and Discord
- :n "s-p" #'+ivy/project-search
- :n "s-k" #'counsel-recentf
- ;; Leader tricks
- (:leader
- (:prefix "f"
- :desc "Find file in dotfiles" :n "t" #'+hlissner/find-in-dotfiles
- :desc "Browse dotfiles" :n "T" #'+hlissner/browse-dotfiles)
- (:prefix "t"
- :desc "Toggle visual line mode" :n "v" #'visual-line-mode
- :desc "Toggle auto fill mode" :n "a" #'auto-fill-mode
- :desc "Switch themes" :n "t" #'counsel-load-theme)
- (:prefix "o"
- :desc "Elfeed feed reader" :n "f" #'elfeed)
- (:prefix "p"
- :desc "Black buffer" :n "b" #'blacken-buffer)
- (:prefix "y"
- :desc "Yank pop!" :n "p" #'counsel-yank-pop
- :desc "Git yank link" :n "g" #'git-link)
- (:prefix "n"
- :desc "Browse mode notes" :n "m" #'+hlissner/find-notes-for-major-mode
- :desc "Browse project notes" :n "p" #'+hlissner/find-notes-for-project)))
- ;; Company mode
- (require 'company)
- (setq company-idle-delay 0.2
- completion-ignore-case t
- company-minimum-prefix-length 3
- company-async-timeout 2)
- ;;(set! :company-backend 'python-mode '(company-anaconda))
- (add-hook 'prog-mode-hook 'global-company-mode)
- ;; importmagic
- (add-hook 'python-mode-hook 'importmagic-mode)
- ;; Golang
- (add-hook 'go-mode-hook 'gofmt-before-save)
- ;; app/rss
- (add-hook! 'elfeed-show-mode-hook (text-scale-set 1.5))
- ;; emacs/eshell
- (after! eshell
- (set-eshell-alias!
- "f" "find-file $1"
- "l" "ls -lh"
- "d" "dired $1"
- "dc" "docker-compose $1"
- "gl" "(call-interactively 'magit-log-current)"
- "gs" "magit-status"
- "gc" "magit-commit"
- "rg" "rg --color=always $*"))
- ;; Add notice for lines over 88 chars
- ;;(setq-default
- ;; whitespace-line-column 88
- ;; whitespace-style '(face lines-tail))
- ;; tools/magit
- (setq magit-repository-directories '(("~/devel" . 2))
- magit-save-repository-buffers nil)
- ;; make the lines in the buffer wrap around the edges of the screen.
- ;(add-hook 'org-mode-hook '(lambda () (visual-line-mode)))
- ;;; Setup sending email with msmtp
- (setq send-mail-function 'sendmail-send-it
- sendmail-program "/usr/local/bin/msmtp"
- mail-specify-envelope-from t
- message-sendmail-envelope-from 'header
- mail-envelope-from 'header)
- ;; enable ivy buffer icons
- (setq ivy-buffer-icons t)
- ;; Hide hidden files in treemacs
- (setq treemacs-show-hidden-files nil)
- ;;(load! "+org-daypage") ;; hardwire this baby in here somewhere
- (load! "+ui") ;; My ui mods. Also contains ligature stuff.
- (load! "+music") ;; Music stuff, visible through SPC-a-m. Not perfect.
- (load! "+ranger") ;; File manager stuff
- ;;(load! "+reason") ;; ReasonML stuff
- (load! "+mail") ;; Mail stuff
- (load! "+org") ;; Org mode stuff like todos and rebindings
- (load! "+org-gcal") ;; Org mode stuff like todos and rebindings
- (load! "+wttrin") ;; Weather config
|