The goal of this program is to allow you to control browsers from emacs. It’s in a semi-working state with a bunch of planned features
Clone the repo and source the load the controller.el
file
(load-file "~/git/emacs-selenium-controller/controller.el")
This requires a running python installation and the =selenium=package to be installed
pip3 install selenium
Grab the latest geckodriver from here and make sure it’s available in your path
Start the browser with the browser-controller
command. The browser-controller
that’s spawned can be controlled via this interface. This is the default keymap:
(define-derived-mode controller-mode special-mode "controller-mode"
(define-key controller-mode-map (kbd "f") 'controller-find)
(define-key controller-mode-map (kbd "j") 'controller-scroll-down)
(define-key controller-mode-map (kbd "k") 'controller-scroll-up)
(define-key controller-mode-map (kbd "h") 'controller-scroll-left)
(define-key controller-mode-map (kbd "l") 'controller-scroll-right)
(define-key controller-mode-map (kbd "p") 'controller-page-up)
(define-key controller-mode-map (kbd "n") 'controller-page-down)
(define-key controller-mode-map (kbd "TAB") 'controller-send-tab)
(define-key controller-mode-map (kbd "i") 'controller-input-mode)
(define-key controller-mode-map (kbd "e") 'controller-refresh)
(define-key controller-mode-map (kbd "z") 'controller-send-escape)
(define-key controller-mode-map (kbd "W") 'controller-close-tab)
(define-key controller-mode-map (kbd "<return>") 'controller-send-enter)
(define-key controller-mode-map (kbd "d") 'controller-quit-find)
(define-key controller-mode-map (kbd "L") 'controller-url-goto)
(define-key controller-mode-map (kbd "e") 'controller-forward-history)
(define-key controller-mode-map (kbd "a") 'controller-backward-history)
(define-key controller-mode-map (kbd "s") 'controller-search-in-page)
(define-key controller-mode-map (kbd "S") 'controller-guided-search-in-page)
(define-key controller-mode-map (kbd "r") 'controller-record)
(define-key controller-mode-map (kbd "c") 'controller-click-highlighted)
(define-key controller-mode-map (kbd "*") 'controller-highlight)
(define-key controller-mode-map (kbd "b") 'controller-bookmark-page)
(define-key controller-mode-map (kbd "B") 'controller-break)
(define-key controller-mode-map (kbd "t") 'controller-switch-tab)
(define-key controller-mode-map (kbd "m") 'controller-print-highlighted)
(define-key controller-mode-map (kbd "T") 'controller-new-tab)
(define-key controller-mode-map (kbd ".") 'controller-wait-for))