;;; install-packages.el ;; Author: Rachel Fae Fox ;; URL: https://git.foxiepa.ws/foxiepaws/dotfiles/ (add-to-list 'load-path (expand-file-name "~/.emacs.d/defaultcontent/")) (setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) (defvar eyecandy '(smex abyss-theme airline-themes powerline powerline-evil rainbow-delimiters purple-haze-theme org-beautify-theme)) (defvar osx '(osx-plist osx-dictionary osx-clipboard osx-browse swift-mode swift-playground-mode swift3-mode swift-helpful osx-lib osx-trash)) (defvar orgstuff '(org org-journal org-journal-list org-kindle org-multi-wiki org-projectile org-wc ego org-analyzer org-board org-d20 org-ac org-brain org-clock-today org-gcal org-static-blog org-sync org-sync-snippets org-timeline org-trello)) (defvar langs '(python racket-mode yaml-mode nixpkgs-fmt nix-mode haskell-mode elixir-mode arduino-mode qml-mode qt-pro-mode)) (defvar evil '(evil evil-leader evil-org evil-smartparens evil-surround evil-collection)) (defvar extras '(magit elscreen projectile flx flx-ido diminish diminish-buffer neotree paradox use-package editorconfig editorconfig-custom-majormode)) (defvar progtools '(flycheck ac-c-headers ac-html ac-html-bootstrap elixir-yasnippets ac-clang auto-complete-distel auto-complete-c-headers auto-complete-exuberant-ctags yasnippet-classic-snippets yasnippet-snippets snippet)) (defvar projectmanagement '(projectile projectile-rails projectile-codesearch projectile-variable project-shells)) (let ((my-packages (append eyecandy osx orgstuff langs evil extras progtools projectmanagement))) (defun my-packages-installed-p () (cl-loop for p in my-packages when (not (package-installed-p p)) do (cl-return nil) finally (cl-return t))) (unless (my-packages-installed-p) ;; check for new packages (package versions) (package-refresh-contents) ;; install the missing packages (dolist (p my-packages) (when (not (package-installed-p p)) (package-install p)))))