From b9abc9025780b81713422c59206d0e30518646a6 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Tue, 30 Apr 2024 21:00:03 -0400 Subject: Combine some files and use outline --- emacs/.config/emacs/emacs-custom.el | 8 +- emacs/.config/emacs/init.el | 155 ++++++++++++++++++++++++++++- emacs/.config/emacs/lisp/kj-development.el | 13 ++- emacs/.config/emacs/lisp/kj-init.el | 145 +-------------------------- 4 files changed, 165 insertions(+), 156 deletions(-) (limited to 'emacs/.config') diff --git a/emacs/.config/emacs/emacs-custom.el b/emacs/.config/emacs/emacs-custom.el index df4c014..6ef1843 100644 --- a/emacs/.config/emacs/emacs-custom.el +++ b/emacs/.config/emacs/emacs-custom.el @@ -10,10 +10,10 @@ "88267200889975d801f6c667128301af0bc183f3450c4b86138bfb23e8a78fb1" default)) '(safe-local-variable-values - '((Package . CL-WHO) (Package . HUNCHENTOOT) (Base . 10) - (Package . CL-USER) (Syntax . COMMON-LISP) - (eval sly-connect "localhost" 9090) (sly-port . 9090) - (checkdoc-package-keywords-flag)))) + '((eval outline-hide-sublevels 2) (Package . CL-WHO) + (Package . HUNCHENTOOT) (Base . 10) (Package . CL-USER) + (Syntax . COMMON-LISP) (eval sly-connect "localhost" 9090) + (sly-port . 9090) (checkdoc-package-keywords-flag)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/emacs/.config/emacs/init.el b/emacs/.config/emacs/init.el index d917257..6435562 100644 --- a/emacs/.config/emacs/init.el +++ b/emacs/.config/emacs/init.el @@ -1,5 +1,5 @@ ;;; -*- lexical-binding: t; -*- - +;;;; Elpaca package setup ;; NixOS emacs doesn't include a build time. Assume a recent version. (setq elpaca-core-date 20240101) (setq elpaca-directory "~/.cache/emacs/elpaca") @@ -13,8 +13,6 @@ (time-subtract after-init-time before-init-time))) gcs-done))) -(add-hook 'elpaca-after-init-hook 'kj/restore-file-name-handler-alist) - (elpaca elpaca-use-package ;; Enable :elpaca use-package keyword. (elpaca-use-package-mode) @@ -22,6 +20,7 @@ (setq elpaca-use-package-by-default t)) (elpaca-wait) +;;;; GC and performance (use-package gcmh :hook (elpaca-after-init . kj/enable-gcmh) @@ -30,7 +29,142 @@ (message "Enabling gcmh") (gcmh-mode 1))) -;; Include user configuration. +(setopt inhibit-compacting-font-caches t) +(add-hook 'elpaca-after-init-hook 'kj/restore-file-name-handler-alist) + +;;;; Basic settings and customizations +(defvar kj/cache-dir "~/.cache/emacs") + +(setopt user-full-name "KJ Orbekk" + user-mail-address "kj@orbekk.com" + + initial-scratch-message nil + + switch-to-buffer-obey-display-actions t + switch-to-buffer-in-dedicated-window 'pop + even-window-sizes 'width-only + custom-file (expand-file-name "emacs-custom.el" user-emacs-directory) + bookmark-file (expand-file-name "boomarks" kj/cache-dir) + use-short-answers t + outline-minor-mode-cycle t + fast-but-imprecise-scrolling t + visible-bell t + auto-save-list-file-prefix (expand-file-name + "auto-save-list/.saves-" kj/cache-dir) + alert-default-style 'libnotify + + use-dialog-box nil + display-time-24hr-format t) + +(load custom-file :noerror t) +(global-hl-line-mode 1) +(global-auto-revert-mode 1) + +;;;; Appearance + +(use-package emacs + :elpaca nil + :init + (setq-default show-trailing-whitespace t) + (dolist (mode '(calendar-mode-hook + eshell-mode-hook + term-mode-hook + comint-mode-hook + completion-list-mode)) + (add-hook mode + (defun kj/disable-trailing-whitespace () + (setq show-trailing-whitespace nil))))) + +(use-package ws-butler + :hook (prog-mode . ws-butler-mode)) + +(use-package all-the-icons + :if (display-graphic-p)) + +(use-package emojify + :bind + (("C-c C-i C-e" . emojify-insert-emoji)) + :hook (after-init . global-emojify-mode) + :config + (emojify-set-emoji-styles '(unicode))) + +;;;;; Mode line +(use-package emacs + :elpaca nil + :defer 5 + :init + (require 'battery) + (when (and battery-status-function + (not (string-match-p "unknown" + (battery-format "%B" + (funcall battery-status-function))))) + (display-battery-mode 1))) +(setopt display-time-default-load-average nil) + +(display-time-mode 1) + +(use-package doom-modeline + :ensure t + :disabled + :init (doom-modeline-mode 1) + :config + (setq doom-modeline-buffer-encoding 'nondefault)) + +(use-package emacs + :elpaca nil + :defer 1 + :init + (defvar kj/minor-mode-alist-overrides + '((ws-butler "") + (gcmh-mode "") + (editorconfig-mode "") + (yas-minor-mode "") + (selected-minor-mode "") + (anzu-mode "") + (projectile-mode "") + (eldoc-mode "") + (mixed-pitch-mode "") + (which-key-mode ""))) + (defun kj/clean-mode-line () + (dolist (override kj/minor-mode-alist-overrides) + (if-let ((e (assoc (car override) minor-mode-alist))) + (setf (nth 1 e) (nth 1 override))))) + (add-to-list 'change-major-mode-hook 'kj/clean-mode-line)) + + +;;;;; Theme + +(use-package wombat-theme :elpaca nil + :disabled + :init + (load-theme 'wombat) + :config + (custom-theme-set-faces + 'wombat + '(default ((t :background "#111111"))) + '(ansi-color-black ((t :background "#000000"))) + '(hl-line ((t :inherit () :background "#242424"))))) + +(use-package modus-themes + :init + :disabled + (load-theme 'modus-operandi-tinted) + (load-theme 'modus-vivendi-tinted t t) + :config + (custom-theme-set-faces + 'modus-vivendi-tinted + '(avy-lead-face ((t :inherit (bold modus-themes-subtle-blue)))) + '(avy-lead-face-0 ((t :inherit (bold modus-themes-subtle-cyan)))) + '(avy-lead-face-1 ((t :inherit (bold modus-themes-subtle-green)))) + '(avy-lead-face-2 ((t :inherit (bold modus-themes-subtle-magenta)))))) + +(use-package emacs :elpaca nil + :init + (load-theme 'deeper-blue)) + +(use-package doom-themes) + +;;;; Include modules in lisp/ (defvar kj/module-directory (expand-file-name "lisp" user-emacs-directory)) (push kj/module-directory load-path) (require 'kj-lib) @@ -38,5 +172,18 @@ (cl-loop for path in (directory-files kj/module-directory) if (string-match "\\([^/]*\\).el" path) do (require (intern (match-string-no-properties 1 path)))) + +;;;; Enable commands +(put 'narrow-to-region 'disabled nil) +(put 'downcase-region 'disabled nil) +(put 'upcase-region 'disabled nil) +(put 'list-timers 'disabled nil) (put 'set-goal-column 'disabled nil) (put 'scroll-left 'disabled nil) + +;;;; Local variables +;; Local Variables: +;; eval: (outline-minor-mode 1) +;; eval: (outline-hide-sublevels 2) +;; outline-regexp: ";;;;*" +;; End: diff --git a/emacs/.config/emacs/lisp/kj-development.el b/emacs/.config/emacs/lisp/kj-development.el index da0d328..2f31672 100644 --- a/emacs/.config/emacs/lisp/kj-development.el +++ b/emacs/.config/emacs/lisp/kj-development.el @@ -134,19 +134,18 @@ ;; :custom ;; (inferior-lisp-program "sbcl")) -(use-package slime - :custom - (inferior-lisp-program "sbcl") - :config +(use-package emacs :elpaca nil + :defer 1 + :after consult + :init + (load (expand-file-name "~/.cache/quicklisp/slime-helper.el")) + (setopt inferior-lisp-program "sbcl") (defvar kj/slime-history-ring nil) (defvar kj/slime-history-index nil) (add-to-list 'consult-mode-histories '(slime-repl-mode slime-repl-input-history slime-repl-input-history-position beginning-of-line)) - (load (expand-file-name "~/.cache/quicklisp/slime-helper.el")) - ;; Replace "sbcl" with the path to your implementation - (setq inferior-lisp-program "sbcl") (slime-setup '(slime-fancy slime-asdf))) (use-package exercism) diff --git a/emacs/.config/emacs/lisp/kj-init.el b/emacs/.config/emacs/lisp/kj-init.el index 837bdf9..40dee7d 100644 --- a/emacs/.config/emacs/lisp/kj-init.el +++ b/emacs/.config/emacs/lisp/kj-init.el @@ -1,140 +1,5 @@ ;;; -*- lexical-binding: t; -*- -(setq user-full-name "KJ Orbekk" - user-mail-address "kj@orbekk.com") - -(defvar kj/cache-dir "~/.cache/emacs") - -(setq initial-scratch-message nil) - -(setq switch-to-buffer-obey-display-actions t) -(setq switch-to-buffer-in-dedicated-window 'pop) -(setq even-window-sizes 'width-only) - -(setq custom-file (expand-file-name "emacs-custom.el" user-emacs-directory)) -(load custom-file :noerror t) - -(setq bookmark-file (expand-file-name "boomarks" kj/cache-dir)) - -(setq fast-but-imprecise-scrolling t) - -(setq use-short-answers t) - -(global-hl-line-mode 1) -(global-auto-revert-mode 1) - -(setq outline-minor-mode-cycle t - outline-minor-mode-highlight 'override) - -(setq visible-bell t - ring-bell-function 'ignore) - -(setq auto-save-list-file-prefix (expand-file-name "auto-save-list/.saves-" kj/cache-dir)) - -(use-package wombat-theme :elpaca nil - :disabled - :init - (load-theme 'wombat) - :config - (custom-theme-set-faces - 'wombat - '(default ((t :background "#111111"))) - '(ansi-color-black ((t :background "#000000"))) - '(hl-line ((t :inherit () :background "#242424"))))) - -(use-package modus-themes - :init - :disabled - (load-theme 'modus-operandi-tinted) - (load-theme 'modus-vivendi-tinted t t) - :config - (custom-theme-set-faces - 'modus-vivendi-tinted - '(avy-lead-face ((t :inherit (bold modus-themes-subtle-blue)))) - '(avy-lead-face-0 ((t :inherit (bold modus-themes-subtle-cyan)))) - '(avy-lead-face-1 ((t :inherit (bold modus-themes-subtle-green)))) - '(avy-lead-face-2 ((t :inherit (bold modus-themes-subtle-magenta)))))) - -(use-package deeper-blue :elpaca nil - :init - (load-theme 'deeper-blue)) - -(use-package doom-themes) - -(setq alert-default-style 'libnotify) - -(use-package all-the-icons - :if (display-graphic-p)) -(setq inhibit-compacting-font-caches t) -(setq use-dialog-box nil) -(setq display-time-24hr-format t) - -(use-package emacs - :elpaca nil - :defer 5 - :init - (require 'battery) - (when (and battery-status-function - (not (string-match-p "unknown" - (battery-format "%B" - (funcall battery-status-function))))) - (display-battery-mode 1))) -(setopt display-time-default-load-average nil) - -(display-time-mode 1) - -(use-package doom-modeline - :ensure t - :disabled - :init (doom-modeline-mode 1) - :config - (setq doom-modeline-buffer-encoding 'nondefault)) - -(use-package emacs - :elpaca nil - :defer 1 - :init - (defvar kj/minor-mode-alist-overrides - '((ws-butler "") - (gcmh-mode "") - (editorconfig-mode "") - (yas-minor-mode "") - (selected-minor-mode "") - (anzu-mode "") - (projectile-mode "") - (eldoc-mode "") - (mixed-pitch-mode "") - (ws-butler-mode "") - (which-key-mode ""))) - (defun kj/clean-mode-line () - (interactive) - (dolist (override kj/minor-mode-alist-overrides) - (if-let ((e (assoc (car override) minor-mode-alist))) - (setf (nth 1 e) (nth 1 override))))) - (add-to-list 'change-major-mode-hook 'kj/clean-mode-line)) - -(use-package emojify - :bind - (("C-c C-i C-e" . emojify-insert-emoji)) - :hook (after-init . global-emojify-mode) - :config - (emojify-set-emoji-styles '(unicode))) - -(setq-default show-trailing-whitespace t) -(dolist (mode '(calendar-mode-hook - eshell-mode-hook - term-mode-hook - comint-mode-hook - completion-list-mode)) - (add-hook mode - (defun kj/disable-trailing-whitespace () - (setq show-trailing-whitespace nil)))) - -;; Deletes trailing whitespace on changed lines only. -(use-package ws-butler - :diminish ws-butler-mode - :hook (prog-mode . ws-butler-mode)) - ;; `M-x shell` settings (setq shell-prompt-pattern "^[^#$%>\n]*[#$%>❯] *" explicit-shell-file-name "zsh" @@ -1055,10 +920,8 @@ (gethash 'name (car (gethash 'artists track))) (gethash 'name track)))))))))) -;; Enabled commands -(put 'narrow-to-region 'disabled nil) -(put 'downcase-region 'disabled nil) -(put 'upcase-region 'disabled nil) -(put 'list-timers 'disabled nil) - (provide 'kj-init) + +;; Local Variables: +;; eval: (outline-minor-mode 1) +;; End: -- cgit v1.2.3