   (bind-key "<tab>" #'helm-execute-persistent-action helm-map) ; rebind tab to do persistent action
   (bind-key "C-i" #'helm-execute-persistent-action helm-map) ; make TAB works in terminal
   (bind-key "C-z" #'helm-select-action helm-map) ; list actions using C-z
+  (bind-key "M-p" #'helm-previous-source helm-map)
+  (bind-key "M-n" #'helm-next-source helm-map)
   :bind (("C-c i" . helm-imenu)
          ("M-x" . helm-M-x)
          ("M-y" . helm-show-kill-ring)
-         ("C-x b" . helm-buffers-list)
-         ;; Often intended C-x b. Mapping to same command.
-         ("C-x C-b" . helm-buffers-list)
          ("C-h a" . helm-apropos))
+  :commands (helm-buffers-list)
   :ensure t)
 
 (defun ar/projectile-helm-ag ()

  (use-package helm-buffers
    :config
    (setq helm-buffers-favorite-modes (append helm-buffers-favorite-modes
                                               '(picture-mode artist-mode)))
    (setq helm-buffer-max-length 40))
  (use-package helm-files)
  (use-package helm-grep)

        ;; TODO: Avoid adding trailing caused by org-indent-line.
        (delete-trailing-whitespace)))))

(defvar ar/helm-source-my-todos `((name . "TODOS")
                                  (candidates . ,(ar/todos-helm-candidates))
                                  (action . (lambda (candidate)
                                              (cond ((plist-get candidate :marker)
                                                     (org-goto-marker-or-bmk (plist-get candidate :marker)))
                                                    ((plist-get candidate :url)
                                                     (org-open-link-from-string (plist-get candidate
                                                                                           :url))))))))
(defun ar/helm-todos ()
  "Current TODOS."
  (interactive)
  (helm :sources '(ar/helm-source-my-todos)))

(defun ar/helm-my-hotspots ()
  "Show my hotspots."
  (interactive)
  (unless helm-source-buffers-list
    (setq helm-source-buffers-list
          (helm-make-source "Buffers" 'helm-source-buffers)))
  (helm :sources '(helm-source-buffers-list
                   helm-source-ido-virtual-buffers
                   helm-source-buffer-not-found
                   ar/helm-source-local-hotspots
                   ar/helm-source-web-hotspots
                   ar/helm-source-blog
                   ar/helm-source-my-todos)
        :buffer "*helm buffers*"
        :keymap helm-buffer-map
        :truncate-lines t))
(bind-key "C-x b" #'ar/helm-my-hotspots)

(defun ar/update-blog-timestamp-at-point ()
  "Update blog entry timestamp at point."
