lots of emacs tweaks

This commit is contained in:
William Ball 2025-09-13 09:08:52 -04:00
parent ad82b6fc2c
commit c5ddcf876f
No known key found for this signature in database

View file

@ -30,15 +30,61 @@
auto-save-default t)
#+end_src
* Packages
** Elpaca
Set up variables.
#+begin_src emacs-lisp
(defvar elpaca-installer-version 0.11)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil :depth 1 :inherit ignore
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package)))
#+end_src
Bootstrap elpaca
#+begin_src emacs-lisp
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
(build (expand-file-name "elpaca/" elpaca-builds-directory))
(order (cdr elpaca-order))
(default-directory repo))
(add-to-list 'load-path (if (file-exists-p build) build repo))
(unless (file-exists-p repo)
(make-directory repo t)
(when (<= emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err
(if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
,@(when-let* ((depth (plist-get order :depth)))
(list (format "--depth=%d" depth) "--no-single-branch"))
,(plist-get order :repo) ,repo))))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive))))
(unless (require 'elpaca-autoloads nil t)
(require 'elpaca)
(elpaca-generate-autoloads "elpaca" repo)
(let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
(add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order))
#+end_src
Enable =use-package= integration
#+begin_src emacs-lisp
(elpaca elpaca-use-package
(elpaca-use-package-mode))
#+end_src
** use-package
#+begin_src emacs-lisp
(require 'use-package)
(setq use-package-always-ensure t)
(setq use-package-verbose t)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
#+end_src
** Set up path correctly
#+begin_src emacs-lisp
@ -103,6 +149,7 @@
*** Modus Themes
#+begin_src emacs-lisp
(use-package emacs
:ensure nil
:config
(require-theme 'modus-themes)
(setq modus-themes-italic-constructs t
@ -111,18 +158,18 @@
modus-themes-prompts '(bold intense)
modus-themes-mode-line '(borderless accented moody)
modus-themes-org-blocks 'gray-background
modus-themes-region '(bg-only no-extend)))
;; (load-theme 'modus-vivendi :no-confirm))
#+end_src
*** Italic Comments
#+begin_src emacs-lisp
(advice-add #'load-theme :after (lambda (&rest _) (set-face-italic 'font-lock-comment-face t)))
modus-themes-region '(bg-only no-extend))
(load-theme 'modus-operandi :no-confirm))
#+end_src
*** Catpuccin
#+begin_src emacs-lisp
(use-package catppuccin-theme
:init (setq catppuccin-flavor 'mocha)
:hook (after-init . (lambda () (load-theme 'catppuccin :no-confirm))))
*** Italic Comments
#+begin_src emacs-lisp
(advice-add #'load-theme :after (lambda (&rest _) (set-face-italic 'font-lock-comment-face t)))
#+end_src
** Line Numbers
#+begin_src emacs-lisp
@ -133,6 +180,9 @@
(use-package doom-modeline
:init (doom-modeline-mode 1))
#+end_src
#+begin_src emacs-lisp
(use-package hide-mode-line)
#+end_src
** Smooth Scroll
#+begin_src emacs-lisp
(use-package ultra-scroll
@ -159,6 +209,7 @@
** Savehist
#+begin_src emacs-lisp
(use-package emacs
:ensure nil
:init (savehist-mode))
#+end_src
** Orderless
@ -274,6 +325,7 @@
** eglot
#+begin_src emacs-lisp
(use-package eglot
:ensure nil
:bind (:map eglot-mode-map
("C-c l r" . eglot-rename)
("C-c l f" . eglot-format-buffer)
@ -338,6 +390,22 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
#+begin_src emacs-lisp
(use-package zig-mode)
#+end_src
** C
#+begin_src emacs-lisp
(use-package emacs
:ensure nil
:hook
(c-mode . electric-pair-mode)
:custom
(c-default-style '((java-mode . "java")
(awk-mode . "awk")
(other . "linux"))))
#+end_src
** Perga
#+begin_src emacs-lisp
(use-package perga-mode
:ensure (:repo "https://forgejo.ballcloud.cc/wball/perga-mode.git"))
#+end_src
* Latex
** Auctex
#+begin_src emacs-lisp
@ -360,7 +428,7 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
'(((output-dvi has-no-display-manager) "dvi2tty")
((output-dvi style-pstricks) "dvips and gv")
(output-dvi "xdvi")
(output-pdf "Zathura")
(output-pdf "zathura")
(output-html "xdg-open"))))
#+end_src
** CDLatex
@ -433,6 +501,8 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
** Org itself
#+begin_src emacs-lisp
(use-package org
:ensure `(org :repo "https://code.tecosaur.net/tec/org-mode.git/"
:branch "dev")
:defer
:init
(setq org-list-allow-alphabetical t)
@ -447,9 +517,11 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
(org-agenda-files `(,org-directory))
(org-default-notes-file (mapcar (lambda (x) (concat org-directory x))
'("/todo.org" "/done.org")))
(org-latex-preview-mode-display-live t)
:config
(setq org-format-latex-options (plist-put org-format-latex-options :scale 0.6))
(require 'ox-latex)
(require 'ox-beamer)
(add-to-list 'org-latex-classes '("myreport" "\\documentclass[11pt]{report}"
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
@ -457,7 +529,8 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
:hook
(org-mode . visual-line-mode)
(org-mode . flyspell-mode))
(org-mode . flyspell-mode)
(org-mode . org-latex-preview-mode))
#+end_src
** toki pona support
#+begin_src emacs-lisp
@ -477,6 +550,10 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
:hook ((org-mode . org-modern-mode)
(org-agenda-finalize . org-modern-agenda)))
#+end_src
** Simple Presentations
#+begin_src emacs-lisp
(use-package org-present)
#+end_src
** Org Bloggy stuff
#+begin_src emacs-lisp
(setq org-publish-project-alist
@ -567,6 +644,7 @@ I don't really use markdown ([[Org Mode]] is a strict improvement imo), but it's
** Dired
#+begin_src emacs-lisp
(use-package emacs
:ensure nil
:commands (dired dired-jump)
:custom ((dired-listing-switches "-agho --group-directories-first"))
:config