** First line
#+begin_src emacs-lisp :comments none
-;;; init.el --- Amin Bandali's Emacs config -*- lexical-binding: t ; eval: (view-mode 1)-*-
+;;; init.el --- Amin Bandali's Emacs config -*- lexical-binding: t -*-
#+end_src
Enable =view-mode=, which both makes the file read-only (as a reminder
;; amin-... public variables or non-interactive functions
;; amin--... private anything (non-interactive), not safe for direct use
;; amin/... an interactive function; safe for M-x or keybinding
-;; amin:... an evil operator, motion, or command
;; amin|... a hook function
;; amin*... an advising function
;; amin@... a hydra command
#+begin_src emacs-lisp :comments none
;;; Code:
+
+\f
+;; * Initial setup
#+end_src
** Emacs initialization
(exec-path-from-shell-copy-env "SSH_AUTH_SOCK"))
#+end_src
-** COMMENT Only one custom theme at a time
+** Only one custom theme at a time
#+begin_src emacs-lisp
-(defadvice load-theme (before clear-previous-themes activate)
- "Clear existing theme settings instead of layering them"
- (mapc #'disable-theme custom-enabled-themes))
+;; only one custom theme at a time
+;;
+;; (defadvice load-theme (before clear-previous-themes activate)
+;; "Clear existing theme settings instead of layering them"
+;; (mapc #'disable-theme custom-enabled-themes))
#+end_src
** Server
:config (or (server-running-p) (server-mode)))
#+end_src
-** COMMENT Unicode support
+** Unicode support
Font stack with better unicode support, around =Ubuntu Mono= and
=Hack=.
-#+begin_src emacs-lisp :tangle no
-(dolist (ft (fontset-list))
- (set-fontset-font
- ft
- 'unicode
- (font-spec :name "Source Code Pro" :size 14))
- (set-fontset-font
- ft
- 'unicode
- (font-spec :name "DejaVu Sans Mono")
- nil
- 'append)
- ;; (set-fontset-font
- ;; ft
- ;; 'unicode
- ;; (font-spec
- ;; :name "Symbola monospacified for DejaVu Sans Mono")
- ;; nil
- ;; 'append)
- ;; (set-fontset-font
- ;; ft
- ;; #x2115 ; ℕ
- ;; (font-spec :name "DejaVu Sans Mono")
- ;; nil
- ;; 'append)
- (set-fontset-font
- ft
- (cons ?Α ?ω)
- (font-spec :name "DejaVu Sans Mono" :size 14)
- nil
- 'prepend))
+#+begin_src emacs-lisp
+;; unicode support
+;;
+;; (dolist (ft (fontset-list))
+;; (set-fontset-font
+;; ft
+;; 'unicode
+;; (font-spec :name "Source Code Pro" :size 14))
+;; (set-fontset-font
+;; ft
+;; 'unicode
+;; (font-spec :name "DejaVu Sans Mono")
+;; nil
+;; 'append)
+;; ;; (set-fontset-font
+;; ;; ft
+;; ;; 'unicode
+;; ;; (font-spec
+;; ;; :name "Symbola monospacified for DejaVu Sans Mono")
+;; ;; nil
+;; ;; 'append)
+;; ;; (set-fontset-font
+;; ;; ft
+;; ;; #x2115 ; ℕ
+;; ;; (font-spec :name "DejaVu Sans Mono")
+;; ;; nil
+;; ;; 'append)
+;; (set-fontset-font
+;; ft
+;; (cons ?Α ?ω)
+;; (font-spec :name "DejaVu Sans Mono" :size 14)
+;; nil
+;; 'prepend))
#+end_src
** Gentler font resizing
:CUSTOM_ID: core
:END:
+#+begin_src emacs-lisp :comments none
+\f
+;; * Core
+#+end_src
+
** Defaults
*** Time and battery in mode-line
* Borg's =layer/essentials=
+#+begin_src emacs-lisp :comments none
+\f
+;; * Borg's `layer/essentials'
+#+end_src
+
TODO: break this giant source block down into individual org sections.
#+begin_src emacs-lisp
* Editing
+#+begin_src emacs-lisp :comments none
+\f
+;; * Editing
+#+end_src
+
** Company
#+begin_src emacs-lisp
#+end_src
* Syntax and spell checking
+
+#+begin_src emacs-lisp :comments none
+\f
+;; * Syntax and spell checking
+#+end_src
+
#+begin_src emacs-lisp
(use-package flycheck
:defer 3
#+end_src
* Programming modes
+#+begin_src emacs-lisp :comments none
+\f
+;; * Programming modes
+#+end_src
+
** [[http://alloytools.org][Alloy]] (with [[https://github.com/dwwmmn/alloy-mode][alloy-mode]])
#+begin_src emacs-lisp
* Emacs Enhancements
+#+begin_src emacs-lisp :comments none
+\f
+;; * Emacs Enhancements
+#+end_src
+
** [[https://github.com/justbur/emacs-which-key][which-key]]
#+begin_quote
Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
-** COMMENT [[https://github.com/DarthFennec/highlight-indent-guides][highlight-indent-guides]] :ARCHIVE:
+** [[https://github.com/DarthFennec/highlight-indent-guides][highlight-indent-guides]]
#+begin_src emacs-lisp
(use-package highlight-indent-guides
+ :disabled t
:defer 3
:hook ((prog-mode . highlight-indent-guides-mode)
;; (org-mode . highlight-indent-guides-mode)
""))))
#+end_src
-** COMMENT slack :ARCHIVE:
+** slack
Hopefully temporary.
#+begin_src emacs-lisp
(use-package slack
+ :disabled t
:commands (slack-start)
:init
(eval-when-compile ; silence the byte-compiler
(setq alert-default-style 'notifier))
#+end_src
-** COMMENT magithub :ARCHIVE:
-
-For when I /have to/ use GH.
-
-#+begin_src emacs-lisp
-(use-package magithub
- :after magit
- :config
- (magithub-feature-autoinject t)
- (setq magithub-clone-default-directory "~/src/git"))
-#+end_src
-
** [[https://github.com/peterwvj/eshell-up][eshell-up]]
#+begin_src emacs-lisp
#+begin_src emacs-lisp
(use-package multi-term
:defer 1
- :bind (("C-c C-j" . term-line-mode)
- ("C-c m m" . multi-term)
- ("C-c m p" . multi-term-dedicated-toggle))
+ :bind (("C-c C-j" . term-line-mode)
+ ("C-c a s m m" . multi-term)
+ ("C-c a s m p" . multi-term-dedicated-toggle))
:config
(setq multi-term-program "/bin/screen"
;; TODO: add separate bindings for connecting to existing
'("C-z" "C-x" "C-c" "C-h" "C-y" "<ESC>")))
#+end_src
+** page-break-lines
+
+#+begin_src emacs-lisp
+(use-package page-break-lines
+ :config
+ (global-page-break-lines-mode))
+#+end_src
+
* Email
+#+begin_src emacs-lisp :comments none
+\f
+;; * Email
+#+end_src
+
#+begin_src emacs-lisp
(defvar amin-maildir (expand-file-name "~/mail/"))
(after! recentf
(bbdb-initialize 'gnus 'message))
#+end_src
-** COMMENT message-x
+** message-x
#+begin_src emacs-lisp
(use-package message-x
+ :disabled t
:custom
(message-x-completion-alist
(quote
. message-expand-group)))))
#+end_src
-** COMMENT gnus-harvest
+** gnus-harvest
#+begin_src emacs-lisp
(use-package gnus-harvest
+ :disabled t
:commands gnus-harvest-install
:demand t
:config
#+end_src
* Blogging
+
+#+begin_src emacs-lisp :comments none
+\f
+;; * Blogging
+#+end_src
+
** [[https://ox-hugo.scripter.co][ox-hugo]]
#+begin_src emacs-lisp
:CUSTOM_ID: post-initialization
:END:
+#+begin_src emacs-lisp :comments none
+\f
+;; * Post initialization
+#+end_src
+
Display how long it took to load the init file.
#+begin_src emacs-lisp