#+KEYWORDS: eshel emacs configuration literate babel org elisp
#+OPTIONS: ^:{}
#+STARTUP: overview indent
+#+MACRO: init-time (float-time (time-subtract after-init-time before-init-time))
* Introduction
:PROPERTIES:
=esy.org= will be made available automatically whenever Emacs
restarts. See also [[#bootstrap][Literate config bootstrap]].
+* Startup time
+
+I try to keep Emacs lean and fast. One of metric of interest with
+regards to Emacs' speed is its /startup/ speed, i.e. how long it takes
+between launching Emacs and being able to actually use it. The startup
+time of my current Emacs session (in which I am exporting this file)
+is *{{{init-time}}}*.
+
+
+
* Elisp Header
:PROPERTIES:
:CUSTOM_ID: header
graphviz-dot-mode highlight-escape-sequences htmlize
ialign keyfreq keycast iedit lin list-unicode-display
lorem-ipsum marginalia move-dup no-littering
- ns-auto-titlebar ob-prolog orderless org-superstar paredit
+ ns-auto-titlebar ob-prolog orderless paredit
pdf-tools rainbow-delimiters rg smtpmail-multi tramp typit
vterm vundo which-key whitespace-cleanup-mode))
(require 'recentf)
(require 'savehist)
(require 'saveplace)
- (require 'log-edit)
(recentf-mode 1)
(savehist-mode 1)
(save-place-mode 1)
- (setq bookmark-save-flag 1)
- (add-to-list 'savehist-additional-variables
- 'log-edit-comment-ring))
+ (setq bookmark-save-flag 1))
(esy/setup-history)
#+end_src
+** Persist Git log messages history across emacs sessions
+
+#+begin_src emacs-lisp
+ (with-eval-after-load 'log-edit
+ (add-to-list 'savehist-additional-variables
+ 'log-edit-comment-ring))
+#+end_src
+
* Display settings
:PROPERTIES:
:CUSTOM_ID: display
(defun esy/tangle-and-compile-config ()
"Tangle literate configuration file."
(interactive)
- (require 'org)
- (require 'ob)
- (org-babel-tangle-file esy/source-path
- esy/target-path
- (rx string-start
- (or "emacs-lisp" "elisp")
- string-end))
- (byte-compile-file esy/target-path))
+ (when (file-newer-than-file-p esy/source-path esy/target-path)
+ (require 'org)
+ (require 'ob)
+ (org-babel-tangle-file esy/source-path
+ esy/target-path
+ (rx string-start
+ (or "emacs-lisp" "elisp")
+ string-end))
+ (byte-compile-file esy/target-path)))
(add-hook 'kill-emacs-hook #'esy/tangle-and-compile-config)
#+end_src
"Path to my Org mode inbox file.")
(with-eval-after-load 'org
- (require 'org-superstar)
(require 'ob)
(require 'ob-prolog)
(setq org-agenda-files `(,esy/inbox-path)
org-log-into-drawer t
org-use-fast-todo-selection 'expert
org-clock-in-switch-to-state "INPROGRESS")
- (add-hook 'org-mode-hook #'org-superstar-mode)
(keymap-unset org-mode-map "C-," t))
#+end_src
(require 'consult)
(require 'consult-imenu)
(require 'avy)
- (require 'dtache)
(require 'move-dup)
(require 'embark)
(keymap-global-unset "s-a")
#+begin_src emacs-lisp
(defun esy/customize-ctl-x-map ()
"Configure the `C-x' keymap."
- (require 'rg)
(keymap-set ctl-x-map "b" #'consult-buffer)
(keymap-set ctl-x-4-map "b" #'consult-buffer-other-window)
(keymap-set ctl-x-map "!" #'consult-flymake)
(keymap-set ctl-x-map "l" #'org-store-link)
- (keymap-set ctl-x-map "s" rg-global-map)
(keymap-set ctl-x-map "c" #'org-capture)
(keymap-set ctl-x-map "o" #'ace-window)
(keymap-set ctl-x-map "w" #'esy/eww)
:END:
#+begin_src emacs-lisp
- (defun esy/setup-dtache ()
- "Setup `dtache'."
- (require 'dtache)
- (setq dtache-notification-function #'dtache-state-transitionion-echo-message)
- (dtache-setup))
-
- (add-hook 'after-init-hook #'esy/setup-dtache)
+ (with-eval-after-load 'dtache
+ (setq dtache-notification-function #'dtache-state-transitionion-echo-message))
#+end_src
* Mode-line customizations