diff --git a/.emacs.d/lisp/init-eww.el b/.emacs.d/lisp/init-eww.el index 5765849a..76289853 100644 --- a/.emacs.d/lisp/init-eww.el +++ b/.emacs.d/lisp/init-eww.el @@ -69,24 +69,14 @@ If BUFFERS is not specified, then reload all buffers." (when (derived-mode-p 'eww-mode) (eww-reload))))) -(defun ambrevar/eww-switch-back () ; TODO: Replace with `helm-defswitch'. - "Switch to the *eww* buffer." - (interactive) - (let (buffer-info) - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when (derived-mode-p 'eww-mode) - (push buffer buffer-info)))) - (setq buffer-info (nreverse buffer-info)) - (if buffer-info - (if (derived-mode-p 'eww-mode) - (if (fboundp 'helm-eww) - (helm-eww) - (switch-to-buffer (completing-read "EWW: " (mapcar 'buffer-name buffer-info)))) - (switch-to-buffer (car buffer-info))) - (if (fboundp 'helm-eww) - (helm-eww) - (call-interactively 'eww))))) +(when (require 'patch-helm nil 'noerror) + (helm-defswitcher + "eww" + (lambda (b) + (with-current-buffer b + (derived-mode-p 'eww-mode))) + (lambda () (call-interactively 'eww)) + helm-eww)) (defun ambrevar/eww (url) "Fetch URL and render the page. diff --git a/.emacs.d/lisp/init-exwm.el b/.emacs.d/lisp/init-exwm.el index 524d4654..a009066d 100644 --- a/.emacs.d/lisp/init-exwm.el +++ b/.emacs.d/lisp/init-exwm.el @@ -104,8 +104,10 @@ (exwm-input-set-key (kbd "s-n") #'elfeed) (exwm-input-set-key (kbd "s-n") #'helm-elfeed-switch) (exwm-input-set-key (kbd "s-N") #'helm-elfeed-switch-other-window)) ; "n" for "news" -(exwm-input-set-key (kbd "s-e") #'ambrevar/eww-switch-back) -(exwm-input-set-key (kbd "s-E") #'eww) +(if (not (fboundp 'helm-eww-switch)) + (exwm-input-set-key (kbd "s-e") #'eww) + (exwm-input-set-key (kbd "s-e") #'helm-eww-switch) + (exwm-input-set-key (kbd "s-E") #'helm-eww-switch-other-window)) (when (fboundp 'helm-pass) (defun ambrevar/helm-pass-for-page () ; TODO: Share with upstream.