diff options
Diffstat (limited to '.emacs.d/snippets/exwm-holyK-firefox.el')
-rw-r--r-- | .emacs.d/snippets/exwm-holyK-firefox.el | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/.emacs.d/snippets/exwm-holyK-firefox.el b/.emacs.d/snippets/exwm-holyK-firefox.el new file mode 100644 index 0000000..5c0fa33 --- /dev/null +++ b/.emacs.d/snippets/exwm-holyK-firefox.el @@ -0,0 +1,48 @@ +;;; exwm-holyK-firefox --- Emacs keybinding implemention of exwm-firefox-core +;; Author: Thanos Apollo +;; URL: -- +;; Version: 1.0 +;; Package-Requires: ((emacs "24.4") (exwm "0.16") (exwm-firefox-core "1.0")) +;; Keywords: extensions + +;;; Commentary: + +;; This package implements exwm-firefox-core to allow navigation and editing in firefox +;; using default-like Emacs keybindings + +;;; Code: + +(require 'exwm-firefox-core) + +(defvar exwm-firefox-class-names + '("firefox-default" "firefox" "Firefox" "Nightly" "Icecat" "Iceweasel") + "The class name used for detecting if current buffer is a firefox browser.") + +(define-minor-mode exwm-firefox-holyK-mode + "Get Emacs keybindings in Firefox with EXWM." + :lighter " Firefox/EXWM" + :keymap (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-n") 'exwm-firefox-core-down) + (define-key map (kbd "C-p") 'exwm-firefox-core-up) + (define-key map (kbd "C-f") 'exwm-firefox-core-tab-next) + (define-key map (kbd "C-b") 'exwm-firefox-core-tab-previous) + (define-key map (kbd "C-y") 'exwm-firefox-core-paste) + (define-key map (kbd "C-c C-f") 'exwm-firefox-core-find) + (define-key map (kbd "C-c C-c") 'exwm-firefox-core-copy) + (define-key map (kbd "C-c C-n") 'exwm-firefox-core-tab-new) + (define-key map (kbd "C-c C-k") 'exwm-firefox-core-tab-close) + (define-key map (kbd "C-c C-d") 'exwm-firefox-core-tab-close) + (define-key map (kbd "C-c C-b") 'exwm-firefox-core-history-back) + (define-key map (kbd "C-c C-f") 'exwm-firefox-core-history-forward) + map)) + +(defun holyK-activate-if-firefox () + "Activates firefox-holyK-mode mode when buffer is firefox. +Firefox variant can be assigned in 'exwm-firefox-class-names`" + (interactive) + (if (member exwm-class-name exwm-firefox-class-names) + (list (exwm-firefox-holyK-mode 1) + (setq-local exwm-input-line-mode-passthrough nil)) + ;;if exwm-input-line-mode-passthroug t mouse will stop working properly + )) + |