summaryrefslogtreecommitdiff
path: root/.emacs.d/lisp/exwm-holyK-firefox.el
blob: 30eff56a4498c63b6e908a34d215b3e0e79798d4 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
;;; exwm-holyK-firefox --- Emacs keybinding implemention of exwm-firefox-core
;;; Author: Thanos Apollo
;;; Commentary:
;;; Code:

(require 'exwm-firefox-core)

(defvar exwm-firefox-class-names
  '("firefox-default" "firefox" "Firefox" "Nightly" "Icecat")
  "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-s") 'exwm-firefox-core-find)
	    (define-key map (kbd "C-y") 'exwm-firefox-core-paste)
	    (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)
	    map))

(defun exwm-firefox-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
	    )))