   :diminish ""
   :demand)
 
+;; Smex provides a GREAT interface for M-x. I got rid of it at some
+;; point but i really regret it, mostly for the last used commands.
+(use-package smex
+  :ensure t)
+
 ;; I've come to think helm is not really good with files anymore. So let's
 ;; use counsel. It also has some nice builtin functionality:
 ;; http://oremacs.com/2015/04/19/git-grep-ivy/
 (use-package counsel
   :ensure t
-  :after (helm ivy flx)
+  :after (helm ivy flx smex)
   :config
   (global-set-key (kbd "C-.") #'counsel-imenu)
   (global-set-key (kbd "C-c s") #'counsel-grep)

  :after helm
  :diminish 'ivy-mode
  :config
  (ivy-mode 1))

;; This one was recommended by Steve Purcell. Looked pretty good

  :ensure t
  :bind (("<f8>" . magit-status)
         ("s-t" . magit-status)
         ("C-x g" . magit-status)))

;; This one can't really be up there, because that doesn't load
;; anything until you actually fire up Magit.
(define-key vc-prefix-map (kbd "h") #'magit-log-buffer-file)

;; Company: Not much customization right now.
(use-package company
