   (package-install 'use-package))
 (eval-when-compile
   (require 'use-package))
+
+(eval-after-load "use-package"
+  '(setq use-package-always-ensure t                              ; ensure by default
+         use-package-always-defer t                               ; defer by default
+         use-package-enable-imenu-support t                       ; support for packages in imenu
+         use-package-minimum-reported-time 0.03                   ; minimum time when verbose
+         use-package-verbose nil))                                 ; don't be verbose
 
 ;; set some personal variables
 (defconst me:data-directory (or (getenv "XDG_DATA_HOME") "~/.local/share"))

          (lambda ()
            (modify-syntax-entry ?+ "." )))                  ; + is punctuation


;; set font in order of preference
(if (member "Hack" (font-family-list))
    (set-frame-font "Hack-11:autohint=true" t t)
  (if (member "Fantasque Sans Mono" (font-family-list))
      (set-frame-font "Fantasque Sans Mono-12" t t)
    (if (member "DejaVu Sans Mono" (font-family-list))
        (set-frame-font "DejaVu Sans Mono-11" t t))))

(tool-bar-mode 0)                                           ; no tool bar (tool-bar)
(scroll-bar-mode 0)                                         ; no scroll bar (scroll-bar)
(mouse-avoidance-mode 'animate)                             ; move mouse pointer out of way (avoid)
(global-eldoc-mode -1)                                      ; turn off annoying eldoc mode (eldoc)
(fset 'yes-or-no-p 'y-or-n-p)                               ; change stupid default y/n? y
(make-directory me:emacs-backup-directory t)                ; make sure backup dir exists
(electric-indent-mode +1)                                   ; turn on electric mode globally (electric)
(savehist-mode t)                                           ; save minibuffer history (savehist)
(minibuffer-depth-indicate-mode t)                          ; show recursive edit depth (mb-depth)
(run-at-time "1 hour" 3600 #'clean-buffer-list)             ; clear out old buffers every hour (midnight)

(global-unset-key (kbd "<f3>"))
(global-unset-key (kbd "<f4>"))
(global-unset-key (kbd "<f10>"))                            ; was menu-bar-open
(global-unset-key (kbd "<f11>"))                            ; was fullscreen mode


;; keymappings
;; N.B. Other keybindings defined in apropriate use-package
(use-package general
  :config
  (general-evil-setup t)
  (general-define-key

;;; -*- lexical-binding: t -*-

(setq gc-cons-threshold most-positive-fixnum)

;; package management

