;;; init.el --- Emacs configuration -*- lexical-binding: t; -*- (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) (set-face-attribute 'default nil :height 130) (setq display-line-numbers-type 'relative) (global-display-line-numbers-mode 1) (setq-default indent-tabs-mode nil) (setq custom-file (concat user-emacs-directory "custom.el")) (setq backup-directory-alist `(("." . ,(concat user-emacs-directory "backups")))) (use-package ibuffer :custom (ibuffer-expert t) (ibuffer-show-empty-filter-groups nil) :hook (ibuffer-mode . ibuffer-auto-mode)) (use-package evil :init (setq evil-want-keybinding nil) (setq evil-undo-system 'undo-redo) :config (evil-set-leader '(normal visual) (kbd "SPC")) (evil-define-key '(normal visual) 'global (kbd "bi") #'ibuffer) (evil-mode 1)) (use-package evil-collection :after evil :config (evil-collection-init)) ;; TODO: make new custom theme based on this... ;; this theme doesn't have ANSI colors for vterm ;; (use-package vs-dark-theme ;; :config ;; (load-theme 'vs-dark t)) (load-theme 'modus-vivendi t) ;; needs pgtk/GTK build ;; TODO: this is crashing my emacs :( ;;(add-to-list 'default-frame-alist '(alpha-background . 80)) ;;(set-frame-parameter nil 'alpha-background 75) ;;;; dev (use-package vterm ;; provided by Nix (emacsPackages.vterm) :ensure nil :commands vterm :init (evil-define-key 'normal 'global (kbd "ot") #'vterm)) (use-package apheleia :config (add-to-list 'apheleia-mode-alist '(scheme-mode . lisp-indent)) (apheleia-global-mode +1)) ;;;;; markdown (use-package markdown-mode :mode ("\\.md\\'" . gfm-mode) :hook (markdown-mode . flyspell-mode)) (setq ispell-program-name "aspell" ispell-dictionary "en_US") (add-hook 'markdown-mode-hook #'flyspell-mode) (use-package nix-ts-mode :mode "\\.nix\\'") ;;;;; scheme (use-package geiser-guile) (use-package rainbow-delimiters :hook (scheme-mode . rainbow-delimiters-mode) (emacs-lisp-mode . rainbow-delimiters-mode)) (add-hook 'scheme-mode-hook #'electric-pair-local-mode) ;;;;; elisp (add-hook 'emacs-lisp-mode-hook #'outline-minor-mode) (add-hook 'emacs-lisp-mode-hook #'electric-pair-local-mode) ;;;;; c ;; TODO: I truly do not understand the interaction ;; between this and apheleia / clang format (setq-default c-default-style "k&r" c-basic-offset 4)