;;; post-init.el --- This file is loaded after init.el. -*- no-byte-compile: t; lexical-binding: t; -*- (load-theme 'modus-operandi) (set-face-attribute 'default nil :height 110 :font "Iosevka Nerd Font" :weight 'normal) (setq initial-frame-alist '((width . 100) (height . 25))) ;; Use straight.el for package management, integrate with use-package. (setq straight-use-package-by-default t) (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name "straight/repos/straight.el/bootstrap.el" (or (bound-and-true-p straight-base-dir) user-emacs-directory))) (bootstrap-version 7)) (unless (file-exists-p bootstrap-file) (with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el" 'silent 'inhibit-cookies) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage)) (unless (memq 'use-package-autoloads features) (straight-use-package 'use-package)) ;; Minibuffers and stuff (setq enable-recursive-minibuffers t) (which-key-mode t) ;; Modeline (display-time-mode) (setq display-time-24hr-format t) (use-package diminish :ensure t) ;; Since diminish was loaded after compile-angel, we cannot use the use-package ;; integration to diminish it. So, we do it manually here. (diminish 'compile-angel-on-save-local-mode) (diminish 'compile-angel-on-load-mode) (diminish 'eldoc-mode) ;; Avoid backups or lockfiles to prevent creating world-readable copies of files (setq create-lockfiles nil) (setq make-backup-files nil) (setq backup-directory-alist `((".*" . ,(expand-file-name "backup" user-emacs-directory)))) (setq tramp-backup-directory-alist backup-directory-alist) (setq backup-by-copying-when-linked t) (setq backup-by-copying t) ; Backup by copying rather renaming (setq delete-old-versions t) ; Delete excess backup versions silently (setq version-control t) ; Use version numbers for backup files (setq kept-new-versions 5) (setq kept-old-versions 5) ;; Syntax highlights (setq treesit-font-lock-level 4) ;; NixOS Specific (unless (functionp 'nix--profile-paths) (message "Not on NixOS. Will try to install packages usually managed by it through use-package.") (use-package compile-angel :demand t :custom (compile-angel-verbose nil) :config (compile-angel-on-load-mode) (add-hook 'emacs-lisp-mode-hook #'compile-angel-on-save-local-mode)) (use-package vterm :defer t :ensure t) (use-package nix-ts-mode :defer t :ensure t)) ;; LSP and stuff (add-hook 'nix-ts-mode-hook 'eglot-ensure) (add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-ts-mode)) ;; Load the configs from plug-in files. (let ((config-dir (concat minimal-emacs-user-directory ".config.d"))) (if (not (file-exists-p config-dir)) (make-directory config-dir)) (dolist (lisp-file (directory-files config-dir t directory-files-no-dot-files-regexp)) (load lisp-file nil 'nomessage))) ;;; post-init.el ends here