213 lines
5.7 KiB
Org Mode
213 lines
5.7 KiB
Org Mode
#+Title: Crony's Emacs Config
|
|
#+AUTHOR: Crony Akatsuki
|
|
#+DESCRIPTION: Crony's personal emacs config
|
|
#+STARTUP: showeverything
|
|
#+OPTIONS: toc:2
|
|
#+PROPERTY: header-args:emacs-lisp :tangle ./config.el
|
|
|
|
* GARBAGE COLLECTION
|
|
|
|
#+begin_src emacs-lisp
|
|
(defvar file-name-handler-alist-old file-name-handler-alist)
|
|
|
|
(setq file-name-handler-alist nil
|
|
gc-cons-threshold most-positive-fixnum)
|
|
|
|
(add-hook 'after-init-hook
|
|
`(lambda ()
|
|
(setq file-name-handler-alist file-name-handler-alist-old)
|
|
(setq gc-cons-threshold (* 2 1000 1000))
|
|
(setq gc-cons-percentage 0.1))
|
|
t)
|
|
#+end_src(defvar file-name-handler-alist-old file-name-handler-alist)
|
|
|
|
* BACKUPS
|
|
|
|
Move backup files to a diff directory.
|
|
|
|
#+begin_src emacs-lisp
|
|
(setq backup-directory-alist '(("." . "~/.cache/emacs/"))
|
|
backup-by-copying t ; Don't delink hardlinks
|
|
version-control t ; Use version numbers on backups
|
|
delete-old-versions t ; Automatically delete excess backups
|
|
kept-new-versions 20 ; how many of the newest versions to keep
|
|
kept-old-versions 5 ; and how many of the old
|
|
)
|
|
#+end_src
|
|
|
|
* SANE DEFAULTS
|
|
|
|
#+begin_src emacs-lisp
|
|
(delete-selection-mode 1) ;; You can select text and delete it by typing.
|
|
(electric-indent-mode -1) ;; Turn off the weird indenting that Emacs does by default.
|
|
(global-auto-revert-mode t) ;; Automatically show changes if the file has changed
|
|
(setq initial-scratch-message nil) ;; disable the initial scratch message.
|
|
(setq-default delete-pair-blink-delay 0) ;; remove delay when deleting pairs
|
|
(prefer-coding-system 'utf-8) ;; utf-8
|
|
(global-set-key [escape] 'keyboard-escape-quit) ;; escape minibuffers with ESC
|
|
#+end_src
|
|
|
|
* GUI TWEAKS
|
|
|
|
#+begin_src emacs-lisp
|
|
(global-visual-line-mode t) ;; Enable truncated lines
|
|
(menu-bar-mode -1) ;; Disable the menu bar
|
|
(scroll-bar-mode -1) ;; Disable the scroll bar
|
|
(tool-bar-mode -1) ;; Disable the tool bar
|
|
(set-fringe-mode 10) ;; Give me some breathing room
|
|
(fset 'yes-or-no-p 'y-or-n-p) ;; don't ask to spell out "yes"
|
|
(setq-default frame-resize-pixelwise t) ;; avoid leaving a gap beetween the frame and the screen
|
|
(column-number-mode) ;; Display line colums
|
|
;; disable line numbers for following modes
|
|
(dolist (mode '(org-mode-hook
|
|
term-mode-hook
|
|
shell-mode-hook
|
|
eshell-mode-hook))
|
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
|
(global-display-line-numbers-mode 1) ;; Display line numbers
|
|
(blink-cursor-mode -1) ;; disable blinking cursor
|
|
#+end_src
|
|
|
|
* ELECTRIC PAIR
|
|
|
|
#+begin_src emacs-lisp
|
|
(electric-pair-mode 1)
|
|
(add-hook 'org-mode-hook (lambda ()
|
|
(setq-local electric-pair-inhibit-predicate
|
|
`(lambda (c)
|
|
(if (char-equal c ?<) t (,electric-pair-inhibit-predicate c))))))
|
|
#+end_src
|
|
|
|
* EVIL MODE
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package evil
|
|
:init
|
|
(setq evil-want-integration t
|
|
evil-want-keybinding nil
|
|
evil-want-C-u-scroll t
|
|
evil-want-C-i-jump nil
|
|
evil-vsplit-window-right t
|
|
evil-split-window-below t
|
|
evil-undo-system 'undo-redo)
|
|
:config
|
|
(evil-mode 1)
|
|
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
|
|
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join)
|
|
(evil-set-initial-state 'messages-buffer-mode 'normal)
|
|
(evil-set-initial-state 'dashboard-mode 'normal))
|
|
|
|
(use-package evil-collection
|
|
:after evil
|
|
:config
|
|
(evil-collection-init))
|
|
#+end_src
|
|
|
|
* GENERAL KEYBINDINGS
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package general
|
|
:config
|
|
)
|
|
#+end_src
|
|
|
|
* DIMINISH
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package diminish)
|
|
#+end_src
|
|
|
|
ORG MODE
|
|
|
|
** Update and setup org mode
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
;; fixes a bug where evil mnode bounds return key, so it isn't accesible
|
|
(with-eval-after-load 'evil-maps
|
|
(define-key evil-motion-state-map (kbd "RET") nil))
|
|
|
|
(defun crony/org-mode-setup ()
|
|
(org-indent-mode)
|
|
(visual-line-mode 1))
|
|
|
|
;; Replace list hyphen with dot
|
|
(font-lock-add-keywords 'org-mode
|
|
'(("^ *\\([-]\\) "
|
|
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•"))))))
|
|
|
|
(use-package org
|
|
:defer t
|
|
:init (require 'org-tempo)
|
|
:hook (org-mode . crony/org-mode-setup)
|
|
:config
|
|
(setq org-ellipsis " ▾")
|
|
(setq org-edit-src-content-indentation 0)
|
|
|
|
;; org agenda settings
|
|
(setq org-agenda-start-with-log-mode t)
|
|
(setq org-log-done 'time)
|
|
(setq org-log-into-drawer t)
|
|
(setq org-agenda-files
|
|
'("~/docs/notes/tasks.org"
|
|
"~/docs/notes/birthdays.org"))
|
|
|
|
;; refiling
|
|
(setq org-refile-targets
|
|
'(("archive.org" :maxlevel . 1)
|
|
("tasks.org" :maxlevel . 1)))
|
|
|
|
;; save after refiling
|
|
(advice-add 'org-refile :after 'org-save-all-org-buffers)
|
|
|
|
(setq org-return-follows-link t))
|
|
#+end_src
|
|
|
|
** Column width
|
|
|
|
#+begin_src emacs-lisp
|
|
(defun crony/org-mode-visual-fill ()
|
|
(setq visual-fill-column-width 110
|
|
visual-fill-column-center-text t)
|
|
(visual-fill-column-mode 1))
|
|
|
|
(use-package visual-fill-column
|
|
:defer t
|
|
:hook (org-mode . crony/org-mode-visual-fill))
|
|
#+end_src
|
|
|
|
** Enabling Org Bullets
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package org-bullets
|
|
:after org
|
|
:hook (org-mode . org-bullets-mode))
|
|
#+end_src
|
|
|
|
** Enabling Table of Contents
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package toc-org
|
|
:after org
|
|
:commands toc-org-enable
|
|
:init (add-hook 'org-mode-hook 'toc-org-enable))
|
|
#+end_src
|
|
|
|
* THEME
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package gruvbox-theme
|
|
:config
|
|
(load-theme 'gruvbox-dark-medium :no-confirm))
|
|
#+end_src
|
|
|
|
* HELPFUL
|
|
|
|
#+begin_src emacs-lisp
|
|
(use-package helpful
|
|
:bind
|
|
([remap describe-function] . helpful-function)
|
|
([remap describe-command] . helpful-command)
|
|
([remap describe-variable] . helpful-variable)
|
|
([remap describe-key] . helpful-key))
|
|
#+end_src
|