Bala's Blog

Emacs package management with cask and pallet

May 28 2017
156 words, ~1 min. read
emacs,  cask,  pallet,  package 

Cask is a project management tool for Emacs; pallet is a package management helper for Emacs, which helps to keep track of installed packages.

Clone cask repository

git clone git@github.com:cask/cask ~/.cask

Setup environment

# vim ~/.bashrc
export CASK_HOME=~/.cask
export PATH=$PATH:$CASK_HOME/bin

Note: Ensure to close and open a new terminal.

Install cask

cd ~/.emacs.d
cask install

Configure ~/.emacs.d/Cask

(source "gnu" "http://elpa.gnu.org/packages/")
(source "melpa" "http://melpa.milkbox.net/packages/")
; (source "marmalade" "http://marmalade-repo.org/packages/")
(source "org" "http://orgmode.org/elpa/")

(depends-on "cask")
(depends-on "pallet")

Configure ~/.emacs.d/init.el

(add-to-list 'load-path "~/.emacs.d/lisp")

(require 'cask "~/.cask/cask.el")
(cask-initialize)

(require 'pallet)

(setq root-dir (file-name-directory
                (or (buffer-file-name) load-file-name)))

(setq inhibit-startup-screen t)
(setq echo-keystrokes 0.05)
(setq line-number-mode t)
(setq column-number-mode t)
(setq blink-cursor-mode t)
(setq show-paren-mode t)

(display-time)
(load-theme 'misterioso)

;; org
(setq org-directory 
  (expand-file-name (file-name-as-directory "~/Dropbox/org")))
(setq org-agenda-files '("~/Dropbox/org"))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)

Once, cask is installed & configured as mentioend above, perform the following steps to install pallet,

  1. Start emacs
  2. Install pallet using emacs package manager
  3. Close emacs