(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) (unless package-archive-contents (package-refresh-contents)) (require 'use-package) (setq use-package-always-ensure t) (scroll-bar-mode -1) (setq display-line-numbers-type 'relative) (global-display-line-numbers-mode 1) (setq-default indent-tabs-mode nil) (setq custom-file (make-temp-file "emacs-custom-")) ;; move temp files out of the cwd (let ((auto-save-dir (concat user-emacs-directory "auto-save/")) (backup-dir (concat user-emacs-directory "backups/"))) (make-directory auto-save-dir t) (make-directory backup-dir t) (setq auto-save-file-name-transforms `((".*" ,auto-save-dir t))) (setq backup-directory-alist `(("." . ,backup-dir)))) (use-package evil :init (setq evil-want-keybinding nil) (setq evil-want-C-u-scroll t) :config (evil-mode 1)) (use-package evil-collection :after evil :config (evil-collection-init)) (add-hook 'eshell-mode-hook (lambda () (evil-insert-state))) (use-package vs-dark-theme :config (load-theme 'vs-dark t)) (use-package apheleia :config (add-to-list 'apheleia-mode-alist '(scheme-mode . lisp-indent)) (apheleia-global-mode +1)) (use-package geiser-guile) (use-package markdown-mode :ensure t :mode ("\\.md\\'" . gfm-mode) :hook (markdown-mode . flyspell-mode)) (use-package nix-ts-mode :mode "\\.nix\\'") (use-package rainbow-delimiters :hook (scheme-mode . rainbow-delimiters-mode)) (add-hook 'scheme-mode-hook #'electric-pair-local-mode) (setq ispell-program-name "aspell" ispell-dictionary "en_US") (add-hook 'markdown-mode-hook #'flyspell-mode) (use-package magit :bind ("C-x g" . magit-status))