Adding performance tweaks through use-package and gcs
This commit is contained in:
parent
a55ff13fb3
commit
96ecdb6cf2
253
README.org
253
README.org
|
@ -2,73 +2,63 @@
|
|||
#+AUTHOR: Chris Cochrun
|
||||
|
||||
* Table of Contents :toc:
|
||||
- [[#early-init][Early Init]]
|
||||
- [[#init][Init]]
|
||||
- [[#set-basic-ui-config][Set basic UI config]]
|
||||
- [[#startup-performance][Startup Performance]]
|
||||
- [[#keep-folders-clean][Keep Folders Clean]]
|
||||
- [[#set-basic-ui-config][Set basic UI config]]
|
||||
- [[#lets-bootstrap-straightel][Let's bootstrap straight.el]]
|
||||
- [[#keybindings][Keybindings]]
|
||||
- [[#undo-tree][Undo-Tree]]
|
||||
- [[#better-ui][Better UI]]
|
||||
- [[#completion][Completion]]
|
||||
- [[#help][Help]]
|
||||
- [[#format][Format]]
|
||||
- [[#org-mode][Org Mode]]
|
||||
- [[#magit][Magit]]
|
||||
- [[#garbage-collection][Garbage Collection]]
|
||||
- [[#early-init][Early Init]]
|
||||
|
||||
* Early Init
|
||||
#+PROPERTY: header-args:emacs-lisp :tangle early-init.el
|
||||
As of right now I haven't fully setup my early-init file, this does not export into the early-init.el file currently as it's just a copy from Doom's early-init.
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
;;; early-init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; Emacs 27.1 introduced early-init.el, which is run before init.el, before
|
||||
;; package and UI initialization happens, and before site files are loaded.
|
||||
|
||||
;; A big contributor to startup times is garbage collection. We up the gc
|
||||
;; threshold to temporarily prevent it from running, then reset it later by
|
||||
;; enabling `gcmh-mode'. Not resetting it will cause stuttering/freezes.
|
||||
(setq gc-cons-threshold most-positive-fixnum)
|
||||
|
||||
;; In noninteractive sessions, prioritize non-byte-compiled source files to
|
||||
;; prevent the use of stale byte-code. Otherwise, it saves us a little IO time
|
||||
;; to skip the mtime checks on every *.elc file.
|
||||
(setq load-prefer-newer noninteractive)
|
||||
|
||||
;; In Emacs 27+, package initialization occurs before `user-init-file' is
|
||||
;; loaded, but after `early-init-file'. Doom handles package initialization, so
|
||||
;; we must prevent Emacs from doing it early!
|
||||
(setq package-enable-at-startup nil)
|
||||
(fset #'package--ensure-init-file #'ignore) ; DEPRECATED Removed in 28
|
||||
|
||||
;; `file-name-handler-alist' is consulted on every `require', `load' and various
|
||||
;; path/io functions. You get a minor speed up by nooping this. However, this
|
||||
;; may cause problems on builds of Emacs where its site lisp files aren't
|
||||
;; byte-compiled and we're forced to load the *.el.gz files (e.g. on Alpine)
|
||||
(unless (daemonp)
|
||||
(defvar doom--initial-file-name-handler-alist file-name-handler-alist)
|
||||
(setq file-name-handler-alist nil)
|
||||
;; Restore `file-name-handler-alist' later, because it is needed for handling
|
||||
;; encrypted or compressed files, among other things.
|
||||
(defun doom-reset-file-handler-alist-h ()
|
||||
;; Re-add rather than `setq', because changes to `file-name-handler-alist'
|
||||
;; since startup ought to be preserved.
|
||||
(dolist (handler file-name-handler-alist)
|
||||
(add-to-list 'doom--initial-file-name-handler-alist handler))
|
||||
(setq file-name-handler-alist doom--initial-file-name-handler-alist))
|
||||
(add-hook 'emacs-startup-hook #'doom-reset-file-handler-alist-h))
|
||||
|
||||
;; Ensure Doom is running out of this file's directory
|
||||
(setq user-emacs-directory (file-name-directory load-file-name))
|
||||
|
||||
;; Load the heart of Doom Emacs
|
||||
(load (concat user-emacs-directory "core/core") nil 'nomessage)
|
||||
#+end_src
|
||||
* Init
|
||||
#+PROPERTY: header-args:emacs-lisp :tangle init.el
|
||||
:PROPERTIES:
|
||||
:header-args: emacs-lisp :tangle init.el
|
||||
:END:
|
||||
|
||||
This init section tangles out to =init.el=. We'll do most of our configuring here.
|
||||
** Startup Performance
|
||||
|
||||
Let's create a message that will tell us how long it takes emacs to load in order to keep an eye on performance.
|
||||
#+begin_src emacs-lisp
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
(defun chris/display-startup-time ()
|
||||
(message "Emacs loaded in %s with %d garbage collections."
|
||||
(format "%.2f seconds"
|
||||
(float-time
|
||||
(time-subtract after-init-time before-init-time)))
|
||||
gcs-done))
|
||||
(add-hook 'emacs-startup-hook #'chris/display-startup-time)
|
||||
#+end_src
|
||||
|
||||
Let's also set the =gc-cons-threshold= variable to a high setting for the remainder of our setup process to speed things up.
|
||||
#+begin_src emacs-lisp
|
||||
(setq gc-cons-threshold 50000000)
|
||||
#+end_src
|
||||
** Keep Folders Clean
|
||||
|
||||
Let's setup a backup and auto-save location to keep our main directory clean. The autosave directory needs to be created first.
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
|
||||
(setq backup-directory-alist '(("." . "/home/chris/.dotemacs/tmp/backups/")))
|
||||
|
||||
(make-directory (expand-file-name "tmp/autosaves/" user-emacs-directory) t)
|
||||
|
||||
(setq auto-save-list-file-prefix (expand-file-name "tmp/autosaves/sessions/" user-emacs-directory)
|
||||
auto-save-file-name-transforms '((".*" (expand-file-name "tmp/autosaves/" user-emacs-directory) t)))
|
||||
|
||||
#+end_src
|
||||
|
||||
** Set basic UI config
|
||||
Let's start by making some basic ui changes like turning off the scrollbar, toolbar, menu, tooltips, and setting our font and some things.
|
||||
#+begin_src emacs-lisp
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
(setq inhibit-startup-message t)
|
||||
|
||||
(scroll-bar-mode -1)
|
||||
|
@ -103,16 +93,6 @@ Also, real quick let's make sure that ~<escape>~ works as the same as ~<C-g>~
|
|||
#+begin_src emacs-lisp
|
||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||
#+end_src
|
||||
** Startup Performance
|
||||
#+begin_src emacs-lisp
|
||||
(defun chris/display-startup-time ()
|
||||
(message "Emacs loaded in %s with %d garbage collections."
|
||||
(format "%.2f seconds"
|
||||
(float-time
|
||||
(time-subtract after-init-time before-init-time)))
|
||||
gcs-done))
|
||||
(add-hook 'emacs-startup-hook #'chris/display-startup-time)
|
||||
#+end_src
|
||||
|
||||
** Let's bootstrap straight.el
|
||||
#+begin_src emacs-lisp
|
||||
|
@ -132,10 +112,12 @@ Also, real quick let's make sure that ~<escape>~ works as the same as ~<C-g>~
|
|||
(setq straight-use-package-by-default t)
|
||||
|
||||
(straight-use-package 'use-package)
|
||||
(setq use-package-verbose t)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package command-log-mode)
|
||||
(use-package command-log-mode
|
||||
:commands command-log-mode)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
|
@ -164,14 +146,16 @@ Also, real quick let's make sure that ~<escape>~ works as the same as ~<C-g>~
|
|||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package adaptive-wrap)
|
||||
(use-package adaptive-wrap
|
||||
:defer t)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package which-key
|
||||
:init (which-key-mode)
|
||||
(use-package which-key
|
||||
:config
|
||||
(setq which-key-idle-delay 0.3))
|
||||
(setq which-key-idle-delay 0.3)
|
||||
(which-key-mode)
|
||||
:defer 1)
|
||||
#+end_src
|
||||
|
||||
** Keybindings
|
||||
|
@ -186,7 +170,8 @@ There are two major packages we need to get the functionality I desire. Evil and
|
|||
evil-respect-visual-line-mode t
|
||||
evil-want-C-u-delete t)
|
||||
:config
|
||||
(evil-mode +1))
|
||||
(evil-mode +1)
|
||||
(setq evil-undo-system 'undo-tree))
|
||||
#+end_src
|
||||
|
||||
This evil-collection package includes a lot of other evil based things.
|
||||
|
@ -236,10 +221,20 @@ This evil-collection package includes a lot of other evil based things.
|
|||
:config (setq evil-escape-key-sequence "fd"))
|
||||
#+end_src
|
||||
|
||||
** Undo-Tree
|
||||
#+begin_src emacs-lisp
|
||||
(use-package undo-tree
|
||||
:defer 1)
|
||||
#+end_src
|
||||
|
||||
** Better UI
|
||||
*** Olivetti
|
||||
#+begin_src emacs-lisp
|
||||
(use-package olivetti)
|
||||
(use-package olivetti
|
||||
:after org
|
||||
:config
|
||||
(setq olivetti-body-width 0.6
|
||||
olivetti-minimum-body-width 100))
|
||||
#+end_src
|
||||
*** TOC-ORG
|
||||
#+begin_src emacs-lisp
|
||||
|
@ -263,7 +258,7 @@ I prefer selectrum over Ivy or Helm for completions. It is using the basic compl
|
|||
"C-S-j" 'selectrum-goto-end
|
||||
"C-S-k" 'selectrum-goto-beginning
|
||||
"TAB" 'selectrum-insert-current-candidate)
|
||||
:commands (completing-read))
|
||||
:commands completing-read)
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
@ -345,7 +340,8 @@ This is similar but using mini-frame. Mini-frame works well, but not if using ex
|
|||
*** CONSULT
|
||||
Consult has a lot of nice functions like Ivy's Counsel functions (enhanced searching functions), lets set some of them in the keymap so they are easily used.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package consult)
|
||||
(use-package consult
|
||||
:after selectrum)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
|
@ -383,27 +379,34 @@ Marginalia makes for some great decoration to our minibuffer completion items. W
|
|||
#+RESULTS:
|
||||
** Help
|
||||
#+begin_src emacs-lisp
|
||||
(use-package helpful)
|
||||
(use-package helpful
|
||||
:commands (helpful-callable helpful-variable helpful-command helpful-key))
|
||||
#+end_src
|
||||
** Format
|
||||
#+begin_src emacs-lisp
|
||||
(use-package format-all
|
||||
:config
|
||||
(format-all-mode +1))
|
||||
(format-all-mode +1)
|
||||
:defer 1)
|
||||
#+end_src
|
||||
** Org Mode
|
||||
Need to setup auto tangle and make sure I have some structure templates for org-mode.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package org
|
||||
:config
|
||||
(setq org-startup-indented t)
|
||||
(defun chris/org-babel-tangle-config ()
|
||||
(when (string-equal (buffer-file-name)
|
||||
(expand-file-name "~/.personal-emacs/init.org"))
|
||||
(let ((org-confirm-babel-evaluate nil))
|
||||
(org-babel-tangle))))
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'chris/org-babel-tangle-config)))
|
||||
Let's start by creating a self contained function of what I'd like started on every org buffer.
|
||||
#+begin_src emacs-lisp
|
||||
(defun chris/org-mode-setup ()
|
||||
(org-indent-mode +1)
|
||||
(toc-org-mode +1)
|
||||
(olivetti-mode +1))
|
||||
#+end_src
|
||||
|
||||
This is the use-package definition with a lot of customization. Need to setup auto tangle and make sure I have some structure templates for org-mode.
|
||||
#+begin_src emacs-lisp
|
||||
(use-package org
|
||||
:config
|
||||
(setq org-startup-indented t
|
||||
org-edit-src-content-indentation 0)
|
||||
|
||||
(add-hook 'org-mode-hook 'chris/org-mode-setup)
|
||||
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
|
@ -453,8 +456,6 @@ Need to setup auto tangle and make sure I have some structure templates for org-
|
|||
org-capture-use-agenda-date t)
|
||||
|
||||
;;(setq org-superstar-headline-bullets-list '("◉" "◈" "▸" "✬" "◎" "◇" "❉" "✙" "❖"))
|
||||
(setq olivetti-body-width 0.6)
|
||||
(setq olivetti-minimum-body-width 100)
|
||||
(setq org-imenu-depth 4)
|
||||
(setq org-odt-styles-file "/home/chris/org/style.odt")
|
||||
|
||||
|
@ -463,10 +464,6 @@ Need to setup auto tangle and make sure I have some structure templates for org-
|
|||
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)")))
|
||||
|
||||
|
||||
(add-hook 'org-mode-hook
|
||||
(toc-org-mode +1)
|
||||
(olivetti-mode +1))
|
||||
|
||||
(setq org-agenda-files
|
||||
'("/home/chris/org/DMPREADME.org" "/home/chris/org/DMPTODO.org" "/home/chris/org/inbox.org" "/home/chris/org/notes.org" "/home/chris/org/repetition.org" "/home/chris/org/tasks.org" "/home/chris/org/tfc_plans.org" "/home/chris/org/ministry_team.org" "/home/chris/org/todo.org" "/home/chris/org/newsletter.org"))
|
||||
(setq org-id-method 'ts)
|
||||
|
@ -490,6 +487,17 @@ We need to create a lesson capture function to find our lesson files differently
|
|||
(search-forward "PLAN")))
|
||||
#+end_src
|
||||
|
||||
We are also going to make our config auto-tangle. This is so helpful on saving the .org file tangles out the config automatically.
|
||||
#+begin_src emacs-lisp
|
||||
(defun chris/org-babel-tangle-config ()
|
||||
(when (string-equal (buffer-file-name)
|
||||
(expand-file-name "~/.dotemacs/README.org"))
|
||||
(let ((org-confirm-babel-evaluate nil))
|
||||
(org-babel-tangle))))
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'chris/org-babel-tangle-config
|
||||
:append :local)))
|
||||
#+end_src
|
||||
*** Org-Roam
|
||||
Here we are going to add org-roam. This is a note-takers paradise by adding an automatic backlinking function.
|
||||
|
||||
|
@ -555,6 +563,71 @@ Use magit, because why wouldn't you? duh!
|
|||
#+begin_src emacs-lisp
|
||||
(use-package magit
|
||||
:commands (magit-status magit-get-current-branch)
|
||||
:general
|
||||
(chris/leader-keys "g g" 'magit-status)
|
||||
:custom
|
||||
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
|
||||
#+end_src
|
||||
|
||||
** Garbage Collection
|
||||
|
||||
We set the =gc-cons-threshold= variable to really high, now lets set it back low to make sure emacs performs properly.
|
||||
#+begin_src emacs-lisp
|
||||
(setq gc-cons-threshold 2000000)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
|
||||
#+end_src
|
||||
* Early Init
|
||||
:PROPERTIES:
|
||||
:header-args: emacs-lisp :tangle early-init.el
|
||||
:END:
|
||||
|
||||
As of right now I haven't fully setup my early-init file, this does not export into the early-init.el file currently as it's just a copy from Doom's early-init.
|
||||
#+begin_src emacs-lisp :tangle early-init.el
|
||||
;;; early-init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; Emacs 27.1 introduced early-init.el, which is run before init.el, before
|
||||
;; package and UI initialization happens, and before site files are loaded.
|
||||
|
||||
;; A big contributor to startup times is garbage collection. We up the gc
|
||||
;; threshold to temporarily prevent it from running, then reset it later by
|
||||
;; enabling `gcmh-mode'. Not resetting it will cause stuttering/freezes.
|
||||
(setq gc-cons-threshold 50000000)
|
||||
|
||||
;; ;; In noninteractive sessions, prioritize non-byte-compiled source files to
|
||||
;; ;; prevent the use of stale byte-code. Otherwise, it saves us a little IO time
|
||||
;; ;; to skip the mtime checks on every *.elc file.
|
||||
;; (setq load-prefer-newer noninteractive)
|
||||
|
||||
;; ;; In Emacs 27+, package initialization occurs before `user-init-file' is
|
||||
;; ;; loaded, but after `early-init-file'. Doom handles package initialization, so
|
||||
;; ;; we must prevent Emacs from doing it early!
|
||||
;; (setq package-enable-at-startup nil)
|
||||
;; (fset #'package--ensure-init-file #'ignore) ; DEPRECATED Removed in 28
|
||||
|
||||
;; ;; `file-name-handler-alist' is consulted on every `require', `load' and various
|
||||
;; ;; path/io functions. You get a minor speed up by nooping this. However, this
|
||||
;; ;; may cause problems on builds of Emacs where its site lisp files aren't
|
||||
;; ;; byte-compiled and we're forced to load the *.el.gz files (e.g. on Alpine)
|
||||
;; (unless (daemonp)
|
||||
;; (defvar doom--initial-file-name-handler-alist file-name-handler-alist)
|
||||
;; (setq file-name-handler-alist nil)
|
||||
;; ;; Restore `file-name-handler-alist' later, because it is needed for handling
|
||||
;; ;; encrypted or compressed files, among other things.
|
||||
;; (defun doom-reset-file-handler-alist-h ()
|
||||
;; ;; Re-add rather than `setq', because changes to `file-name-handler-alist'
|
||||
;; ;; since startup ought to be preserved.
|
||||
;; (dolist (handler file-name-handler-alist)
|
||||
;; (add-to-list 'doom--initial-file-name-handler-alist handler))
|
||||
;; (setq file-name-handler-alist doom--initial-file-name-handler-alist))
|
||||
;; (add-hook 'emacs-startup-hook #'doom-reset-file-handler-alist-h))
|
||||
|
||||
;; ;; Ensure Doom is running out of this file's directory
|
||||
;; (setq user-emacs-directory (file-name-directory load-file-name))
|
||||
|
||||
;; ;; Load the heart of Doom Emacs
|
||||
;; (load (concat user-emacs-directory "core/core") nil 'nomessage)
|
||||
#+end_src
|
||||
|
||||
|
|
89
init.el
89
init.el
|
@ -1,4 +1,14 @@
|
|||
;;; init.el -*- lexical-binding: t; -*-
|
||||
(defun chris/display-startup-time ()
|
||||
(message "Emacs loaded in %s with %d garbage collections."
|
||||
(format "%.2f seconds"
|
||||
(float-time
|
||||
(time-subtract after-init-time before-init-time)))
|
||||
gcs-done))
|
||||
(add-hook 'emacs-startup-hook #'chris/display-startup-time)
|
||||
|
||||
(setq gc-cons-threshold 50000000)
|
||||
|
||||
(setq inhibit-startup-message t)
|
||||
|
||||
(scroll-bar-mode -1)
|
||||
|
@ -24,14 +34,6 @@
|
|||
|
||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||
|
||||
(defun chris/display-startup-time ()
|
||||
(message "Emacs loaded in %s with %d garbage collections."
|
||||
(format "%.2f seconds"
|
||||
(float-time
|
||||
(time-subtract after-init-time before-init-time)))
|
||||
gcs-done))
|
||||
(add-hook 'emacs-startup-hook #'chris/display-startup-time)
|
||||
|
||||
(defvar bootstrap-version)
|
||||
(let ((bootstrap-file
|
||||
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
||||
|
@ -48,8 +50,10 @@
|
|||
(setq straight-use-package-by-default t)
|
||||
|
||||
(straight-use-package 'use-package)
|
||||
(setq use-package-verbose t)
|
||||
|
||||
(use-package command-log-mode)
|
||||
(use-package command-log-mode
|
||||
:commands command-log-mode)
|
||||
|
||||
(use-package all-the-icons)
|
||||
|
||||
|
@ -68,12 +72,14 @@
|
|||
(use-package rainbow-delimiters
|
||||
:hook (prog-mode . rainbow-delimiters-mode))
|
||||
|
||||
(use-package adaptive-wrap)
|
||||
(use-package adaptive-wrap
|
||||
:defer t)
|
||||
|
||||
(use-package which-key
|
||||
:init (which-key-mode)
|
||||
:config
|
||||
(setq which-key-idle-delay 0.3))
|
||||
(setq which-key-idle-delay 0.3)
|
||||
(which-key-mode)
|
||||
:defer 1)
|
||||
|
||||
(use-package evil
|
||||
:init
|
||||
|
@ -84,7 +90,8 @@
|
|||
evil-respect-visual-line-mode t
|
||||
evil-want-C-u-delete t)
|
||||
:config
|
||||
(evil-mode +1))
|
||||
(evil-mode +1)
|
||||
(setq evil-undo-system 'undo-tree))
|
||||
|
||||
(use-package evil-collection
|
||||
:after evil
|
||||
|
@ -126,7 +133,14 @@
|
|||
:init (evil-escape-mode +1)
|
||||
:config (setq evil-escape-key-sequence "fd"))
|
||||
|
||||
(use-package olivetti)
|
||||
(use-package undo-tree
|
||||
:defer 1)
|
||||
|
||||
(use-package olivetti
|
||||
:after org
|
||||
:config
|
||||
(setq olivetti-body-width 0.6
|
||||
olivetti-minimum-body-width 100))
|
||||
|
||||
(use-package toc-org
|
||||
:after org)
|
||||
|
@ -142,7 +156,7 @@
|
|||
"C-S-j" 'selectrum-goto-end
|
||||
"C-S-k" 'selectrum-goto-beginning
|
||||
"TAB" 'selectrum-insert-current-candidate)
|
||||
:commands (completing-read))
|
||||
:commands completing-read)
|
||||
|
||||
(use-package prescient
|
||||
:config
|
||||
|
@ -154,7 +168,8 @@
|
|||
(selectrum-prescient-mode +1)
|
||||
:after selectrum)
|
||||
|
||||
(use-package consult)
|
||||
(use-package consult
|
||||
:after selectrum)
|
||||
|
||||
;; Enable richer annotations using the Marginalia package
|
||||
(use-package marginalia
|
||||
|
@ -179,22 +194,25 @@
|
|||
(setq marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil))
|
||||
:after selectrum)
|
||||
|
||||
(use-package helpful)
|
||||
(use-package helpful
|
||||
:commands (helpful-callable helpful-variable helpful-command helpful-key))
|
||||
|
||||
(use-package format-all
|
||||
:config
|
||||
(format-all-mode +1))
|
||||
(format-all-mode +1)
|
||||
:defer 1)
|
||||
|
||||
(defun chris/org-mode-setup ()
|
||||
(org-indent-mode +1)
|
||||
(toc-org-mode +1)
|
||||
(olivetti-mode +1))
|
||||
|
||||
(use-package org
|
||||
:config
|
||||
(setq org-startup-indented t)
|
||||
(defun chris/org-babel-tangle-config ()
|
||||
(when (string-equal (buffer-file-name)
|
||||
(expand-file-name "~/.personal-emacs/init.org"))
|
||||
(let ((org-confirm-babel-evaluate nil))
|
||||
(org-babel-tangle))))
|
||||
(setq org-startup-indented t
|
||||
org-edit-src-content-indentation 0)
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'chris/org-babel-tangle-config)))
|
||||
(add-hook 'org-mode-hook 'chris/org-mode-setup)
|
||||
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
|
@ -244,8 +262,6 @@
|
|||
org-capture-use-agenda-date t)
|
||||
|
||||
;;(setq org-superstar-headline-bullets-list '("◉" "◈" "▸" "✬" "◎" "◇" "❉" "✙" "❖"))
|
||||
(setq olivetti-body-width 0.6)
|
||||
(setq olivetti-minimum-body-width 100)
|
||||
(setq org-imenu-depth 4)
|
||||
(setq org-odt-styles-file "/home/chris/org/style.odt")
|
||||
|
||||
|
@ -254,10 +270,6 @@
|
|||
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)")))
|
||||
|
||||
|
||||
(add-hook 'org-mode-hook
|
||||
(toc-org-mode +1)
|
||||
(olivetti-mode +1))
|
||||
|
||||
(setq org-agenda-files
|
||||
'("/home/chris/org/DMPREADME.org" "/home/chris/org/DMPTODO.org" "/home/chris/org/inbox.org" "/home/chris/org/notes.org" "/home/chris/org/repetition.org" "/home/chris/org/tasks.org" "/home/chris/org/tfc_plans.org" "/home/chris/org/ministry_team.org" "/home/chris/org/todo.org" "/home/chris/org/newsletter.org"))
|
||||
(setq org-id-method 'ts)
|
||||
|
@ -277,6 +289,15 @@
|
|||
(goto-char (point-min))
|
||||
(search-forward "PLAN")))
|
||||
|
||||
(defun chris/org-babel-tangle-config ()
|
||||
(when (string-equal (buffer-file-name)
|
||||
(expand-file-name "~/.dotemacs/README.org"))
|
||||
(let ((org-confirm-babel-evaluate nil))
|
||||
(org-babel-tangle))))
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'chris/org-babel-tangle-config
|
||||
:append :local)))
|
||||
|
||||
(use-package org-roam
|
||||
:after org
|
||||
:config
|
||||
|
@ -324,5 +345,11 @@
|
|||
|
||||
(use-package magit
|
||||
:commands (magit-status magit-get-current-branch)
|
||||
:general
|
||||
(chris/leader-keys "g g" 'magit-status)
|
||||
:custom
|
||||
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
|
||||
|
||||
(setq gc-cons-threshold 2000000)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue