     (require 'helm-config)
     (define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action)
     (define-key helm-map (kbd "C-z") 'helm-select-action)
-    (global-set-key (kbd "C-x C-f") 'helm-find-files)
     (global-set-key (kbd "M-y") 'helm-show-kill-ring)
     (global-set-key [remap occur] 'helm-occur))
   :diminish ""
   :demand)
 
-;; Helm projectile. I'm surprised I didn't install this before.
-(use-package helm-projectile
-  :ensure t
-  :config
-  (helm-projectile-on)
-  (setq projectile-completion-system 'helm))
+;; I've come to think helm is not really good with files anymore. So let's
+;; use counsel
+(use-package counsel
+  :ensure t
+  :after helm
+  :config
+  (global-set-key (kbd "C-x C-f") 'counsel-find-file)
+  (global-set-key (kbd "C-.") 'counsel-imenu))
 
 ;; Magit is critical for any developer
 (use-package magit

  (setq projectile-enable-caching t)
  (setq projectile-switch-project-action 'projectile-dired))


;; Flycheck. What's an editor without error checking?
(use-package flycheck

(use-package helm
  :ensure t
  :bind
  (("C-S-m" . helm-mini)
   ("C-x b" . helm-mini))
  :config
  (progn
    (helm-mode 1)
