             "s"  '(:ignore t :which-key "Search→" )
             "u" #'counsel-unicode-char)
   (:keymaps 'global :prefix "<f4> s"
-            "a" #'me:counsel-projectile-ag
-            "b" #'swiper
+            "a" #'me:counsel-ag-here
             "l" #'counsel-locate
             "g" #'counsel-git-grep
-            "s" #'swiper-all)
+            "s" #'me:counsel-rg-here
+            "w" #'swiper
+            "W" #'swiper-all)
   ("C-h b"  #'counsel-descbinds)
   ("M-x"    #'counsel-M-x)
   ("M-y"    #'counsel-yank-pop)

  (:prefix "<f7>" "s"  '(:ignore t :which-key "Search→" ))
  (:prefix "<SPC>" :states '(normal visual emacs)
           "m"    #'projectile-compile-project)
  :init
  (setq projectile-completion-system 'ivy
        projectile-globally-ignored-files #'( "TAGS" "GTAGS" "GRTAGS" "GPATH" )

        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")))
