         projectile-cache-file (expand-file-name "projectile-cache" me:emacs-cache-directory)
         projectile-enable-caching t)
   :config
+  (defun me:counsel-ag-project ()
+    "Search using ag in project"
+    (interactive)
+    (if (and (fboundp 'projectile-project-p) (projectile-project-p))
+        (counsel-ag nil (projectile-project-root))
+      (message "Not in a project")))
+  (defun me:counsel-rg-project ()
+    "Search using ripgrep in project"
+    (interactive)
+    (if (and (fboundp 'projectile-project-p) (projectile-project-p))
+        (counsel-rg nil (projectile-project-root))
+      (message "Not in a project")))
 
   (defun me:add-project-templates ()
     (add-to-list 'org-capture-templates `("pn" "Project Notes" entry (file+headline ,(me:project-path "Notes/notes.org") "Notes")))

    ("<f7> <f7>"  #'projectile-persp-switch-project)
    :config)
  (projectile-mode 1))

(use-package counsel-projectile
  :after ( counsel projectile )
  :demand t     ; required because use-package-always-defer is t
  :general
  ("<f7> f" #'counsel-projectile-ag)
  :config)

(use-package perspective
  :after projectile

            "<f5> p" #'peep-dired)
  :config)

(use-package flyspell
  :general
  ("s-f"        #'flyspell-auto-correct-previous-word)
