From 884dc44a483dde0aa26b0714ead2c1ff57fbedfc Mon Sep 17 00:00:00 2001 From: Maximilian Wolff Date: Sun, 7 Feb 2021 22:01:04 +0100 Subject: [PATCH] [eaf] Revise the new layer Added default header to funcs.el Replaced references to `,` with `SPC m` Reformat and add conventional progn statements Last but not least it seems that not all functions are working properly, I think this is a good basis but needs to worked upon a bit more to reach its full potential. --- layers/+tools/eaf/README.org | 43 ++-- layers/+tools/eaf/funcs.el | 11 + layers/+tools/eaf/packages.el | 403 +++++++++++++++++----------------- 3 files changed, 238 insertions(+), 219 deletions(-) diff --git a/layers/+tools/eaf/README.org b/layers/+tools/eaf/README.org index 2200478b43e5..4f483fc43abc 100644 --- a/layers/+tools/eaf/README.org +++ b/layers/+tools/eaf/README.org @@ -2,9 +2,6 @@ #+TAGS: layer|web service -# The maximum height of the logo should be 200 pixels. -# [[img/eaf.png]] - * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#features][Features:]] @@ -63,30 +60,44 @@ *** All EAF-applications | Key Binding | Description | |-------------+-----------------------------------------------------------------------| -| ~SPC a a f~ | EAF open file ([[https://github.com/manateelazycat/emacs-application-framework#launch-eaf-applications][see EAF doc for suppoted file types]]) | +| ~SPC a a f~ | EAF open file ([[https://github.com/manateelazycat/emacs-application-framework#launch-eaf-applications][see EAF doc for supported file types]]) | | ~SPC t k m~ | Show available key commands in which-key (read [[https://develop.spacemacs.org/doc/DOCUMENTATION.html#which-key][here]] for more details) | -| ~, d~ | toggle dark-mode (in pdf-viewer just press ~d~) | +| ~SPC m d~ | toggle dark-mode (in pdf-viewer just press ~d~) | + *** Browser +| Key Binding | Description | +|---------------+-----------------------------------------------------------------------| | ~SPC a a b o~ | Open url in new buffer | | ~SPC a a b s~ | Search with [[https://github.com/manateelazycat/emacs-application-framework/wiki/Customization#default-search-engine][your favorite search engine]]. Defaults to symbol at point or region string | | ~SPC a a b b~ | Open bookmark in new buffer | | ~SPC a a b h~ | Search and open buffer from history | + ** Local *** All EAF-applications -| ~j/k~ | Scroll up/down | +| Key Binding | Description | +|-------------+----------------| +| ~j/k~ | Scroll up/down | + *** Browser -|-------+----------------------------------------------------------------| -| ~J/K~ | Scroll (half) page up/down | -| ~e~ | Edit url | -| ~m~ | Bookmark page | -| ~C-s~ | Search/search find next (to enter new search prefix with ~C-g~ | -| ~C-r~ | Search find previous | -| ~, h~ | Open new buffer from history | -| ~, s~ | Search web with [[https://github.com/manateelazycat/emacs-application-framework/wiki/Customization#default-search-engine][favorite search engine]] | +| Key Binding | Description | +|-------------+----------------------------------------------------------------| +| ~J/K~ | Scroll (half) page up/down | +| ~e~ | Edit url | +| ~m~ | Bookmark page | +| ~C-s~ | Search/search find next (to enter new search prefix with ~C-g~ | +| ~C-r~ | Search find previous | +| ~SPC m h~ | Open new buffer from history | +| ~SPC m s~ | Search web with [[https://github.com/manateelazycat/emacs-application-framework/wiki/Customization#default-search-engine][favorite search engine]] | + *** PDF-viewer -| ~d~ | toggle dark-mode | +| Key Binding | Description | +|-------------+------------------| +| ~d~ | toggle dark-mode | + *** pdf-view-mode (pdf-tools) -| ~, e~ | open in eaf pdf-viewer | +| Key Binding | Description | +|-------------+------------------------| +| ~SPC m e~ | open in eaf pdf-viewer | There are many more keybindings. Use ~SPC t k m~ to [[https://develop.spacemacs.org/doc/DOCUMENTATION.html#which-key-persistent][show them persistently in which-key]], or use ~SPC h d k~ to show the `eaf-mode-map` in a separate buffer. diff --git a/layers/+tools/eaf/funcs.el b/layers/+tools/eaf/funcs.el index d97b506b81f2..0e4ef5347b79 100644 --- a/layers/+tools/eaf/funcs.el +++ b/layers/+tools/eaf/funcs.el @@ -1,3 +1,14 @@ +;;; funcs.el --- eaf Layer functions File for Spacemacs +;; +;; Copyright (c) 2012-2020 Sylvain Benner & Contributors +;; +;; Author: Daniel Nicolai +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + (defun duckduckgo () (interactive) (eaf-open-browser "www.duckduckgo.com")) diff --git a/layers/+tools/eaf/packages.el b/layers/+tools/eaf/packages.el index 4b09c5179e04..8fe4daa8d93e 100644 --- a/layers/+tools/eaf/packages.el +++ b/layers/+tools/eaf/packages.el @@ -18,215 +18,212 @@ (defun eaf/init-eaf () (use-package eaf :defer t - :init - (spacemacs/declare-prefix "aa" "application-framework") - (spacemacs/set-leader-keys "aac" 'eaf-camera) - (spacemacs/set-leader-keys "aaf" 'eaf-open) - (spacemacs/set-leader-keys "aaf" 'eaf-open) - (spacemacs/set-leader-keys "aaj" 'eaf-open-jupyter) - (spacemacs/set-leader-keys "aao" 'eaf-open-office) - (spacemacs/set-leader-keys "aat" 'eaf-open-terminal) - - (spacemacs/declare-prefix "aab" "browser") - (spacemacs/set-leader-keys "aabo" 'eaf-open-browser) - (spacemacs/set-leader-keys "aabs" 'eaf-search-it) - (spacemacs/set-leader-keys "aabb" 'eaf-open-bookmark) - (spacemacs/set-leader-keys "aabh" 'eaf-open-browser-with-history) - - (spacemacs/declare-prefix "aabq" "quick-launch-website") - (spacemacs/set-leader-keys "aabqd" 'duckduckgo) - (spacemacs/set-leader-keys "aabqw" 'wikipedia) - (spacemacs/set-leader-keys "aabqy" 'youtube) - - (spacemacs/declare-prefix "aam" "mindmap") - (spacemacs/set-leader-keys "aamc" 'eaf-create-mindmap) - (spacemacs/set-leader-keys "aamm" 'eaf-open-mindmap) - - (setq eaf-browser-keybinding - '(("C--" . "zoom_out") - ("C-=" . "zoom_in") - ("C-0" . "zoom_reset") - ("C-s" . "search_text_forward") - ("C-r" . "search_text_backward") - ("C-n" . "scroll_up") - ("C-p" . "scroll_down") - ("C-f" . "scroll_right") - ("C-b" . "scroll_left") - ("C-v" . "scroll_up_page") - ("C-y" . "yank_text") - ("C-w" . "kill_text") - ("M-e" . "atomic_edit") - ("M-c" . "caret_toggle_browsing") - ("M-D" . "select_text") - ("M-s" . "open_link") - ("M-S" . "open_link_new_buffer") - ("M-d" . "open_link_background_buffer") - ("C-/" . "undo_action") - ("M-_" . "redo_action") - ("M-w" . "copy_text") - ("M-f" . "history_forward") - ("M-b" . "history_backward") - ("M-q" . "clear_cookies") - ("C-t" . "toggle_password_autofill") - ("C-d" . "save_page_password") - ("M-a" . "toggle_adblocker") - ("C-M-q" . "clear_history") - ("C-M-i" . "import_chrome_history") - ("M-v" . "scroll_down_page") - ("M-<" . "scroll_to_begin") - ("M->" . "scroll_to_bottom") - ("M-p" . "duplicate_page") - ("M-t" . "new_blank_page") - ("<" . "insert_or_select_left_tab") - (">" . "insert_or_select_right_tab") - ("j" . "insert_or_scroll_up") - ("k" . "insert_or_scroll_down") - ("h" . "insert_or_scroll_left") - ("l" . "insert_or_scroll_right") - ("f" . "insert_or_open_link") - ("F" . "insert_or_open_link_new_buffer") - ("B" . "insert_or_open_link_background_buffer") - ("c" . "insert_or_caret_at_line") - ("J" . "insert_or_scroll_up_page") - ("K" . "insert_or_scroll_down_page") - ("H" . "insert_or_history_backward") - ("L" . "insert_or_history_forward") - ("t" . "insert_or_new_blank_page") - ("T" . "insert_or_recover_prev_close_page") - ("i" . "insert_or_focus_input") - ("I" . "insert_or_open_downloads_setting") - ("r" . "insert_or_refresh_page") - ("g" . "insert_or_scroll_to_begin") - ("x" . "insert_or_close_buffer") - ("G" . "insert_or_scroll_to_bottom") - ("-" . "insert_or_zoom_out") - ("=" . "insert_or_zoom_in") - ("0" . "insert_or_zoom_reset") - ("d" . "insert_or_dark_mode") - ("m" . "insert_or_save_as_bookmark") - ("o" . "insert_or_open_browser") - ;; ("y" . "insert_or_download_youtube_video") - ("y" . "insert_or_copy_text") - ("Y" . "insert_or_download_youtube_audio") - ("p" . "insert_or_toggle_device") - ("P" . "insert_or_duplicate_page") - ("1" . "insert_or_save_as_pdf") - ("2" . "insert_or_save_as_single_file") - ("v" . "insert_or_view_source") - ("e" . "insert_or_edit_url") - ("M-C" . "copy_code") - ("C-M-f" . "copy_link") - ("C-a" . "select_all_or_input_text") - ("M-u" . "clear_focus") - ("C-j" . "open_downloads_setting") - ("M-o" . "eval_js") - ("M-O" . "eval_js_file") - ("" . "eaf-browser-send-esc-or-exit-fullscreen") - ("M-," . "eaf-send-down-key") - ("M-." . "eaf-send-up-key") - ("M-m" . "eaf-send-return-key") - ("" . "refresh_page") - ("" . "open_devtools") - ("" . "eaf-send-ctrl-return-sequence") - )) - - (setq eaf-pdf-viewer-keybinding - '(("j" . "scroll_up") - ("" . "scroll_up") - ("C-n" . "scroll_up") - ("k" . "scroll_down") - ("" . "scroll_down") - ("C-p" . "scroll_down") - ("h" . "scroll_left") - ("" . "scroll_left") - ("C-b" . "scroll_left") - ("l" . "scroll_right") - ("" . "scroll_right") - ("C-f" . "scroll_right") - ("J" . "scroll_up_page") - ("K" . "scroll_down_page") - ("C-v" . "scroll_up_page") - ("M-v" . "scroll_down_page") - ("t" . "toggle_read_mode") - ("0" . "zoom_reset") - ("=" . "zoom_in") - ("-" . "zoom_out") - ("g" . "scroll_to_begin") - ("G" . "scroll_to_end") - ("p" . "jump_to_page") - ("P" . "jump_to_percent") - ("[" . "save_current_pos") - ("]" . "jump_to_saved_pos") - ("i" . "toggle_inverted_mode") - ("m" . "toggle_mark_link") - ("f" . "jump_to_link") - ("d" . "toggle_inverted_mode") - ("M-w" . "copy_select") - ("C-s" . "search_text_forward") - ("C-r" . "search_text_backward") - ("x" . "close_buffer") - ("C-" . "rotate_clockwise") - ("C-" . "rotate_counterclockwise") - ("M-h" . "add_annot_highlight") - ("M-u" . "add_annot_underline") - ("M-s" . "add_annot_squiggly") - ("M-d" . "add_annot_strikeout_or_delete_annot") - ("M-e" . "add_annot_text_or_edit_annot") - ("M-p" . "toggle_presentation_mode") - ("o" . "eaf-pdf-outline") - ;; switch tab only works with awesome-tab package - ;; ("" . "select_left_tab") - ;; ("" . "select_right_tab") - )) - - + (progn + (spacemacs/declare-prefix "aa" "application-framework") + (spacemacs/set-leader-keys "aac" 'eaf-camera) + (spacemacs/set-leader-keys "aaf" 'eaf-open) + (spacemacs/set-leader-keys "aaj" 'eaf-open-jupyter) + (spacemacs/set-leader-keys "aao" 'eaf-open-office) + (spacemacs/set-leader-keys "aat" 'eaf-open-terminal) + + (spacemacs/declare-prefix "aab" "browser") + (spacemacs/set-leader-keys "aabo" 'eaf-open-browser) + (spacemacs/set-leader-keys "aabs" 'eaf-search-it) + (spacemacs/set-leader-keys "aabb" 'eaf-open-bookmark) + (spacemacs/set-leader-keys "aabh" 'eaf-open-browser-with-history) + + (spacemacs/declare-prefix "aabq" "quick-launch-website") + (spacemacs/set-leader-keys "aabqd" 'duckduckgo) + (spacemacs/set-leader-keys "aabqw" 'wikipedia) + (spacemacs/set-leader-keys "aabqy" 'youtube) + + (spacemacs/declare-prefix "aam" "mindmap") + (spacemacs/set-leader-keys "aamc" 'eaf-create-mindmap) + (spacemacs/set-leader-keys "aamm" 'eaf-open-mindmap) + + (setq eaf-browser-keybinding + '(("C--" . "zoom_out") + ("C-=" . "zoom_in") + ("C-0" . "zoom_reset") + ("C-s" . "search_text_forward") + ("C-r" . "search_text_backward") + ("C-n" . "scroll_up") + ("C-p" . "scroll_down") + ("C-f" . "scroll_right") + ("C-b" . "scroll_left") + ("C-v" . "scroll_up_page") + ("C-y" . "yank_text") + ("C-w" . "kill_text") + ("M-e" . "atomic_edit") + ("M-c" . "caret_toggle_browsing") + ("M-D" . "select_text") + ("M-s" . "open_link") + ("M-S" . "open_link_new_buffer") + ("M-d" . "open_link_background_buffer") + ("C-/" . "undo_action") + ("M-_" . "redo_action") + ("M-w" . "copy_text") + ("M-f" . "history_forward") + ("M-b" . "history_backward") + ("M-q" . "clear_cookies") + ("C-t" . "toggle_password_autofill") + ("C-d" . "save_page_password") + ("M-a" . "toggle_adblocker") + ("C-M-q" . "clear_history") + ("C-M-i" . "import_chrome_history") + ("M-v" . "scroll_down_page") + ("M-<" . "scroll_to_begin") + ("M->" . "scroll_to_bottom") + ("M-p" . "duplicate_page") + ("M-t" . "new_blank_page") + ("<" . "insert_or_select_left_tab") + (">" . "insert_or_select_right_tab") + ("j" . "insert_or_scroll_up") + ("k" . "insert_or_scroll_down") + ("h" . "insert_or_scroll_left") + ("l" . "insert_or_scroll_right") + ("f" . "insert_or_open_link") + ("F" . "insert_or_open_link_new_buffer") + ("B" . "insert_or_open_link_background_buffer") + ("c" . "insert_or_caret_at_line") + ("J" . "insert_or_scroll_up_page") + ("K" . "insert_or_scroll_down_page") + ("H" . "insert_or_history_backward") + ("L" . "insert_or_history_forward") + ("t" . "insert_or_new_blank_page") + ("T" . "insert_or_recover_prev_close_page") + ("i" . "insert_or_focus_input") + ("I" . "insert_or_open_downloads_setting") + ("r" . "insert_or_refresh_page") + ("g" . "insert_or_scroll_to_begin") + ("x" . "insert_or_close_buffer") + ("G" . "insert_or_scroll_to_bottom") + ("-" . "insert_or_zoom_out") + ("=" . "insert_or_zoom_in") + ("0" . "insert_or_zoom_reset") + ("d" . "insert_or_dark_mode") + ("m" . "insert_or_save_as_bookmark") + ("o" . "insert_or_open_browser") + ;; ("y" . "insert_or_download_youtube_video") + ("y" . "insert_or_copy_text") + ("Y" . "insert_or_download_youtube_audio") + ("p" . "insert_or_toggle_device") + ("P" . "insert_or_duplicate_page") + ("1" . "insert_or_save_as_pdf") + ("2" . "insert_or_save_as_single_file") + ("v" . "insert_or_view_source") + ("e" . "insert_or_edit_url") + ("M-C" . "copy_code") + ("C-M-f" . "copy_link") + ("C-a" . "select_all_or_input_text") + ("M-u" . "clear_focus") + ("C-j" . "open_downloads_setting") + ("M-o" . "eval_js") + ("M-O" . "eval_js_file") + ("" . "eaf-browser-send-esc-or-exit-fullscreen") + ("M-," . "eaf-send-down-key") + ("M-." . "eaf-send-up-key") + ("M-m" . "eaf-send-return-key") + ("" . "refresh_page") + ("" . "open_devtools") + ("" . "eaf-send-ctrl-return-sequence"))) + + + (setq eaf-pdf-viewer-keybinding + '(("j" . "scroll_up") + ("" . "scroll_up") + ("C-n" . "scroll_up") + ("k" . "scroll_down") + ("" . "scroll_down") + ("C-p" . "scroll_down") + ("h" . "scroll_left") + ("" . "scroll_left") + ("C-b" . "scroll_left") + ("l" . "scroll_right") + ("" . "scroll_right") + ("C-f" . "scroll_right") + ("J" . "scroll_up_page") + ("K" . "scroll_down_page") + ("C-v" . "scroll_up_page") + ("M-v" . "scroll_down_page") + ("t" . "toggle_read_mode") + ("0" . "zoom_reset") + ("=" . "zoom_in") + ("-" . "zoom_out") + ("g" . "scroll_to_begin") + ("G" . "scroll_to_end") + ("p" . "jump_to_page") + ("P" . "jump_to_percent") + ("[" . "save_current_pos") + ("]" . "jump_to_saved_pos") + ("i" . "toggle_inverted_mode") + ("m" . "toggle_mark_link") + ("f" . "jump_to_link") + ("d" . "toggle_inverted_mode") + ("M-w" . "copy_select") + ("C-s" . "search_text_forward") + ("C-r" . "search_text_backward") + ("x" . "close_buffer") + ("C-" . "rotate_clockwise") + ("C-" . "rotate_counterclockwise") + ("M-h" . "add_annot_highlight") + ("M-u" . "add_annot_underline") + ("M-s" . "add_annot_squiggly") + ("M-d" . "add_annot_strikeout_or_delete_annot") + ("M-e" . "add_annot_text_or_edit_annot") + ("M-p" . "toggle_presentation_mode") + ("o" . "eaf-pdf-outline")))) + ;; switch tab only works with awesome-tab package + ;; ("" . "select_left_tab") + ;; ("" . "select_right_tab") :config - (setq browse-url-browser-function 'eaf-open-browser) - (eaf-setq eaf-browser-enable-adblocker "true") + (progn + (setq browse-url-browser-function 'eaf-open-browser) + (eaf-setq eaf-browser-enable-adblocker "true") - (define-key eaf-mode-map* (kbd "C-SPC C-SPC") 'counsel-M-x) + (define-key eaf-mode-map* (kbd "C-SPC C-SPC") 'counsel-M-x) + ;;;; TODO need to consider the current pdf view mode which does not need to be pdf view mode + (spacemacs/set-leader-keys-for-major-mode 'pdf-view-mode "E" 'spacemacs/open-with-eaf) + (add-to-list 'evil-evilified-state-modes 'eaf-pdf-outline-mode))) - (spacemacs/set-leader-keys-for-major-mode 'pdf-view-mode "E" 'spacemacs/open-with-eaf) - (add-to-list 'evil-evilified-state-modes 'eaf-pdf-outline-mode)) - -; remove compiled file necessary to suppress clear_focus variable non-existent -; error (eaf is not yet meant to be installed with quelpa, see -; `https://github.com/manateelazycat/emacs-application-framework#install') + ;; remove compiled file necessary to suppress clear_focus variable non-existent + ;; error (eaf is not yet meant to be installed with quelpa, see + ;; `https://github.com/manateelazycat/emacs-application-framework#install') -; Alternative way to delete compiled file -;; (when (locate-library "eaf-evil.elc") -;; (delete-file)) + ;; Alternative way to delete compiled file + ;; (when (locate-library "eaf-evil.elc") + ;; (delete-file)) (use-package eaf-evil :after eaf :config - (setq eaf-evil-leader-keymap spacemacs-cmds) - - (define-key key-translation-map (kbd "SPC") - (lambda (prompt) - (if (derived-mode-p 'eaf-mode) - (if (and (string= eaf--buffer-app-name "browser") - (eaf-call "call_function" eaf--buffer-id "is_focus")) - (kbd "SPC") - (kbd "C-SPC"))))) - - (setq eaf-evil-leader-for-major-keymap (make-sparse-keymap)) - (define-key eaf-evil-leader-for-major-keymap (kbd "h") 'eaf-open-browser-with-history) - (define-key eaf-evil-leader-for-major-keymap (kbd "d") 'eaf-toggle-dark-mode) - (define-key eaf-evil-leader-for-major-keymap (kbd "s") 'eaf-search-it) - (add-hook 'evil-normal-state-entry-hook - (lambda () - (when (derived-mode-p 'eaf-mode) - (define-key eaf-mode-map (kbd "C-,") eaf-evil-leader-for-major-keymap) - ;; (setq emulation-mode-map-alists - ;; (delq 'evil-mode-map-alist emulation-mode-map-alists)) - ))) - - (define-key key-translation-map (kbd ",") - (lambda (prompt) - (if (derived-mode-p 'eaf-mode) - (if (and (string= eaf--buffer-app-name "browser") - (eaf-call "call_function" eaf--buffer-id "is_focus")) - (kbd ",") - (kbd "C-,"))))))) + (progn + (setq eaf-evil-leader-keymap spacemacs-cmds) + + (define-key key-translation-map (kbd "SPC") + (lambda (prompt) + (if (derived-mode-p 'eaf-mode) + (if (and (string= eaf--buffer-app-name "browser") + (eaf-call "call_function" eaf--buffer-id "is_focus")) + (kbd "SPC") + (kbd "C-SPC"))))) + + (setq eaf-evil-leader-for-major-keymap (make-sparse-keymap)) + (define-key eaf-evil-leader-for-major-keymap (kbd "h") 'eaf-open-browser-with-history) + (define-key eaf-evil-leader-for-major-keymap (kbd "d") 'eaf-toggle-dark-mode) + (define-key eaf-evil-leader-for-major-keymap (kbd "s") 'eaf-search-it) + (add-hook 'evil-normal-state-entry-hook + (lambda () + (when (derived-mode-p 'eaf-mode) + (define-key eaf-mode-map (kbd "C-,") eaf-evil-leader-for-major-keymap)))) + ;; (setq emulation-mode-map-alists + ;; (delq 'evil-mode-map-alist emulation-mode-map-alists)) + + (define-key key-translation-map (kbd ",") + (lambda (prompt) + (if (derived-mode-p 'eaf-mode) + (if (and (string= eaf--buffer-app-name "browser") + (eaf-call "call_function" eaf--buffer-id "is_focus")) + (kbd ",") + (kbd "C-,"))))))))