     ;; Remote checking is slow. Disable.
     (validate-setq helm-buffer-skip-remote-checking t)
     (validate-setq helm-buffers-fuzzy-matching t))
-  (use-package helm-files)
-  (use-package helm-grep)
+  (use-package helm-files
+    :config
+    (validate-setq helm-ff-file-name-history-use-recentf t)
+    (validate-setq helm-ff-search-library-in-sexp t)
+    (validate-setq helm-ff-skip-boring-files t)
+    (setq helm-boring-file-regexp-list
+          '("\\.git$" "\\.hg$"
+            "\\.svn$" "\\.CVS$"
+            "\\._darcs$" "\\.la$"
+            "\\.o$" "\\.i$")))
+  (use-package helm-grep
+    :bind (:map helm-grep-mode-map
+                ("<return>" . helm-grep-mode-jump-other-window)
+                ("n" . helm-grep-mode-jump-other-window-forward)
+                ("p" . helm-grep-mode-jump-other-window-backward)))
   (use-package helm-org
     :after org-cliplink)
   (use-package helm-swoop :ensure t

         ("C-h a" . helm-apropos)
         ("C-h y" . helm-dash-at-point)
         :map helm-map
         ("C-g" . ar/helm-keyboard-quit-dwim)))

;; From https://gitlab.com/to1ne/temacco/commit/eb2ba7fe4d03c7c9540c595b213a18ba950b3b20

  :demand
  :ensure t
  :config
  (validate-setq helm-follow-mode-persistent t)
  (validate-setq helm-scroll-amount 4) ; scroll 4 lines other window using M-<next>/M-<prior>
  (validate-setq helm-input-idle-delay 0.01) ; be idle for this many seconds, before updating candidate buffer
  (validate-setq helm-split-window-default-side 'below) ;; open helm buffer below.
  (validate-setq helm-split-window-in-side-p t)
  (validate-setq helm-candidate-number-limit 200)
  (use-package helm-net
    :config
    (validate-setq helm-net-prefer-curl t))
  (use-package helm-imenu)
  ;; Switch major modes and toggle minor modes.
  (use-package helm-source)
