summaryrefslogtreecommitdiff
path: root/.emacs.d/snippets/exwm-holyK-firefox.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/snippets/exwm-holyK-firefox.el')
-rw-r--r--.emacs.d/snippets/exwm-holyK-firefox.el48
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
+ ))
+