eee.el launches excellent terminal user interface tools (such as yazi, fzf, lazy-git, etc.) with Emacs asynchronously. It is very fast and does not burden Emacs.
ee.el Support:
- yazi : launch yazi from Emacs asynchronously, then yazi tell emacs which file to open
- ripgrep : launch ripgrep + fzf from Emacs asynchronous, then ripgrep tell emacs jump to which file and position
- fzf : combined with
ripgrep
- lazygit : launch
lazygit
from Emacs asynchronously - ripgrep-all: search pdf files by
ee-rga
- delta: show git delta by
ee-delta
- htop: launch htop by
ee-htop
- btop: launch btop by
ee-btop
… more tui tools and options will be enhanced and provided.
2024-09-13_22-56-02.mp4
ee-find
need devicon-lookup
(https://github.com/coreyja/devicon-lookup) to display file icons.
We should install devicon-lookup
executable by:
cargo install devicon-lookup --force
I tried st, alacritty, kitty, konsole, st is very fast, you can test the startup timecost by:
% time st -e sh -c date st -e sh -c date 0.03s user 0.02s system 90% cpu 0.052 total ~ on ☁️ $ time alacritty -e sh -c date alacritty -e sh -c date 0.14s user 0.05s system 93% cpu 0.201 total ~ on ☁️ $ time kitty -e sh -c date kitty -e sh -c date 0.20s user 0.07s system 93% cpu 0.288 total ~ on ☁️ $ time konsole -e sh -c date konsole -e sh -c date 0.26s user 0.13s system 74% cpu 0.519 total
st startup only need 50ms, but alacritty need 200ms, konsole need 500ms. Please install st: https://st.suckless.org/ and patch it with https://st.suckless.org/patches/glyph_wide_support/
(use-package eee
:ensure (:type git :host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh"))
:bind-keymap
("s-e" . ee-keymap)
)
(use-package eee
:ensure '(:type git :host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh")))
(package! eee
:recipe (:host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh")))
(use-package eee
:load-path "<local path to eee.el project directory>")
(use-package eee
:load-path "~/Projects/github.com/eval-exec/eee.el/"
:bind-keymap
("s-e" . ee-keymap)
:config
;; Should have wezterm or alacritty installed, more terminal application is supporting...
;; Issues and pull requests are welcome
(setq ee-terminal-command "wezterm")
;; (global-definer "f" 'ee-find)
;; (global-definer "g" 'ee-lazygit)
;; (global-definer "y" 'ee-yazi-project)
;; (general-def "C-x C-f" 'ee-yazi)
;; (general-def "C-S-f" 'ee-rg)
;; (general-evil-define-key 'normal 'global "M-f" 'ee-line)
)
Please submit an issue to let me know what you need and want. Thank you! 💙