133 lines
4.9 KiB
EmacsLisp
133 lines
4.9 KiB
EmacsLisp
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
|
|
|
;; Place your private configuration here! Remember, you do not need to run 'doom
|
|
;; sync' after modifying this file!
|
|
|
|
|
|
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
|
;; clients, file templates and snippets.
|
|
(setq user-full-name "John Doe"
|
|
user-mail-address "john@doe.com")
|
|
|
|
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
|
|
;; are the three important ones:
|
|
;;
|
|
;; + `doom-font'
|
|
;; + `doom-variable-pitch-font'
|
|
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
|
|
;; presentations or streaming.
|
|
;;
|
|
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
|
|
;; font string. You generally only need these two:
|
|
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
|
|
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
|
|
|
|
;; There are two ways to load a theme. Both assume the theme is installed and
|
|
;; available. You can either set `doom-theme' or manually load a theme with the
|
|
;; `load-theme' function. This is the default:
|
|
;(setq doom-theme 'doom-one)
|
|
(setq doom-theme 'doom-nord)
|
|
(setq doom-font (font-spec :family "LiterationMono Nerd Font" :size 14))
|
|
|
|
;; If you use `org' and don't want your org files in the default location below,
|
|
;; change `org-directory'. It must be set before org loads!
|
|
(setq org-directory "~/org/")
|
|
|
|
;; This determines the style of line numbers in effect. If set to `nil', line
|
|
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
|
(setq display-line-numbers-type t)
|
|
|
|
|
|
;; Here are some additional functions/macros that could help you configure Doom:
|
|
;;
|
|
;; - `load!' for loading external *.el files relative to this one
|
|
;; - `use-package!' for configuring packages
|
|
;; - `after!' for running code after a package has loaded
|
|
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
|
;; this file. Emacs searches the `load-path' when you load packages with
|
|
;; `require' or `use-package'.
|
|
;; - `map!' for binding new keys
|
|
;;
|
|
;; To get information about any of these functions/macros, move the cursor over
|
|
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
|
;; This will open documentation for it, including demos of how they are used.
|
|
;;
|
|
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
|
;; they are implemented.
|
|
|
|
(use-package! puppet-mode
|
|
:mode "\\.pp\\'")
|
|
|
|
(setq doom-leader-key ",")
|
|
(setq doom-leader-alt-key "M-,")
|
|
(setq doom-localleader-key ", m")
|
|
(setq doom-localleader-alt-key "M-, m")
|
|
(setq org-todo-keywords '((sequence "SWEEP(s)" "TODO(t)" "|" "DONE(d)")
|
|
(sequence "[ ](T)" "[-](p)" "[?](m)" "|" "[X](D)")
|
|
(sequence "NEXT(n)" "WAITING(w)" "LATER(l)" "|" "CANCELLED(c)")))
|
|
|
|
(map! :n "SPC" #'evil-ex
|
|
:gin "C-u" #'universal-argument
|
|
:n "C-h" #'evil-window-left
|
|
:n "C-j" #'evil-window-down
|
|
:n "C-k" #'evil-window-up
|
|
:n "C-l" #'evil-window-right
|
|
:n "-" #'flycheck-next-error
|
|
:n "_" #'flycheck-previous-error)
|
|
|
|
|
|
;; Eshell stuff
|
|
(setenv "SSH_AUTH_SOCK" (concat (getenv "HOME") "/.gnupg/S.gpg-agent.ssh"))
|
|
|
|
;(eshell/addpath "/opt/puppetlabs/pdk/bin")
|
|
|
|
;; Where to find rubocop
|
|
(setq flycheck-ruby-rubocop-executable "~/.rbenv/shims/rubocop")
|
|
|
|
(eval-after-load "flymake-json"
|
|
'(defun flymake-json-command (filename)
|
|
"Construct a command that flymake can use to check json source in FILENAME."
|
|
(list "jsonlint" "-V" "/Users/hunner/.doom.d/draft-07.json" "-c" "-q" filename)))
|
|
|
|
(after! org
|
|
(add-to-list 'org-export-backends 'confluence))
|
|
|
|
;; for https://github.com/zerolfx/copilot.el
|
|
;; accept completion from copilot and fallback to company
|
|
(defun my-tab ()
|
|
(interactive)
|
|
(or (copilot-accept-completion)
|
|
(company-indent-or-complete-common nil)))
|
|
(use-package! copilot
|
|
:hook (prog-mode . copilot-mode)
|
|
:bind (("C-TAB" . 'copilot-accept-completion-by-word)
|
|
("C-<tab>" . 'copilot-accept-completion-by-word)
|
|
:map company-active-map
|
|
("<tab>" . 'my-tab)
|
|
("TAB" . 'my-tab)
|
|
:map company-mode-map
|
|
("<tab>" . 'my-tab)
|
|
("TAB" . 'my-tab)))
|
|
|
|
(use-package! ox-jira
|
|
:after org)
|
|
|
|
;; From https://github.com/hlissner/doom-emacs/issues/581
|
|
(defun dlukes/ediff-doom-config (file)
|
|
"ediff the current config with the examples in doom-emacs-dir
|
|
|
|
There are multiple config files, so FILE specifies which one to
|
|
diff.
|
|
"
|
|
(interactive
|
|
(list (read-file-name "Config file to diff: " doom-user-dir)))
|
|
(let* ((stem (file-name-base file))
|
|
(customized-file (format "%s.el" stem))
|
|
(template-file-regex (format "^%s.example.el$" stem)))
|
|
(ediff-files
|
|
(concat doom-user-dir customized-file)
|
|
(car (directory-files-recursively
|
|
doom-emacs-dir
|
|
template-file-regex
|
|
nil
|
|
(lambda (d) (not (string-prefix-p "." (file-name-nondirectory d)))))))))
|