EXWM: Load Helm code conditionally
parent
8fd51eaa86
commit
b54b64e94f
|
@ -97,35 +97,36 @@
|
||||||
;;; External application shortcuts.
|
;;; External application shortcuts.
|
||||||
|
|
||||||
;;; Web browser
|
;;; Web browser
|
||||||
(defvar exwm/helm-browser-map
|
(with-eval-after-load 'helm
|
||||||
(let ((map (make-sparse-keymap)))
|
(defvar exwm/helm-browser-map
|
||||||
(set-keymap-parent map helm-map)
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map (kbd "C-c o") 'helm-buffer-switch-other-window)
|
(set-keymap-parent map helm-map)
|
||||||
(define-key map (kbd "C-c C-o") 'helm-buffer-switch-other-frame)
|
(define-key map (kbd "C-c o") 'helm-buffer-switch-other-window)
|
||||||
(define-key map (kbd "M-D") 'helm-buffer-run-kill-buffers)
|
(define-key map (kbd "C-c C-o") 'helm-buffer-switch-other-frame)
|
||||||
map)
|
(define-key map (kbd "M-D") 'helm-buffer-run-kill-buffers)
|
||||||
"Keymap for browser source in Helm.")
|
map)
|
||||||
|
"Keymap for browser source in Helm.")
|
||||||
|
|
||||||
(defun exwm/helm-browser-buffers ()
|
(defun exwm/helm-browser-buffers ()
|
||||||
"Preconfigured `helm' to list browser buffers."
|
"Preconfigured `helm' to list browser buffers."
|
||||||
(interactive)
|
(interactive)
|
||||||
(helm :sources
|
(helm :sources
|
||||||
(helm-build-sync-source (concat (or exwm-class-name (file-name-nondirectory browse-url-generic-program)) " buffers")
|
(helm-build-sync-source (concat (or exwm-class-name (file-name-nondirectory browse-url-generic-program)) " buffers")
|
||||||
:candidates
|
:candidates
|
||||||
(delq nil (mapcar
|
(delq nil (mapcar
|
||||||
(lambda (buf)
|
(lambda (buf)
|
||||||
(if (with-current-buffer buf
|
(if (with-current-buffer buf
|
||||||
(and (eq major-mode 'exwm-mode)
|
(and (eq major-mode 'exwm-mode)
|
||||||
(string= (downcase exwm-class-name) (file-name-nondirectory browse-url-generic-program))))
|
(string= (downcase exwm-class-name) (file-name-nondirectory browse-url-generic-program))))
|
||||||
(buffer-name buf)
|
(buffer-name buf)
|
||||||
nil))
|
nil))
|
||||||
(buffer-list)))
|
(buffer-list)))
|
||||||
:action '(("Switch to browser buffer(s)" . helm-buffer-switch-buffers)
|
:action '(("Switch to browser buffer(s)" . helm-buffer-switch-buffers)
|
||||||
("Switch to browser buffer(s) in other window `C-c o'" . helm-buffer-switch-buffers-other-window)
|
("Switch to browser buffer(s) in other window `C-c o'" . helm-buffer-switch-buffers-other-window)
|
||||||
("Switch to browser buffer in other frame `C-c C-o'" . switch-to-buffer-other-frame)
|
("Switch to browser buffer in other frame `C-c C-o'" . switch-to-buffer-other-frame)
|
||||||
("Kill browser buffer(s)" . helm-kill-marked-buffers))
|
("Kill browser buffer(s)" . helm-kill-marked-buffers))
|
||||||
:keymap exwm/helm-browser-map)
|
:keymap exwm/helm-browser-map)
|
||||||
:buffer "*exwm/helm browser*"))
|
:buffer "*exwm/helm browser*")))
|
||||||
|
|
||||||
(defun exwm-start-browser ()
|
(defun exwm-start-browser ()
|
||||||
"Fire-up the web browser as defined in `browse-url-generic-program'.
|
"Fire-up the web browser as defined in `browse-url-generic-program'.
|
||||||
|
@ -135,7 +136,7 @@ If there is none, fire it up."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (and (eq major-mode 'exwm-mode)
|
(if (and (eq major-mode 'exwm-mode)
|
||||||
(string= (downcase exwm-class-name) (file-name-nondirectory browse-url-generic-program)))
|
(string= (downcase exwm-class-name) (file-name-nondirectory browse-url-generic-program)))
|
||||||
(if (and (require 'helm-config nil t) helm-mode)
|
(if (fboundp 'exwm/helm-browser-buffers)
|
||||||
(exwm/helm-browser-buffers)
|
(exwm/helm-browser-buffers)
|
||||||
(start-process-shell-command browse-url-generic-program nil browse-url-generic-program))
|
(start-process-shell-command browse-url-generic-program nil browse-url-generic-program))
|
||||||
(let ((last (buffer-list)))
|
(let ((last (buffer-list)))
|
||||||
|
|
Loading…
Reference in New Issue