https://github.com/eval-exec/eee.el
Launch TUI commands in an external terminal asynchronously💪 , seamlessly integrating callbacks within Emacs⚡. Elevate your Emacs experience with eee.el 🥰
https://github.com/eval-exec/eee.el
Last synced: 4 months ago
JSON representation
Launch TUI commands in an external terminal asynchronously💪 , seamlessly integrating callbacks within Emacs⚡. Elevate your Emacs experience with eee.el 🥰
- Host: GitHub
- URL: https://github.com/eval-exec/eee.el
- Owner: eval-exec
- License: gpl-3.0
- Created: 2024-09-12T08:20:56.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-03-07T16:40:40.000Z (4 months ago)
- Last Synced: 2025-03-11T00:56:30.898Z (4 months ago)
- Language: Emacs Lisp
- Homepage:
- Size: 120 KB
- Stars: 107
- Watchers: 3
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
* eee.el: Extended Emacs With External Tui application
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:
1. [[https://github.com/sxyazi/yazi/][yazi]] : launch yazi from Emacs asynchronously, then yazi tell emacs which file to open
2. [[https://github.com/BurntSushi/ripgrep/][ripgrep]] : launch ripgrep + fzf from Emacs asynchronous, then ripgrep tell emacs jump to which file and position
3. [[https://github.com/junegunn/fzf/][fzf]] : combined with =ripgrep=
4. [[https://github.com/jesseduffield/lazygit][lazygit]] : launch =lazygit= from Emacs asynchronously
5. ripgrep-all: search pdf files by =ee-rga=
6. delta: show git delta by =ee-delta=
7. htop: launch htop by =ee-htop=
7. btop: launch btop by =ee-btop=
... more tui tools and options will be enhanced and provided.[[https://github.com/user-attachments/assets/9298b2be-1ccb-4696-8569-672fac660f22][preview]]
** Note
=ee-find= need =devicon-lookup= (https://github.com/coreyja/devicon-lookup) to display file icons.
We should install =devicon-lookup= executable by:
#+begin_src bash
cargo install devicon-lookup --force
#+end_src*** Highly Recomment use st terminal since it startup very fast.
I tried st, alacritty, kitty, konsole, st is very fast, you can test the startup timecost by:
#+begin_src
% 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#+end_src
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/** Installation
*** Elpaca
#+begin_src elisp
(use-package eee
:ensure (:type git :host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh"))
:bind-keymap
("s-e" . ee-keymap)
)
#+end_src*** Straight
#+begin_src elisp
(use-package eee
:ensure '(:type git :host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh")))
#+end_src*** Doom Emacs
#+begin_src elisp
(package! eee
:recipe (:host github :repo "eval-exec/eee.el"
:files (:defaults "*.el" "*.sh")))
#+end_src*** Local
#+begin_src elisp
(use-package eee
:load-path "")
#+end_src** Configuration
*** Example
#+begin_src elisp
(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)
)
#+end_src
Please submit an issue to let me know what you need and want. Thank you! 💙