X-Git-Url: https://git.donarmstrong.com/?p=lib.git;a=blobdiff_plain;f=emacs_el%2Fconfiguration%2Fdon-configuration.org;h=51b159eb8f56c267657332e4908099d5e75b400a;hp=d5ffad7278144c9992b8d03893a157080f0cddf0;hb=91f57771c6e0bb956f94e7dce100c4f76f658892;hpb=5568b67a3f7f122b8fe0b0b923c8c003c6c0acba diff --git a/emacs_el/configuration/don-configuration.org b/emacs_el/configuration/don-configuration.org index d5ffad7..51b159e 100644 --- a/emacs_el/configuration/don-configuration.org +++ b/emacs_el/configuration/don-configuration.org @@ -28,12 +28,18 @@ Borrowed from https://github.com/nilcons/emacs-use-package-fast/ to load [[https://github.com/jwiegley/use-package/][use-package]] even faster #+BEGIN_SRC emacs-lisp - (setq package-enable-at-startup nil) - (setq package--init-file-ensured t) - (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") - ("melpa" . "https://melpa.org/packages/") - ("org" . "http://orgmode.org/elpa/") )) (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") + (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") + ("melpa" . "https://melpa.org/packages/") + ("org" . "http://orgmode.org/elpa/"))) (setq use-package-verbose (not (bound-and-true-p byte-compile-current-file)))) (mapc #'(lambda (add) (add-to-list 'load-path add)) (eval-when-compile @@ -52,9 +58,21 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster nil)) load-path)))))) - (require 'use-package) - (require 'diminish) + ;;; fix up info paths for packages + (with-eval-after-load "info" + (info-initialize) + (dolist (dir (directory-files package-user-dir)) + (let ((fdir (concat (file-name-as-directory package-user-dir) dir))) + (unless (or (member dir '("." ".." "archives" "gnupg")) + (not (file-directory-p fdir)) + (not (file-exists-p (concat (file-name-as-directory fdir) "dir")))) + (add-to-list 'Info-directory-list fdir))))) + + + (eval-when-compile + (require 'use-package)) (require 'bind-key) + (require 'diminish) #+END_SRC ** Paradox #+BEGIN_SRC emacs-lisp @@ -89,13 +107,14 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster * 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 @@ -113,9 +132,17 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster (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-expand + (use-package hippie-exp :bind* (("M-" . hippie-expand)) ) #+END_SRC @@ -291,6 +318,7 @@ value, scrolling continues until there is no more output. *** Avy #+BEGIN_SRC emacs-lisp (use-package avy + :if (>= emacs-major-version 25) :ensure t :bind (("C-c C-" . avy-goto-word-or-subword-1) ("C-c j j" . avy-goto-word-or-subword-1) @@ -338,17 +366,235 @@ value, scrolling continues until there is no more output. "~/lib/emacs_el/yasnippet-snippets/snippets/")) (add-to-list 'hippie-expand-try-functions-list 'yas-hippie-try-expand) + (yas-reload-all) ) ) #+END_SRC *** Auto-YASnippet #+BEGIN_SRC emacs-lisp (use-package auto-yasnippet + :ensure t :bind (("H-w" . aya-create) ("H-y" . aya-expand) ) ) #+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 (: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 + (use-package company-c-headers + :ensure t + :config (progn + (defun malb/ede-object-system-include-path () + "Return the system include path for the current buffer." + (when ede-object + (ede-system-include-path ede-object))) + + (setq company-c-headers-path-system + #'malb/ede-object-system-include-path) + + (add-to-list 'company-backends #'company-c-headers))) +#+END_SRC +*** Python +#+BEGIN_SRC emacs-lisp +(use-package company-anaconda + :ensure t + :config (add-to-list 'company-backends #'company-anaconda)) +#+END_SRC +*** Perl +#+BEGIN_SRC emacs-lisp + (use-package company-plsense + :ensure t + ) +#+END_SRC +*** LaTeX +#+BEGIN_SRC emacs-lisp + (use-package company-math + :ensure t) +#+END_SRC +#+BEGIN_SRC emacs-lisp + (use-package company-auctex + :ensure t + :config (progn + (defun company-auctex-labels (command &optional arg &rest ignored) + "company-auctex-labels backend" + (interactive (list 'interactive)) + (case command + (interactive (company-begin-backend 'company-auctex-labels)) + (prefix (company-auctex-prefix "\\\\.*ref{\\([^}]*\\)\\=")) + (candidates (company-auctex-label-candidates arg)))) + + (add-to-list 'company-backends + '(company-auctex-macros + company-auctex-environments + company-math-symbols-unicode + company-math-symbols-latex)) + + (add-to-list 'company-backends #'company-auctex-labels) + (add-to-list 'company-backends #'company-auctex-bibs) + ) + ) +#+END_SRC +#+BEGIN_SRC emacs-lisp + (use-package company-bibtex + :ensure t + ) +#+END_SRC +*** Shell + + #+BEGIN_SRC emacs-lisp + (use-package company-shell + :ensure t + :config (progn + (setq company-shell-modes '(sh-mode shell-mode)) + (add-to-list 'company-backends 'company-shell))) + #+END_SRC + +*** YaSnippet + + Add YasSippet support for all company backends. ([[https://github.com/syl20bnr/spacemacs/pull/179][source]]) + + *Note:* Do this at the end of =company-mode= config. + + #+BEGIN_SRC emacs-lisp + (defvar malb/company-mode/enable-yas t + "Enable yasnippet for all backends.") + + (defun malb/company-mode/backend-with-yas (backend) + (if (or (not malb/company-mode/enable-yas) + (and (listp backend) + (member 'company-yasnippet backend))) + backend + (append (if (consp backend) backend (list backend)) + '(:with company-yasnippet)))) + + (setq company-backends + (mapcar #'malb/company-mode/backend-with-yas company-backends)) + #+END_SRC + +*** All the words + + Enable/disable company completion from ispell dictionaries ([[https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-company.el][source]]) + + #+BEGIN_SRC emacs-lisp + (defun malb/toggle-company-ispell () + (interactive) + (cond + ((member '(company-ispell :with company-yasnippet) company-backends) + (setq company-backends (delete '(company-ispell :with company-yasnippet) company-backends)) + (add-to-list 'company-backends '(company-dabbrev :with company-yasnippet) t) + (message "company-ispell disabled")) + (t + (setq company-backends (delete '(company-dabbrev :with company-yasnippet) company-backends)) + (add-to-list 'company-backends '(company-ispell :with company-yasnippet) t) + (message "company-ispell enabled!")))) + + (defun malb/company-ispell-setup () + ;; @see https://github.com/company-mode/company-mode/issues/50 + (when (boundp 'company-backends) + (make-local-variable 'company-backends) + (setq company-backends (delete '(company-dabbrev :with company-yasnippet) company-backends)) + (add-to-list 'company-backends '(company-ispell :with company-yasnippet) t) + ;; https://github.com/redguardtoo/emacs.d/issues/473 + (if (and (boundp 'ispell-alternate-dictionary) + ispell-alternate-dictionary) + (setq company-ispell-dictionary ispell-alternate-dictionary)))) + #+END_SRC + +*** Tab DWIM + + 1. =yas-expand= is run first and does what it has to, then it calls =malb/indent-fold-or-complete=. + + 2. This function then hopefully does what I want: + + a. if a region is active, just indent + b. if we’re looking at a space after a non-whitespace character, we try some company-expansion + c. If =hs-minor-mode= or =outline-minor-mode= is active, try those next + d. otherwise call whatever would have been called otherwise. + + ([[http://emacs.stackexchange.com/q/21182/8930][source]], [[http://emacs.stackexchange.com/q/7908/8930][source]]) + +#+BEGIN_SRC emacs-lisp + (defun malb/indent-fold-or-complete (&optional arg) + (interactive "P") + (cond + ;; if a region is active, indent + ((use-region-p) + (indent-region (region-beginning) + (region-end))) + ;; if the next char is space or eol, but prev char not whitespace + ((and (not (active-minibuffer-window)) + (or (looking-at " ") + (looking-at "$")) + (looking-back "[^[:space:]]") + (not (looking-back "^"))) + + (cond (company-mode (company-complete-common)) + (auto-complete-mode (auto-complete)))) + + ;; no whitespace anywhere + ((and (not (active-minibuffer-window)) + (looking-at "[^[:space:]]") + (looking-back "[^[:space:]]") + (not (looking-back "^"))) + (cond + ((bound-and-true-p hs-minor-mode) + (save-excursion (end-of-line) (hs-toggle-hiding))) + ((bound-and-true-p outline-minor-mode) + (save-excursion (outline-cycle))))) + + ;; by default just call whatever was bound + (t + (let ((fn (or (lookup-key (current-local-map) (kbd "TAB")) + 'indent-for-tab-command))) + (if (not (called-interactively-p 'any)) + (fn arg) + (setq this-command fn) + (call-interactively fn)))))) + + (defun malb/toggle-fold () + (interactive) + (cond ((eq major-mode 'org-mode) + (org-force-cycle-archived)) + ((bound-and-true-p hs-minor-mode) + (save-excursion + (end-of-line) + (hs-toggle-hiding))) + + ((bound-and-true-p outline-minor-mode) + (save-excursion + (outline-cycle))))) + + (bind-key "" #'malb/indent-fold-or-complete) + (bind-key "C-" #'malb/toggle-fold) +#+END_SRC ** Tinyprocmail #+BEGIN_SRC emacs-lisp @@ -444,6 +690,13 @@ value, scrolling continues until there is no more output. (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 @@ -969,15 +1222,26 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** 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 @@ -1039,6 +1303,8 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** 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) @@ -1057,7 +1323,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+BEGIN_SRC emacs-lisp (use-package password-store :ensure f - :commands password-store-edit password-store-create + :commands password-store-edit password-store-generate ) #+END_SRC ** CSS mode @@ -1089,53 +1355,76 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (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 @@ -1173,6 +1462,24 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (setq-default org-log-done 'time) (setq-default org-agenda-ndays 5) + (setq org-agenda-sticky t) + (defun dla/show-org-agenda () + (interactive) + (let (agendabuffer + '(delq nil + (mapcar (lambda (x) + (and (string-match-p + "\*Org Agenda.*\*" + (buffer-name x)) + x) + ) + (buffer-list)))) + (if agendabuffer + (switch-to-buffer + (buffer-name agendabuffer)) + (org-agenda-list))) + (delete-other-windows)) + ;; agenda configuration ;; Do not dim blocked tasks (setq org-agenda-dim-blocked-tasks nil) @@ -1266,6 +1573,8 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori "~/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"))) @@ -1302,7 +1611,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** Capture Templates #+BEGIN_SRC emacs-lisp (setq org-capture-templates ;; mail-specific note template, identified by "m" - '(("m" "Mail" entry (file "~/projects/org-notes/refile.org") + `(("m" "Mail" entry (file "~/projects/org-notes/refile.org") "* %?\n\n Source: %u, [[%:link][%:description]]\n %:initial") ("t" "todo" entry (file "~/projects/org-notes/refile.org") "* TODO %?\n :PROPERTIES:\n :END:\n :LOGBOOK:\n :END:\n%U\n%a\n" :clock-in t :clock-resume t) @@ -1324,8 +1633,10 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori "* TODO Get/Read %? \n%U" :clock-in t :clock-resume t) ("p" "Phone call" entry (file "~/projects/org-notes/refile.org") "* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t) - ("J" "job" entry (file "~/projects/org-notes/refile.org") - "* TODO Apply for %a%? :job:\nSCHEDULED: %(format-time-string \"<%Y-%m-%d 17:00-17:30>\")\n%U\n%a\n" :clock-in t :clock-resume t) + ("J" "job" entry (file+olp "~/projects/org-notes/notes.org" + "Jobs" + ,(format-time-string "Positions %Y")) + "* TODO Apply for %? :job:\nSCHEDULED: <%<%Y-%m-%d>>\n%U\n%x\n" :clock-in t :clock-resume t) ("h" "Habit" entry (file "~/projects/org-notes/refile.org") "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"<%Y-%m-%d .+1d/3d>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n%a\n") ) @@ -1358,12 +1669,12 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (" I" . bh/punch-in) (" O" . bh/punch-out) (" SPC" . bh/clock-in-last-task) - ("" . org-agenda) + ("" . dla/show-org-agenda) ;; ("" . bh/org-todo) ("" . bh/widen) ("" . bh/set-truncate-lines) ("" . org-cycle-agenda-files) - (" " . bh/show-org-agenda) + (" " . dla/show-org-agenda) (" b" . bbdb) (" c" . calendar) (" f" . boxquote-insert-file) @@ -1371,8 +1682,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (" n" . bh/toggle-next-task-display) (" w" . widen) - (" o" . bh/make-org-scratch) - (" r" . boxquote-region) (" s" . bh/switch-to-scratch) @@ -1412,11 +1721,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (set-window-start (selected-window) (window-start (selected-window))))) - (defun bh/make-org-scratch () - (interactive) - (find-file "/tmp/publish/scratch.org") - (gnus-make-directory "/tmp/publish")) - (defun bh/switch-to-scratch () (interactive) (switch-to-buffer "*scratch*")) @@ -1441,6 +1745,16 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ; (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 @@ -1541,7 +1855,9 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (setq my-org-protocol-flag t)) (defadvice org-insert-todo-heading (after dla/create-id activate) - (org-id-get-create) + (unless (org-in-item-p) + (org-id-get-create) + ) ) ;; org modules @@ -1649,29 +1965,33 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+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 @@ -2063,18 +2383,19 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+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 @@ -2133,8 +2454,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori * Debian ** debian-changelog #+BEGIN_SRC emacs-lisp - (use-package debian-changelog - :ensure f + (use-package debian-changelog-mode :mode "debian/changelog" :config (setq debian-changelog-mailing-address "don@debian.org") @@ -2147,10 +2467,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (setq case-fold-search t) (setq confirm-kill-emacs (quote y-or-n-p)) (setq cperl-lazy-help-time nil) - (display-time) - (setq display-time-24hr-format t) - (setq display-time-day-and-date t) - (display-time-mode 1) (global-font-lock-mode 1) (icomplete-mode 1) (setq log-edit-keep-buffer t) @@ -2228,7 +2544,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori If the envvar EMACS_SERVER_NAME is set, consider this a separate emacs, and use a different desktop file to restore history #+BEGIN_SRC emacs-lisp - (use-package emacs + (use-package desktop :demand :config (setq desktop-base-file-name