My personal emacs configuration

Compare changes

Choose any two refs to compare.

+10 -1
README.md
··· 8 Clone this repository: 9 10 ```sh 11 - git clone https://git.sr.ht/~nesv/emacs.d ~/.emacs.d 12 ``` 13 14 The next time you start emacs(1), everything should be installed 15 automatically.
··· 8 Clone this repository: 9 10 ```sh 11 + git clone https://tangled.org/nesv.ca/emacs.d ~/.emacs.d 12 + ``` 13 + 14 + or if you prefer [jj]: 15 + 16 + ```sh 17 + jj git clone https://tangled.org/nesv.ca/emacs.d ~/.emacs.d 18 ``` 19 20 The next time you start emacs(1), everything should be installed 21 automatically. 22 + 23 + [jj]: https://docs.jj-vcs.dev/latest/ 24 +
-76
early-init.el
··· 1 - ;;; early-init -- Early emacs initialization 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (defvar nesv/tiling-window-manager-regexp "bspwm\\|herbstluftwm\\|i3\\|hyprland" 6 - "Regexp to match the name of tiling window managers.") 7 - 8 - (defmacro nesv/with-desktop-session (&rest body) 9 - "Expand BODY if desktop is *not* a tiling window manager." 10 - (declare (indent 0)) 11 - `(when-let ((session (getenv "DESKTOP_SESSION")) 12 - ((not (string-match-p session nesv/tiling-window-manager-regexp)))) 13 - ,@body)) 14 - 15 - (defun nesv/add-to-list (list element) 16 - "Add ELEMENT to LIST. A simplified version of ADD-TO-LIST." 17 - (set list (cons element (symbol-value list)))) 18 - 19 - ;; Set the window size on non-tiling window managers. 20 - ;; 21 - ;; INITIAL-FRAME-ALIST is the first frame that is produced when starting emacs. 22 - ;; DEFAULT-FRAME-ALIST is all other frames. 23 - (nesv/with-desktop-session 24 - (mapc 25 - (lambda (var) 26 - (nesv/add-to-list var '(width . (text-pixels . 800))) 27 - (nesv/add-to-list var '(height . (text-pixels . 900))) 28 - (nesv/add-to-list var '(scroll-bar-width . 10))) 29 - '(default-frame-alist initial-frame-alist))) 30 - 31 - (setq frame-resize-pixelwise t 32 - frame-inhibit-implied-resize t 33 - frame-title-format '("%b") 34 - ring-bell-function 'ignore 35 - use-dialog-box t 36 - use-file-dialog nil 37 - use-short-answers t 38 - inhibit-splash-screen t 39 - inhibit-startup-screen t 40 - inhibit-x-resources t 41 - inhibit-startup-echo-area-message user-login-name 42 - inhibit-startup-buffer-menu t) 43 - 44 - ;; Disable useless graphical elements like the menu bar, the scroll bar, and 45 - ;; the tool bar. 46 - (menu-bar-mode -1) 47 - (scroll-bar-mode -1) 48 - (tool-bar-mode -1) 49 - 50 - ;; Temporarily increase the garbage collection threshold. 51 - ;; This should shave about 0.5s off startup time. 52 - (setq gc-cons-threshold most-positive-fixnum 53 - gc-cons-percentage 0.5) 54 - 55 - ;; More startup optimizations. 56 - (defvar nesv/file-name-handler-alist file-name-handler-alist) 57 - (defvar nesv/vc-handled-backends vc-handled-backends) 58 - 59 - (setq file-name-handler-alist nil 60 - vc-handled-backends nil) 61 - 62 - (add-hook 'emacs-startup-hook 63 - (lambda () 64 - (setq gc-cons-threshold (* 1000 1000 8) 65 - gc-cons-percentage 0.1 66 - file-name-handler-alist nesv/file-name-handler-alist 67 - vc-handled-backends nesv/vc-handled-backends))) 68 - 69 - ;; Name the default frame. 70 - (add-hook 'after-init-hook (lambda () (set-frame-name "nesv"))) 71 - 72 - ;; Inititalize install packages early. 73 - (setq package-enable-at-startup t) 74 - 75 - (provide 'early-init) 76 - ;;; early-init.el ends here
···
+224 -90
init.el
··· 2 ;;; Commentary: 3 ;;; Code: 4 5 - ;; Define a new group for customizations. 6 - ;; This will basically allow someone else to use this configuration, 7 - ;; but tweak it to their own liking by setting custom vars. 8 - (defgroup nesv-emacs nil 9 - "User options for nesv's Emacs. 10 - Put the customizations in a file called ~/.emacs.d/nesv-emacs-pre-custom.el." 11 - :group 'file) 12 - 13 - ;; Load extras for minibuffer completion. 14 - (defcustom nesv-emacs-completion-extras t 15 - "When non-nil, load extras for minibuffer completion (e.g. `consult', `embark')." 16 - :group 'nesv-emacs 17 - :type 'boolean) 18 - 19 - ;; User option to load extra stuff for tree-sitter. 20 - (defcustom nesv-emacs-tree-sitter-extras t 21 - "When non-nil, load extras for tree-sitter integration (e.g. `expreg')." 22 - :group 'nesv-emacs 23 - :type 'boolean) 24 - 25 - (defcustom nesv-emacs-load-which-key nil 26 - "When non-nil, display keybinding hints after a short delay." 27 - :group 'nesv-emacs 28 - :type 'boolean) 29 - 30 - (defcustom nesv-emacs-load-nerd-icons nil 31 - "When non-nil, enable nerd icons." 32 - :group 'nesv-emacs 33 - :type 'boolean) 34 - 35 - (defcustom nesv-emacs-load-theme 'ef 36 - "Load the specified colour theme." 37 - :group 'nesv-emacs 38 - :type '(choice :tag "Theme to load" :value ef 39 - (const :tag "`ef-themes'" ef) 40 - (const :tag "`modus-themes'" modus) 41 - (const :tag "Jonathan Blow style" naysayer) 42 - (const :tag "Do not load a theme" nil))) 43 - 44 - (defcustom nesv-emacs-font "Source Code Pro" 45 - "Set the specific font face when loading Emacs in GUI mode." 46 - :group 'nesv-emacs 47 - :type '(choice :tag "Font to use" :value "Source Code Pro" 48 - (const :tag "MonoLisa" "MonoLisa") 49 - (const :tag "Berkeley Mono" "Berkeley Mono"))) 50 - 51 ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 52 ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 53 ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ ··· 98 (global-set-key [f8] 'neotree-toggle) 99 (if (display-graphic-p) (setq neo-theme 'icons) (setq neo-theme 'arrows))) 100 101 ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆ 102 ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–„โ–€ 103 ;; โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–€โ–‘ ··· 106 :config 107 (direnv-mode)) 108 109 ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€ 110 ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–„โ–„โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 111 ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€ ··· 121 (menu-bar-mode -1) ; Disable the menubar. 122 (tool-bar-mode -1) ; Disable the toolbar. 123 (setq ring-bell-function 'ignore) ; Disable the damn bell. 124 (setq auto-save-default nil) ; Disable auto save. 125 (global-auto-revert-mode t) ; Auto-reload buffers when the backing file on disk changes. 126 (global-hl-line-mode t) ; Highlight the current line. ··· 128 (setq column-number-mode t) ; Display column numbers. 129 (set-default 'truncate-lines t) ; Let long lines flow off-screen. 130 131 - ;; Disable backup files, and lock files. 132 - (setq make-backup-files nil) 133 - (setq backup-inhibited nil) 134 - (setq create-lockfiles nil) 135 - 136 - ;; Silence native compilation (`nativecomp'). 137 - (when (native-comp-available-p) 138 - (setq native-comp-async-report-warnings-errors 'silent) 139 - (setq native-compile-prune-cache t)) 140 - 141 - ;; By default, Emacs writes persistent customizations to the end of the user's 142 - ;; init.el. 143 - ;; Disable it. 144 - (setq custom-file (make-temp-file "emacs-custom-")) 145 - 146 ;; Draw a ruler at the 80-character column. 147 (add-hook 'prog-mode-hook #'display-fill-column-indicator-mode) 148 (add-hook 'text-mode-hook #'display-fill-column-indicator-mode) ··· 151 (setq-default fill-column 80) 152 (add-hook 'text-mode-hook #'auto-fill-mode) 153 154 - ;; Enable these commands. 155 - (mapc 156 - (lambda (command) (put command 'disabled nil)) 157 - '(list-timers narrow-to-region narrow-to-page upcase-region downcase-region)) 158 159 - ;; Disable these commands. 160 - (mapc 161 - (lambda (command) (put command 'disabled t)) 162 - '(eshell project-eshell overwrite-mode iconify-frame diary)) 163 164 - ;; Always start with the *scratch* buffer. 165 - (setq initial-buffer-choice t) 166 167 - ;; By default, Emacs inserts tabs in place of multiple spaces when formatting 168 - ;; a region. 169 - ;; Turn this off. 170 - (setq-default indent-tabs-mode nil) 171 172 - ;; Add directories containing my custom `.el' files to Emacs' load-path. 173 - (mapc 174 - (lambda (string) (add-to-list 'load-path (locate-user-emacs-file string))) 175 - '("nesv")) 176 177 - (require 'nesv-theme) 178 - (require 'nesv-cursor) 179 - (require 'nesv-fonts) 180 - (require 'nesv-which-key) 181 - (require 'nesv-tree-sitter) 182 - (require 'nesv-lsp) 183 - (require 'nesv-programming) 184 - (when nesv-emacs-load-nerd-icons 185 - (require 'nesv-icons)) 186 - (require 'nesv-slime) 187 - (require 'nesv-gnus) 188 189 ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€ 190 ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ ··· 206 ;; 207 ;; (which-key-add-keymap-based-replacements nesv-prefix-map 208 ;; "b" `("Buffer" . ,nesv-buffer-prefix-map)) 209 210 (provide 'init) 211 ;;; init.el ends here
··· 2 ;;; Commentary: 3 ;;; Code: 4 5 ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 6 ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 7 ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ ··· 52 (global-set-key [f8] 'neotree-toggle) 53 (if (display-graphic-p) (setq neo-theme 'icons) (setq neo-theme 'arrows))) 54 55 + 56 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘ 57 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–„โ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–„โ–„โ–„โ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘ 58 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 59 + ;; When running in GUI mode, load in our $PATH as though we were running from 60 + ;; a terminal. 61 + (use-package exec-path-from-shell 62 + :ensure t 63 + :config 64 + (when (display-graphic-p) 65 + (exec-path-from-shell-initialize))) 66 + 67 ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆ 68 ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–„โ–€ 69 ;; โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–€โ–‘ ··· 72 :config 73 (direnv-mode)) 74 75 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–‘โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 76 + ;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 77 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 78 + ;; A recreation of Jonathan Blow's emacs theme. 79 + (use-package naysayer-theme 80 + :ensure t 81 + :config (load-theme 'naysayer t)) 82 + ;; 83 + ;; EF-THEMES (https://protesilaos.com/emacs/ef-themes) 84 + ;; (use-package ef-themes 85 + ;; :ensure t 86 + ;; :config 87 + ;; (load-theme 'ef-duo-light t)) 88 + ;; 89 + ;; MODUS THEMES (https://protesilaos.com/emacs/modus-themes) 90 + ;; (use-package modus-themes 91 + ;; :ensure t 92 + ;; :config 93 + ;; (load-theme 'modus-operandi t)) 94 + 95 ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€ 96 ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–„โ–„โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 97 ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€ ··· 107 (menu-bar-mode -1) ; Disable the menubar. 108 (tool-bar-mode -1) ; Disable the toolbar. 109 (setq ring-bell-function 'ignore) ; Disable the damn bell. 110 + (setq make-backup-files nil) ; Do not create backup files. 111 (setq auto-save-default nil) ; Disable auto save. 112 (global-auto-revert-mode t) ; Auto-reload buffers when the backing file on disk changes. 113 (global-hl-line-mode t) ; Highlight the current line. ··· 115 (setq column-number-mode t) ; Display column numbers. 116 (set-default 'truncate-lines t) ; Let long lines flow off-screen. 117 118 ;; Draw a ruler at the 80-character column. 119 (add-hook 'prog-mode-hook #'display-fill-column-indicator-mode) 120 (add-hook 'text-mode-hook #'display-fill-column-indicator-mode) ··· 123 (setq-default fill-column 80) 124 (add-hook 'text-mode-hook #'auto-fill-mode) 125 126 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–‘โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€ 127 + ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 128 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€ 129 + (when (display-graphic-p) 130 + ;; Disable the scroll bar. 131 + (scroll-bar-mode -1) 132 + 133 + ;; Set the default window width, height, and font. 134 + (add-to-list 'default-frame-alist '(width . 200)) 135 + (add-to-list 'default-frame-alist '(height . 60)) 136 + (add-to-list 'default-frame-alist '(font . "MonoLisa-11"))) 137 138 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆ 139 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–„ 140 + ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€ 141 + (use-package flycheck 142 + :ensure t 143 + :init (global-flycheck-mode)) 144 145 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€ 146 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘ 147 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘ 148 + (use-package eglot 149 + :ensure t) 150 151 + ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–„โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€ 152 + ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–„โ–„โ–„โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–€โ–ˆ 153 + ;; โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€ 154 + (use-package nerd-icons 155 + :ensure t) 156 157 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 158 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 159 + ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 160 + (setq-default mono-lisa-v2-ligatures '(;; coding ligatures 161 + "<!---" "--->" "|||>" "<!--" "<|||" "<==>" "-->" "->>" "-<<" "..=" "!==" 162 + "#_(" "/==" "||>" "||=" "|->" "===" "==>" "=>>" "=<<" "=/=" ">->" ">=>" 163 + ">>-" ">>=" "<--" "<->" "<-<" "<||" "<|>" "<=" "<==" "<=>" "<=<" "<<-" 164 + "<<=" "<~>" "<~~" "~~>" ">&-" "<&-" "&>>" "&>" "->" "-<" "-~" ".=" "!=" 165 + "#_" "/=" "|=" "|>" "==" "=>" ">-" ">=" "<-" "<|" "<~" "~-" "~@" "~=" 166 + "~>" "~~" 167 + ;; whitespace ligatures 168 + "---" "'''" "\"\"\"" "..." "..<" "{|" "[|" ".?" "::" ":::" "::=" ":=" 169 + ":>" ":<" "\;\;" "!!" "!!." "!!!" "?." "?:" "??" "?=" "**" "***" "*>" 170 + "*/" "--" "#:" "#!" "#?" "##" "###" "####" "#=" "/*" "/>" "//" "/**" 171 + "///" "$(" ">&" "<&" "&&" "|}" "|]" "$>" ".." "++" "+++" "+>" "=:=" 172 + "=!=" ">:" ">>" ">>>" "<:" "<*" "<*>" "<$" "<$>" "<+" "<+>" "<>" "<<" 173 + "<<<" "</" "</>" "^=" "%%") 174 + berkeley-mono-ligatures '(;; Group A 175 + ".." ".=" "..." "..<" "::" ":::" ":=" "::=" ";;" ";;;" "??" "???" 176 + ".?" "?." ":?" "?:" "?=" "**" "***" "/*" "*/" "/**" 177 + ;; Group B 178 + "<-" "->" "-<" ">-" "<--" "-->" "<<-" "->>" "-<<" ">>-" "<-<" ">->" 179 + "<-|" "|->" "-|" "|-" "||-" "<!--" "<#--" "<=" "=>" ">=" "<==" "==>" 180 + "<<=" "=>>" "=<<" ">>=" "<=<" ">=>" "<=|" "|=>" "<=>" "<==>" "||=" 181 + "|=" "//=" "/=" 182 + ;; Group C 183 + "<<" ">>" "<<<" ">>>" "<>" "<$" "$>" "<$>" "<+" "+>" "<+>" "<:" ":<" 184 + "<:<" ">:" ":>" "<~" "~>" "<~>" "<<~" "<~~" "~~>" "~~" "<|" "|>" 185 + "<|>" "<||" "||>" "<|||" "|||>" "</" "/>" "</>" "<*" "*>" "<*>" ":?>" 186 + ;; Group D 187 + "#(" "#{" "#[" "]#" "#!" "#?" "#=" "#_" "#_(" "##" "###" "####" 188 + ;; Group E 189 + "[|" "|]" "[<" ">]" "{!!" "!!}" "{|" "|}" "{{" "}}" "{{--" "--}}" 190 + "{!--" "//" "///" "!!" 191 + ;; Group F 192 + "www" "@_" "&&" "&&&" "&=" "~@" "++" "+++" "/\\" "\\/" "_|_" "||" 193 + ;; Group G 194 + "=:" "=:=" "=!=" "==" "===" "=/=" "=~" "~-" "^=" "__" "!=" "!==" "-~" 195 + "--" "---")) 196 197 + (use-package ligature 198 + :ensure t 199 + :config (when (display-graphic-p) 200 + (ligature-set-ligatures 'prog-mode mono-lisa-v2-ligatures) 201 + (global-ligature-mode t))) 202 + 203 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–€โ–ˆโ–€ 204 + ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–„โ–€โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘ 205 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘ 206 + (use-package magit 207 + :ensure t 208 + :hook (after-save-hook . magit-after-save-refresh-status)) 209 + 210 + ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–€โ–€โ–ˆ 211 + ;; โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆ 212 + ;; โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–‘ 213 + (use-package jjdescription 214 + :ensure t) 215 + 216 + (use-package vc-jj 217 + :ensure t) 218 + 219 + ;; Git Gutter -- Shows git status in the sidebar 220 + (use-package git-gutter 221 + :ensure t 222 + :hook (prog-mode . git-gutter-mode) 223 + :config 224 + (setq git-gutter:update-interval 0.2)) 225 + (use-package git-gutter-fringe 226 + :ensure t 227 + :config 228 + (define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated)) 229 + (define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated)) 230 + (define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom)) 231 + 232 + ;; โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–„ 233 + ;; โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–„โ–„โ–„โ–‘โ–€โ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–„ 234 + ;; โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€ 235 + ;; ...because it's pretty cool. 236 + (use-package tree-sitter 237 + :ensure t) 238 + (use-package tree-sitter-langs 239 + :ensure t 240 + :hook (tree-sitter-after-on-hook . tree-sitter-hl-mode) 241 + :config 242 + (global-tree-sitter-mode)) 243 + 244 + ;; indent-mode helps with indenting, moving around, and acting on 245 + ;; whitespace-sensitive code, like YAML and Python. 246 + (use-package indent-tools 247 + :ensure t) 248 + 249 + ;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 250 + ;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 251 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 252 + ;; Bazel, Starlark, Tilt, etc. 253 + (use-package bazel :ensure t 254 + :mode ("Tiltfile.\\'" . bazel-mode)) 255 + 256 + ;; CUE -- https://cuelang.org 257 + (use-package cue-mode :ensure t) 258 + 259 + (use-package dockerfile-mode :ensure t) 260 + 261 + (use-package go-mode 262 + :ensure t 263 + :hook ((go-mode . lsp-deferred) 264 + (before-save . gofmt-before-save)) 265 + :config 266 + (setq gofmt-command "~/go/bin/gofumpt")) 267 + 268 + ;; HashiCorp Configuration Language 269 + (use-package hcl-mode :ensure t) 270 + (use-package terraform-mode 271 + :ensure t 272 + :hook (terraform-mode . outline-minor-mode)) 273 + 274 + ;; Just -- https://just.systems 275 + (use-package just-mode :ensure t) 276 + 277 + (use-package markdown-mode 278 + :ensure t 279 + :mode ("README\\.md\\'" . gfm-mode) 280 + :hook (markdown-mode . auto-fill-mode) 281 + :init (setq markdown-command "multimarkdown")) 282 + 283 + (use-package protobuf-mode :ensure t) 284 + 285 + (use-package rust-mode 286 + :ensure t 287 + :hook (rust-mode-hook . eglot-ensure) 288 + :init 289 + (add-hook 'rust-mode-hook (lambda () (setq indent-tabs-mode nil))) 290 + :config 291 + (setq rust-format-on-save t)) 292 + 293 + (use-package yaml-mode :ensure t) 294 + (use-package flycheck-yamllint :ensure t) 295 + 296 + ;; Zig -- https://ziglang.org 297 + (use-package zig-mode :ensure t) 298 299 ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€ 300 ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–€โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ ··· 316 ;; 317 ;; (which-key-add-keymap-based-replacements nesv-prefix-map 318 ;; "b" `("Buffer" . ,nesv-buffer-prefix-map)) 319 + 320 + ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–€ 321 + ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 322 + ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€ 323 + (setq inferior-lisp-program "sbcl") 324 325 (provide 'init) 326 ;;; init.el ends here 327 + 328 + (custom-set-variables 329 + ;; custom-set-variables was added by Custom. 330 + ;; If you edit it by hand, you could mess it up, so be careful. 331 + ;; Your init file should contain only one such instance. 332 + ;; If there is more than one, they won't work right. 333 + '(package-selected-packages 334 + '(all-the-icons bazel cue-mode direnv dockerfile-mode exec-path-from-shell 335 + flycheck-yamllint git-gutter-fringe go-mode indent-tools 336 + jjdescription just-mode ligature magit markdown-mode 337 + naysayer-theme neotree nerd-icons protobuf-mode rust-mode 338 + solaire-mode terraform-mode tree-sitter-langs yaml-mode 339 + zig-mode))) 340 + (custom-set-faces 341 + ;; custom-set-faces was added by Custom. 342 + ;; If you edit it by hand, you could mess it up, so be careful. 343 + ;; Your init file should contain only one such instance. 344 + ;; If there is more than one, they won't work right. 345 + )
-31
nesv/nesv-cursor.el
··· 1 - ;;; nesv-cursor -- Cursor configuration for GUI mode 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package cursory 6 - :ensure t 7 - :if (display-graphic-p) 8 - :config 9 - (setq cursory-presets 10 - '((bar 11 - :cursor-type (bar . 2) 12 - :cursor-in-non-selected-windows hollow 13 - :blink-cursor-blinks 10 14 - :blink-cursor-interval 0.5 15 - :blink-cursor-delay 0.2) 16 - (box 17 - :cursor-type box 18 - :cursor-in-non-selected-windows hollow 19 - :blink-cursor-blinks 10 20 - :blink-cursor-interval 0.5 21 - :blink-cursor-delay 0.2) 22 - (underscore 23 - :cursor-type (hbar . 3) 24 - :cursor-in-non-selected-windows hollow 25 - :blink-cursor-blinks 50 26 - :blink-cursor-interval 0.2 27 - :blink-cursor-delay 0.2))) 28 - (cursory-set-preset 'bar)) 29 - 30 - (provide 'nesv-cursor) 31 - ;;; nesv-cursor.el ends here
···
-102
nesv/nesv-fonts.el
··· 1 - ;;; nesv-fonts -- Font configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package fontaine 6 - :ensure t 7 - :if (display-graphic-p) 8 - :config 9 - (setq fontaine-presets 10 - '((tiny 11 - :default-family "Iosevka Comfy Wide Fixed" 12 - :default-height 70) 13 - (small 14 - :default-family "Iosevka Comfy Fixed" 15 - :default-height 90) 16 - (regular 17 - :default-height 100) 18 - (medium 19 - :default-height 110) 20 - (medium-large 21 - :default-height 120) 22 - (large 23 - :default-weight semilight 24 - :default-height 140 25 - :bold-weight extrabold) 26 - (presentation 27 - :default-weight semlight 28 - :default-height 170 29 - :bold-weight extrabold) 30 - (t 31 - :default-family nesv-emacs-font 32 - :default-weight regular 33 - :default-height 100 34 - :fixed-pitch-family nil ; Falls back to :default-family 35 - :fixed-pitch-weight nil ; Falls back to :default-weight 36 - :fixed-pitch-height 1.0 37 - ;;:variable-pitch-family "Iosevka Comfy Wide Duo" 38 - :variable-pitch-family "Atkinson Hyperlegible" 39 - :variable-pitch-weight nil 40 - :variable-pitch-height 1.0 41 - :bold-family nil ; Whatever the underlying face has 42 - :bold-weight bold 43 - :italic-family nil 44 - :italic-slant italic 45 - :line-spacing nil))) 46 - (fontaine-set-preset 'medium-large)) 47 - 48 - (setq mono-lisa-v2-ligatures 49 - '(;; coding ligatures 50 - "<!---" "--->" "|||>" "<!--" "<|||" "<==>" "-->" "->>" "-<<" "..=" "!==" 51 - "#_(" "/==" "||>" "||=" "|->" "===" "==>" "=>>" "=<<" "=/=" ">->" ">=>" 52 - ">>-" ">>=" "<--" "<->" "<-<" "<||" "<|>" "<=" "<==" "<=>" "<=<" "<<-" 53 - "<<=" "<~>" "<~~" "~~>" ">&-" "<&-" "&>>" "&>" "->" "-<" "-~" ".=" "!=" 54 - "#_" "/=" "|=" "|>" "==" "=>" ">-" ">=" "<-" "<|" "<~" "~-" "~@" "~=" 55 - "~>" "~~" 56 - ;; whitespace ligatures 57 - "---" "'''" "\"\"\"" "..." "..<" "{|" "[|" ".?" "::" ":::" "::=" ":=" 58 - ":>" ":<" "\;\;" "!!" "!!." "!!!" "?." "?:" "??" "?=" "**" "***" "*>" 59 - "*/" "--" "#:" "#!" "#?" "##" "###" "####" "#=" "/*" "/>" "//" "/**" 60 - "///" "$(" ">&" "<&" "&&" "|}" "|]" "$>" ".." "++" "+++" "+>" "=:=" 61 - "=!=" ">:" ">>" ">>>" "<:" "<*" "<*>" "<$" "<$>" "<+" "<+>" "<>" "<<" 62 - "<<<" "</" "</>" "^=" "%%")) 63 - 64 - (setq berkeley-mono-ligatures 65 - '(;; Group A 66 - ".." ".=" "..." "..<" "::" ":::" ":=" "::=" ";;" ";;;" "??" "???" 67 - ".?" "?." ":?" "?:" "?=" "**" "***" "/*" "*/" "/**" 68 - ;; Group B 69 - "<-" "->" "-<" ">-" "<--" "-->" "<<-" "->>" "-<<" ">>-" "<-<" ">->" 70 - "<-|" "|->" "-|" "|-" "||-" "<!--" "<#--" "<=" "=>" ">=" "<==" "==>" 71 - "<<=" "=>>" "=<<" ">>=" "<=<" ">=>" "<=|" "|=>" "<=>" "<==>" "||=" 72 - "|=" "//=" "/=" 73 - ;; Group C 74 - "<<" ">>" "<<<" ">>>" "<>" "<$" "$>" "<$>" "<+" "+>" "<+>" "<:" ":<" 75 - "<:<" ">:" ":>" "<~" "~>" "<~>" "<<~" "<~~" "~~>" "~~" "<|" "|>" 76 - "<|>" "<||" "||>" "<|||" "|||>" "</" "/>" "</>" "<*" "*>" "<*>" ":?>" 77 - ;; Group D 78 - "#(" "#{" "#[" "]#" "#!" "#?" "#=" "#_" "#_(" "##" "###" "####" 79 - ;; Group E 80 - "[|" "|]" "[<" ">]" "{!!" "!!}" "{|" "|}" "{{" "}}" "{{--" "--}}" 81 - "{!--" "//" "///" "!!" 82 - ;; Group F 83 - "www" "@_" "&&" "&&&" "&=" "~@" "++" "+++" "/\\" "\\/" "_|_" "||" 84 - ;; Group G 85 - "=:" "=:=" "=!=" "==" "===" "=/=" "=~" "~-" "^=" "__" "!=" "!==" "-~" 86 - "--" "---")) 87 - 88 - (use-package ligature 89 - :ensure t 90 - :defer t 91 - :if (display-graphic-p) 92 - :config 93 - (when (or (eq nesv-emacs-font "MonoLisa") 94 - (eq nesv-emacs-font "Berkeley Mono")) 95 - (ligature-set-ligatures 'prog-mode (pcase nesv-emacs-font 96 - ("MonoLisa" mono-lisa-v2-ligatures) 97 - ("Berkeley Mono" berkeley-mono-ligatures)))) 98 - (global-ligature-mode t)) 99 - 100 - 101 - (provide 'nesv-fonts) 102 - ;;; nesv-fonts.el ends here
···
-24
nesv/nesv-git.el
··· 1 - ;;; nesv-git -- Git configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package magit 6 - :ensure t 7 - :hook (after-save-hook . magit-after-save-refresh-status)) 8 - 9 - ;; Git Gutter -- Shows git status in the sidebar 10 - (use-package git-gutter 11 - :ensure t 12 - :hook (prog-mode . git-gutter-mode) 13 - :config 14 - (setq git-gutter:update-interval 0.2)) 15 - 16 - (use-package git-gutter-fringe 17 - :ensure t 18 - :config 19 - (define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated)) 20 - (define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated)) 21 - (define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom)) 22 - 23 - (provide 'nesv-git) 24 - ;;; nesv-git.el ends here
···
-8
nesv/nesv-gnus.el
··· 1 - ;;; nesv-gnus -- GNUS configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (setq gnus-select-method '(nntp "news.newshosting.com")) 6 - 7 - (provide 'nesv-gnus) 8 - ;;; nesv-gnus.el ends here
···
-18
nesv/nesv-icons.el
··· 1 - ;;; nesv-icons.el -- Icon snazziness 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package nerd-icons 6 - :ensure t) 7 - 8 - (use-package nerd-icons-completion 9 - :ensure t 10 - :hook (marginalia-mode . nerd-icons-completion-marginalia-setup)) 11 - 12 - (use-package nerd-icons-dired 13 - :ensure t 14 - :hook 15 - (dired-mode . nerd-icons-dired-mode)) 16 - 17 - (provide 'nesv-icons) 18 - ;;; nesv-icons.el ends here
···
-9
nesv/nesv-lsp.el
··· 1 - ;;; nesv-lsp -- LSP client configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package eglot 6 - :ensure t) 7 - 8 - (provide 'nesv-lsp) 9 - ;;; nesv-lsp.el ends here
···
-129
nesv/nesv-programming.el
··· 1 - ;;; nesv-programming.el -- Configuration for programming-related things. 2 - ;;; Commentary: 3 - ;; This file installs any packages that are useful in my day-to-day programming 4 - ;; tasks. 5 - ;;; Code: 6 - 7 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆ 8 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–„ 9 - ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€ 10 - (use-package flycheck 11 - :ensure t 12 - :init (global-flycheck-mode)) 13 - 14 - ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€ 15 - ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘ 16 - ;; โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 17 - (use-package adoc-mode 18 - :ensure t) 19 - 20 - ;; Bazel, Starlark, Tilt, etc. 21 - (use-package bazel 22 - :ensure t 23 - :mode 24 - ("Tiltfile.\\'" . bazel-mode)) 25 - 26 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 27 - ;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 28 - ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 29 - ;; https://cuelang.org 30 - (use-package cue-mode 31 - :ensure t) 32 - 33 - (use-package dockerfile-mode 34 - :ensure t) 35 - 36 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆ 37 - ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆ 38 - ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 39 - (use-package go-mode 40 - :ensure t 41 - :hook 42 - ((before-save . gofmt-before-save) 43 - (go-mode-hook . lsp-deferred)) 44 - :config 45 - (setq gofmt-command "goimports")) 46 - 47 - ;; indent-mode helps with indenting, moving around, and acting on 48 - ;; whitespace-sensitive code, like YAML and Python. 49 - (use-package indent-tools 50 - :ensure t) 51 - 52 - ;; HashiCorp Configuration Language 53 - (use-package hcl-mode 54 - :ensure t) 55 - 56 - (use-package terraform-mode 57 - :ensure t 58 - :hook 59 - (terraform-mode . outline-minor-mode)) 60 - 61 - ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€ 62 - ;; โ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘ 63 - ;; โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘ 64 - ;; https://just.systems 65 - (use-package just-mode 66 - :ensure t) 67 - 68 - ;; โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆ 69 - ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–‘โ–ˆ 70 - ;; โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€ 71 - (use-package markdown-mode 72 - :ensure t 73 - :mode 74 - ("README\\.md\\'" . gfm-mode) 75 - :hook 76 - (markdown-mode . auto-fill-mode) 77 - :init 78 - (setq markdown-command "multimarkdown") 79 - :config 80 - (setq markdown-fontify-code-blocks-natively t)) 81 - 82 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆ 83 - ;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–€โ–€โ–ˆโ–‘โ–€โ–„โ–€ 84 - ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘ 85 - (use-package csv-mode 86 - :ensure t 87 - :commands (csv-align-mode)) 88 - 89 - ;; โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 90 - ;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€ 91 - ;; โ–‘โ–€โ–‘โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–‘โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–‘ 92 - (use-package protobuf-mode 93 - :ensure t) 94 - 95 - ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–ˆโ–€ 96 - ;; โ–‘โ–ˆโ–€โ–„โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–€โ–€โ–ˆโ–‘โ–‘โ–ˆโ–‘ 97 - ;; โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–‘โ–€โ–‘ 98 - (use-package rustic 99 - :ensure t 100 - :config 101 - (setq rustic-lsp-client 'eglot) 102 - (setq lsp-eldoc-hook nil) 103 - (setq lsp-enable-symbol-highlighting nil) 104 - (setq lsp-signature-auto-activate nil) 105 - (setq rustic-format-on-save t) 106 - (add-hook 'rustic-mode-hook 'nesv/rustic-mode-hook)) 107 - 108 - (defun nesv/rustic-mode-hook () 109 - (when buffer-file-name 110 - (setq-local buffer-save-without-query t)) 111 - (add-hook 'before-save-hook 'lsp-format-buffer nil t)) 112 - 113 - ;; โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–‘โ–‘ 114 - ;; โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘ 115 - ;; โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€ 116 - (use-package yaml-mode 117 - :ensure t) 118 - 119 - (use-package flycheck-yamllint 120 - :ensure t) 121 - 122 - ;; โ–‘โ–€โ–€โ–ˆโ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–€โ–€ 123 - ;; โ–‘โ–„โ–€โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–‘โ–ˆ 124 - ;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 125 - (use-package zig-mode 126 - :ensure t) 127 - 128 - (provide 'nesv-programming) 129 - ;;; nesv-programming.el ends here
···
-7
nesv/nesv-slime.el
··· 1 - ;;; nesv-slime -- Superior LISP Interaction Mode for Emacs 2 - ;;; Commentary: 3 - ;;; Code: 4 - (setq inferior-lisp-program "sbcl") 5 - 6 - (provide 'nesv-slime) 7 - ;;; nesv-slime.el ends here
···
-48
nesv/nesv-theme.el
··· 1 - ;;; nesv-theme.el -- Colour theme configuration 2 - ;;; Commentary: 3 - ;;; โ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–‘โ–‘โ–€โ–ˆโ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–„โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–€โ–€ 4 - ;;; โ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–‘โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–„โ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–€โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–ˆโ–‘โ–ˆโ–‘โ–ˆโ–€โ–€โ–‘โ–€โ–€โ–ˆ 5 - ;;; โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–‘โ–‘โ–‘โ–€โ–‘โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–‘โ–€โ–‘โ–€โ–€โ–€โ–‘โ–€โ–€โ–€ 6 - ;;; Code: 7 - 8 - ;; A recreation of Jonathan Blow's emacs theme. 9 - (use-package naysayer-theme 10 - :ensure t) 11 - 12 - ;; EF-THEMES -- https://protesilaos.com/emacs/ef-themes 13 - (use-package ef-themes 14 - :ensure t) 15 - 16 - ;; MODUS THEMES -- https://protesilaos.com/emacs/modus-themes 17 - (use-package modus-themes 18 - :ensure t) 19 - 20 - (when nesv-emacs-load-theme 21 - (load-theme 22 - (pcase nesv-emacs-load-theme 23 - ('ef 'ef-bio) 24 - ('modus 'modus-vivendi-tinted) 25 - ('naysayer 'naysayer)) 26 - t)) 27 - 28 - (load-theme 'ef-bio t) 29 - 30 - (use-package spacious-padding 31 - :ensure t 32 - :if (display-graphic-p) 33 - :hook (after-init . spacious-padding-mode) 34 - :bind ("<f8>" . spacious-padding-mode) 35 - :init 36 - (setq spacious-padding-widths 37 - '( :internal-border-width 30 38 - :header-line-width 4 39 - :mode-line-width 6 40 - :tab-width 4 41 - :right-divider-width 30 42 - :scroll-bar-width 8 43 - :left-fringe-width 20 44 - :right-fringe-width 20)) 45 - (setq spacious-padding-subtle-mode-line nil)) 46 - 47 - (provide 'nesv-theme) 48 - ;;; nesv-theme.el ends here
···
-15
nesv/nesv-tree-sitter.el
··· 1 - ;;; nesv-tree-sitter -- tree-sitter configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package tree-sitter 6 - :ensure t) 7 - 8 - (use-package tree-sitter-langs 9 - :ensure t 10 - :hook (tree-sitter-after-on-hook . tree-sitter-hl-mode) 11 - :config 12 - (global-tree-sitter-mode)) 13 - 14 - (provide 'nesv-tree-sitter) 15 - ;;; nesv-tree-sitter.el ends here
···
-18
nesv/nesv-which-key.el
··· 1 - ;;; nesv-which-key -- WHICH-KEY configuration 2 - ;;; Commentary: 3 - ;;; Code: 4 - 5 - (use-package which-key 6 - :ensure t 7 - :hook (after-init . which-key-mode) 8 - :config 9 - (setq which-key-separator " ") 10 - (setq which-key-prefix-prefix "... ") 11 - (setq which-key-max-display-columns 3) 12 - (setq which-key-idle-delay 1.5) 13 - (setq which-key-idle-secondary-delay 0.25) 14 - (setq which-key-add-column-padding 1) 15 - (setq which-key-max-description-length 40)) 16 - 17 - (provide 'nesv-which-key) 18 - ;;; nesv-which-key.el ends here
···