;;; init-package.el --- -*- lexical-binding: t -*- ;; ;; Filename: init-package.el ;; Description: Initialize Package Management for M-EMACS ;; Author: Mingde (Matthew) Zeng ;; Copyright (C) 2019 Mingde (Matthew) Zeng ;; Created: Thu Mar 14 10:53:00 2019 (-0400) ;; Version: 2.0.0 ;; Last-Updated: Thu Dec 26 03:37:58 2019 (-0500) ;; By: Mingde (Matthew) Zeng ;; URL: https://github.com/MatthewZMD/.emacs.d ;; Keywords: M-EMACS .emacs.d packages use-package ;; Compatibility: emacs-version >= 26.1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Commentary: ;; ;; This file initializes packages from melpa using use-package macro ;; as well as auto-package-update, diminish, gnu-elpa-keyring-update ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or (at ;; your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Code: ;; MelpaPackages ;; Select the folder to store packages ;; Comment / Uncomment to use desired sites (setq package-user-dir (expand-file-name "elpa" user-emacs-directory) package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "https://melpa.org/packages/") ("cselpa" . "https://elpa.thecybershadow.net/packages/") ;; ("melpa-cn" . "http://mirrors.cloud.tencent.com/elpa/melpa/") ;; ("gnu-cn" . "http://mirrors.cloud.tencent.com/elpa/gnu/") )) ;; -MelpaPackages ;; ConfigurePackageManager (unless (bound-and-true-p package--initialized) (setq package-enable-at-startup nil) ; To prevent initializing twice (package-initialize)) ;; set use-package-verbose to t for interpreted .emacs, ;; and to nil for byte-compiled .emacs.elc. (eval-and-compile (setq use-package-verbose (not (bound-and-true-p byte-compile-current-file)))) ;; -ConfigurePackageManager ;; ConfigureUsePackage ;; Install use-package if not installed (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) (eval-and-compile (setq use-package-always-ensure t) (setq use-package-expand-minimally t) (setq use-package-compute-statistics t) (setq use-package-enable-imenu-support t)) (eval-when-compile (require 'use-package) (require 'bind-key)) ;; -ConfigureUsePackage ;; AutoPackageUpdate (use-package auto-package-update :if (not (daemonp)) :custom (auto-package-update-interval 7) ;; in days (auto-package-update-prompt-before-update t) (auto-package-update-delete-old-versions t) (auto-package-update-hide-results t) :config (auto-package-update-maybe)) ;; -AutoPackageUpdate ;; DimPac (use-package diminish) ;; -DimPac (provide 'init-package) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-package.el ends here