** 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
: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
#+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
#+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