WIP: Emacs Bankruptcy config

This commit is contained in:
Joseph Ferano 2022-08-18 21:16:01 +07:00
parent c17755b4d0
commit 795bbf3b46

View File

@ -3,44 +3,160 @@
#+PROPERTY: header-args:emacs-lisp :tangle ./init.el
#+TOC: true
* Package Management
** Package Management
*** Straight.el
For now, use [[https://github.com/radian-software/straight.el][straight.el]] until [[https://github.com/progfolio/elpaca
][elpaca]] is ready for production use.
First, disable package.el during early init
#+BEGIN_SRC emacs-lisp :tangle ./early-init.el
(setq package-enable-at-startup nil)
(setq package-enable-at-startup nil)
#+END_SRC
** El Paca
[[https://github.com/progfolio/elpaca][Elpaca: An Elisp Package Manager]]
Apparently the developer of straight.el is working on this, which is a cleaner implementation of the package.
Then bootstrap
#+BEGIN_SRC emacs-lisp
(declare-function elpaca-generate-autoloads "elpaca")
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(when-let ((elpaca-repo (expand-file-name "repos/elpaca/" elpaca-directory))
(elpaca-build (expand-file-name "builds/elpaca/" elpaca-directory))
(elpaca-target (if (file-exists-p elpaca-build) elpaca-build elpaca-repo))
(elpaca-url "https://www.github.com/progfolio/elpaca.git")
((add-to-list 'load-path elpaca-target))
((not (file-exists-p elpaca-repo)))
(buffer (get-buffer-create "*elpaca-bootstrap*")))
(condition-case-unless-debug err
(progn
(unless (zerop (call-process "git" nil buffer t "clone" elpaca-url elpaca-repo))
(error "%s" (list (with-current-buffer buffer (buffer-string)))))
(byte-recompile-directory elpaca-repo 0 'force)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" elpaca-repo)
(kill-buffer buffer))
((error)
(delete-directory elpaca-directory 'recursive)
(with-current-buffer buffer
(goto-char (point-max))
(insert (format "\n%S" err))
(display-buffer buffer)))))
(require 'elpaca-autoloads)
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca (elpaca :host github :repo "progfolio/elpaca"))
(declare-function elpaca-generate-autoloads "elpaca")
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(when-let ((elpaca-repo (expand-file-name "repos/elpaca/" elpaca-directory))
(elpaca-build (expand-file-name "builds/elpaca/" elpaca-directory))
(elpaca-target (if (file-exists-p elpaca-build) elpaca-build elpaca-repo))
(elpaca-url "https://www.github.com/progfolio/elpaca.git")
((add-to-list 'load-path elpaca-target))
((not (file-exists-p elpaca-repo)))
(buffer (get-buffer-create "*elpaca-bootstrap*")))
(condition-case-unless-debug err
(progn
(unless (zerop (call-process "git" nil buffer t "clone" elpaca-url elpaca-repo))
(error "%s" (list (with-current-buffer buffer (buffer-string)))))
(byte-recompile-directory elpaca-repo 0 'force)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" elpaca-repo)
(kill-buffer buffer))
((error)
(delete-directory elpaca-directory 'recursive)
(with-current-buffer buffer
(goto-char (point-max))
(insert (format "\n%S" err))
(display-buffer buffer)))))
(require 'elpaca-autoloads)
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca (elpaca :host github :repo "progfolio/elpaca"))
#+END_SRC
*** General Settings
**** Misc Stuff
#+begin_SRC emacs-lisp
(setq vc-follow-symlinks t) ; Visit real file when editing a symlink without prompting.
(global-auto-revert-mode t) ; Revert buffer's file when the file changes on disk
(fset 'yes-or-no-p 'y-or-n-p)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq gc-cons-threshold 50000000)
(setq max-specpdl-size 1200)
(setq max-lisp-eval-depth 800)
(setq large-file-warning-threshold 100000000)
(setq backup-by-copying t
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t
backup-directory-alist '((".*" . (expand-file-name "backups" user-emacs-directory))))
#+END_SRC
**** Visuals
#+begin_src emacs-lisp
(setq inhibit-startup-screen t)
(add-hook 'text-mode-hook (lambda () (setq fill-column 100) (turn-on-auto-fill)))
(setq-default display-line-numbers 'relative)
(make-variable-buffer-local 'global-hl-line-mode)
(set-window-margins nil 0)
(setq-default right-fringe-width 10)
(setq scroll-margin 0
scroll-conservatively 100000
scroll-preserve-screen-position 1)
(global-hl-line-mode +1)
(column-number-mode +1)
(scroll-bar-mode -1)
(tool-bar-mode -1)
(menu-bar-mode -1)
(tooltip-mode -1)
(setq custom-safe-themes t)
;; (load-theme 'doom-vibrant t)
;; (load-theme 'doom-flatwhite t)
#+end_src
**** Text
#+begin_src emacs-lisp
(set-face-attribute 'default nil :font "Fira Code Nerd Font" :height 105)
(setq-default c-basic-offset 4) ;; This is annoying
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)
(set-default 'truncate-lines nil)
(set-default 'truncate-partial-width-windows nil)
(setq-default line-spacing 5)
(add-hook 'dashboard-mode-hook (lambda () (setq-local line-spacing 12)))
(add-hook 'before-save-hook 'whitespace-cleanup)
#+end_src
*** Org Mode
#+begin_src emacs-lisp
(require 'org)
(require 'org-tempo)
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
(setq org-agenda-files '("~/todo.org"))
(add-hook 'org-mode-hook
'(defun joe/org-mode-setup ()
((org-bullets-mode)
(org-indent-mode))))
(setq org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE" "BACKLOG")))
;; (elpaca-use-package 'org-bullets)
#+end_src
*** VEMCO (Vertico Embark Marginalia Consult Orderless)
#+begin_src emacs-lisp
(elpaca-use-package 'vertico)
(vertico-mode)
(vertico-multiform-mode)
(define-key vertico-map "\M-G" #'vertico-multiform-mode)
(elpaca-use-package 'embark)
(elpaca-use-package 'embark-consult)
(define-key vertico-map "\M-e" #'embark-act)
(elpaca-use-package 'marginalia)
(marginalia-mode t)
(setq marginalia-annotators
'(marginalia-annotators-heavy marginalia-annotators-light nil))
(elpaca-use-package 'orderless)
(setq completion-styles '(orderless basic)
completion-category-overrides '((file (styles basic partial-completion))))
(elpaca-use-package 'savehist)
(savehist-mode)
#+end_src
* COMMENT Local variables
;; Local Variables:
;; eval: (add-hook 'after-save-hook '(lambda () (org-babel-tangle)) nil t)
;; End: