;;; ~/.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