;;; init --- Summary ;;; Commentary: ;;; Code: (setq custom-file (concat user-emacs-directory "customizations.el")) (load custom-file) ;; Initialize the package system and use-package (setq load-prefer-newer t) ;; Add my own, version controlled ~lisp~ directory to ~load-path~ (add-to-list 'load-path (expand-file-name (convert-standard-filename "lisp/") user-emacs-directory)) ;; Do the same with the local ~site-lisp~ if it’s there (let ((site-lisp-dir "/usr/local/share/emacs/site-lisp")) (when (file-directory-p site-lisp-dir) (dolist (elt (directory-files site-lisp-dir)) (unless (or (string= elt ".") (string= elt "..")) (add-to-list 'load-path (expand-file-name elt site-lisp-dir)))))) ;; I prefer using freedesktop’s desktop specification everywhere (load "xdg-paths") ;; Set up the package manager ;; Package archives (require 'package) ;; GNU ELPA (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) ;; MELPA Stable (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) ;; MELPA (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) ;; Finally, initialise the package manager (package-initialize) ;; use-package is a really convenient way to install packages. It’s installed in 30.1, but let’s stay on the safe side. (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) (require 'use-package) (use-package use-package :custom (use-package-always-ensure t) (use-package-verbose nil)) (use-package bind-key) ;; Custom functions and commands (load "gpolonkai/utilities") (load "gpolonkai/windows") ;; I started moving my configuration to this Org file. It’s easier to document this way. (org-babel-load-file (expand-file-name "configuration.org" user-emacs-directory)) ;;; init.el ends here