129 lines
4.0 KiB
EmacsLisp
129 lines
4.0 KiB
EmacsLisp
;;; ~/.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)
|
|
|
|
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)")))
|
|
;;
|
|
;; 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))
|
|
|
|
;; 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 "Switch themes" :n "t" #'counsel-load-theme)
|
|
(:prefix "o"
|
|
:desc "Elfeed feed reader" :n "f" #'elfeed)
|
|
(:prefix "a"
|
|
:desc "Save all org buffers" :n "a" #'org-save-all-org-buffers
|
|
:desc "Set task deadline" :n "d" #'org-deadline
|
|
:desc "New journal entry" :n "j" #'org-journal-new-entry
|
|
:desc "Sync gcal with org" :n "g" #'org-gcal-sync
|
|
:desc "Open agenda" :n "o" #'org-agenda-list
|
|
:desc "Schedule task" :n "s" #'org-schedule)
|
|
(: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)
|
|
|
|
;; 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
|