load [[https://github.com/jwiegley/use-package/][use-package]] even faster
#+BEGIN_SRC emacs-lisp
(eval-and-compile
+ ;; add /etc/ssl/ca-global/ca-certificates.crt so that we can
+ ;; download packages when we're on Debian hosts which chop down the
+ ;; list of available certificates
+ (require 'gnutls)
+ (add-to-list 'gnutls-trustfiles "/etc/ssl/ca-global/ca-certificates.crt")
(setq package-enable-at-startup nil)
(setq package--init-file-ensured t)
(setq package-user-dir "~/var/emacs/elpa")
(eval-when-compile
(require 'use-package))
- (require 'diminish)
(require 'bind-key)
+ (require 'diminish)
#+END_SRC
** Paradox
#+BEGIN_SRC emacs-lisp
* Variables
** Safe Local Variables
#+BEGIN_SRC emacs-lisp
- (setq safe-local-variable-values
- (quote ((auto-save-default)
- (make-backup-files)
- (cperl-indent-level . 4)
- (indent-level . 4)
- (indent-tabs-mode . f)
- )))
+(setq safe-local-variable-values
+ (quote ((auto-save-default)
+ (make-backup-files)
+ (cperl-indent-level . 4)
+ (indent-level . 4)
+ (indent-tabs-mode . f)
+ (vcl-indent-level . 4)
+ )))
#+END_SRC
* Memory
#+BEGIN_SRC emacs-lisp
(add-hook 'minibuffer-exit-hook #'don/minibuffer-exit-hook)
#+END_SRC
* Modules
+** Spacemacs theme
+#+BEGIN_SRC emacs-lisp
+(use-package spacemacs-common
+ :ensure spacemacs-theme
+ :config
+ (load-theme 'spacemacs-dark t)
+ )
+#+END_SRC
** Hippie Expand
#+BEGIN_SRC emacs-lisp
(use-package hippie-exp
*** Avy
#+BEGIN_SRC emacs-lisp
(use-package avy
+ :if (>= emacs-major-version 25)
:ensure t
:bind (("C-c C-<SPC>" . avy-goto-word-or-subword-1)
("C-c j j" . avy-goto-word-or-subword-1)
#+END_SRC
** Company
#+BEGIN_SRC emacs-lisp
- (use-package company
- :ensure t
- :bind (("M-/" . company-complete))
- :config
- (setq company-echo-delay 0 ; remove blinking
- company-show-numbers t ; show numbers for easy selection
- company-selection-wrap-around t
- company-require-match nil
- company-dabbrev-ignore-case t
- company-dabbrev-ignore-invisible t
- company-dabbrev-other-buffers t
- company-dabbrev-downcase nil
- company-dabbrev-code-everywhere t
- company-tooltip-align-annotations t
- company-minimum-prefix-length 1
- company-global-modes '(not)
- company-lighter-base "(C)")
- (global-company-mode 1)
-
- (bind-key "C-n" #'company-select-next company-active-map)
- (bind-key "C-p" #'company-select-previous company-active-map)
- ; (bind-key "<tab>" #'company-complete company-active-map)
- (bind-key "M-?" #'company-show-doc-buffer company-active-map)
- (bind-key "M-." #'company-show-location company-active-map)
- (bind-key "M-/" #'company-complete-common org-mode-map)
- )
+(use-package company
+ :ensure t
+ :bind (("M-/" . company-complete))
+ :config
+ (setq company-echo-delay 0 ; remove blinking
+ company-show-numbers t ; show numbers for easy selection
+ company-selection-wrap-around t
+ company-require-match nil
+ company-dabbrev-ignore-case t
+ company-dabbrev-ignore-invisible t
+ company-dabbrev-other-buffers t
+ company-dabbrev-downcase nil
+ company-dabbrev-code-everywhere t
+ company-tooltip-align-annotations t
+ company-minimum-prefix-length 1
+ company-global-modes '(not)
+ company-lighter-base "(C)")
+ (global-company-mode 1)
+ :bind (:map company-active-map
+ ("C-n" . company-select-next)
+ ("C-p" . company-select-previous)
+ ("M-?" . company-show-doc-buffer)
+ ("M-." . company-show-location)
+ )
+ )
#+END_SRC
*** C/C++
#+BEGIN_SRC emacs-lisp
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
)
#+END_SRC
+** Do the Right Thing Indenting
+Attempts to automatically identify the right indentation for a file
+#+BEGIN_SRC emacs-lisp
+(use-package dtrt-indent
+ :ensure t
+)
+#+END_SRC
** VCL --editing varnish configuration files
#+BEGIN_SRC emacs-lisp
(use-package vcl-mode
** Polymode
#+BEGIN_SRC emacs-lisp
- (use-package polymode
- :config
- (use-package poly-R)
- (use-package poly-noweb)
- (use-package poly-markdown)
- :mode ("\\.Snw" . poly-noweb+r-mode)
- :mode ("\\.Rnw" . poly-noweb+r-mode)
- :mode ("\\.Rmd" . poly-markdown+r-mode)
- )
+(use-package poly-noweb
+ :ensure t
+ :after polymode
+
+ )
+(use-package poly-markdown
+ :ensure t
+ :after polymode
+ )
+(use-package poly-R
+ :ensure t
+ :after (:all polymode poly-markdown poly-noweb)
+ ; :mode ("\\.Snw" . poly-noweb+r-mode)
+ ; :mode ("\\.Rnw" . poly-noweb+r-mode)
+ ; :mode ("\\.Rmd" . poly-markdown+r-mode)
+ )
+(use-package polymode
+ :ensure t
+ )
+
#+END_SRC
** Outlining
** Web Mode
#+BEGIN_SRC emacs-lisp
(use-package web-mode
+ :load-path "/home/don/projects/web-mode/"
+ :mode ("\\.\\(tx|tmpl\\)\\'" . web-mode)
:config
(add-to-list 'auto-mode-alist '("\\.tmpl\\'" . web-mode))
(setq web-mode-enable-engine-detection t)
(setq default-abbrev-mode t))
#+END_SRC
+** Go language
+#+BEGIN_SRC emacs-lisp
+(use-package go-mode
+ :diminish "go"
+ :mode "\\.go"
+ )
+#+END_SRC
+
+** Expand region
+#+BEGIN_SRC emacs-lisp
+(use-package expand-region
+ :bind (("C-=" . 'er/expand-region))
+ )
+#+END_SRC
+
+** Dockerfile
+#+BEGIN_SRC emacs-lisp
+(use-package dockerfile-mode
+ :mode "Dockerfile"
+ )
+#+END_SRC
+
* Email
** Mutt
*** Message-mode
#+BEGIN_SRC emacs-lisp
- (use-package message
- :ensure f
- :diminish (message "✉")
- :mode ("muttng-[a-z0-9]+-[0-9]+-" . message-mode)
- :mode ("mutt-[a-z0-9]+-[0-9]+-" . message-mode)
- :hook 'my/message-mode-settings
- :hook 'turn-on-flyspell
- :bind (:map message-mode-map
- ("C-c C-a" . my/post-attach-file))
- :delight (message-mode "✉")
- :config
- (defun my/message-mode-settings ()
- (font-lock-add-keywords nil
- '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
- (0 'message-multiply-quoted-text-face))
- ("^[ \t]*>[ \t]*>.*$"
- (0 'message-double-quoted-text-face))))
- )
+(use-package message
+ :ensure f
+ :diminish (message "✉")
+ :mode ("muttng-[a-z0-9]+-[0-9]+-" . message-mode)
+ :mode ("mutt-[a-z0-9]+-[0-9]+-" . message-mode)
+ :hook 'my/message-mode-settings
+ :hook 'turn-on-flyspell
+ :bind (:map message-mode-map
+ ("C-c C-a" . my/post-attach-file))
+ :delight (message-mode "✉")
+ :config
+ (defun my/message-mode-settings ()
+ (font-lock-add-keywords nil
+ '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
+ (0 'message-multiply-quoted-text-face))
+ ("^[ \t]*>[ \t]*>.*$"
+ (0 'message-double-quoted-text-face))))
+ )
- (defun my/post-attach-file ()
- "Prompt for an attachment."
- (interactive)
- (let ((file (read-file-name "Attach file: " nil nil t nil)))
- (my/header-attach-file file "")))
-
- (defun my/header-attach-file (file description)
- "Attach a FILE to the current message (works with Mutt).
- Argument DESCRIPTION MIME description."
- (interactive "fAttach file: \nsDescription: ")
- (when (> (length file) 0)
- (save-excursion
- (save-match-data
- (save-restriction
- (widen)
- (goto-char (point-min))
- (search-forward-regexp "^$")
- (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
- description "\n"))
- (message (concat "Attached '" file "'."))
- (setq post-has-attachment t))))))
-
- (setq mail-yank-prefix "> ")
- )
+ (defun my/post-attach-file ()
+ "Prompt for an attachment."
+ (interactive)
+ (let ((file (read-file-name "Attach file: " nil nil t nil)))
+ (my/header-attach-file file "")))
+
+ (defun my/header-attach-file (file description)
+ "Attach a FILE to the current message (works with Mutt).
+ Argument DESCRIPTION MIME description."
+ (interactive "fAttach file: \nsDescription: ")
+ (when (> (length file) 0)
+ (save-excursion
+ (save-match-data
+ (save-restriction
+ (widen)
+ (goto-char (point-min))
+ (search-forward-regexp "^$")
+ (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
+ description "\n"))
+ (message (concat "Attached '" file "'."))
+ (setq post-has-attachment t))))))
+
+ (setq mail-yank-prefix "> ")
+ (setq mail-header-separator "") ; fix broken header detection
+)
#+END_SRC
*** Muttrc mode
#+BEGIN_SRC emacs-lisp
"~/projects/org-notes/wildman.org"
"~/projects/org-notes/uddin.org"
"~/projects/org-notes/reviews.org"
+ "~/projects/org-notes/laurel.org"
+ "~/projects/org-notes/from-calendar.org"
"~/org-mode/from-mobile.org"
"~/projects/org-notes/fh.org")))
("<f9> I" . bh/punch-in)
("<f9> O" . bh/punch-out)
("<f9> SPC" . bh/clock-in-last-task)
- ("<f12>" . org-agenda)
+ ("<f12>" . dla/show-org-agenda)
;; ("<f5>" . bh/org-todo)
("<S-f5>" . bh/widen)
("<f7>" . bh/set-truncate-lines)
("<f8>" . org-cycle-agenda-files)
- ("<f9> <f9>" . org-agenda)
+ ("<f9> <f9>" . dla/show-org-agenda)
("<f9> b" . bbdb)
("<f9> c" . calendar)
("<f9> f" . boxquote-insert-file)
; (lambda ()
; (add-hook 'before-save-hook 'my/org-add-ids-to-headlines-in-file nil 'local)))
#+END_SRC
+** Org ID locations
+#+BEGIN_SRC emacs-lisp
+(use-package find-lisp
+ :ensure t)
+(setq org-agenda-text-search-extra-files
+ (append '(agenda-archives)
+ (find-lisp-find-files "~/projects/org-notes" "\.org$")
+ (find-lisp-find-files "~/projects/org-notes" "\.org_archive$")
+ ))
+#+END_SRC
** Keywords (TODO)
#+BEGIN_SRC emacs-lisp
(setq org-todo-keywords
#+END_SRC
** General Org Babel Configuration
#+BEGIN_SRC emacs-lisp
- ;; org babel support
- (org-babel-do-load-languages
- 'org-babel-load-languages
- '((emacs-lisp . t )
- (R . t)
- (latex . t)
- (ditaa . t)
- (dot . t)
- ))
- ;; use graphviz-dot for dot things
- (add-to-list 'org-src-lang-modes '("dot" . graphviz-dot))
- ;; org-babel-by-backend
- (defmacro org-babel-by-backend (&rest body)
- `(case (if (boundp 'backend)
- (org-export-backend-name backend)
- nil) ,@body))
-
- (defun my/fix-inline-images ()
- (when org-inline-image-overlays
- (org-redisplay-inline-images)))
-
- (add-hook 'org-babel-after-execute-hook
- 'my/fix-inline-images)
+;; org babel support
+(org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((emacs-lisp . t )
+ (R . t)
+ (latex . t)
+ (ditaa . t)
+ (dot . t)
+ ))
+;; set the right path to ditaa.jar
+(setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar")
+;; use graphviz-dot for dot things
+(add-to-list 'org-src-lang-modes '("dot" . graphviz-dot))
+;; do not indent begin_src blocks
+(setq org-edit-src-content-indentation 0)
+;; org-babel-by-backend
+(defmacro org-babel-by-backend (&rest body)
+ `(case (if (boundp 'backend)
+ (org-export-backend-name backend)
+ nil) ,@body))
+
+(defun my/fix-inline-images ()
+ (when org-inline-image-overlays
+ (org-redisplay-inline-images)))
+
+(add-hook 'org-babel-after-execute-hook
+ 'my/fix-inline-images)
#+END_SRC
** LaTeX configuration
#+END_SRC
** Org-Gcal
#+BEGIN_SRC emacs-lisp
- (use-package calfw
- :ensure f
- )
- (use-package calfw-org
- :ensure f
- )
- (use-package org-gcal
- :ensure f
- :config '((if (file-readable-p "~/.hide/org_gcal.el")
- (load-file "~/.hide/org_gcal.el"))
- )
- )
+(use-package calfw
+ :ensure f
+ )
+(use-package calfw-org
+ :ensure f
+ )
+(use-package org-gcal
+ :if (file-readable-p "~/.hide/org_gcal.el")
+ :ensure f
+ :config '((if (file-readable-p "~/.hide/org_gcal.el")
+ (load-file "~/.hide/org_gcal.el"))
+ )
+ )
#+END_SRC
** appt integration
#+BEGIN_SRC emacs-lisp