Skip to content

Launch TUI commands in an external terminal asynchronously💪 , seamlessly integrating callbacks within Emacs⚡. Elevate your Emacs experience with eee.el 🥰

License

Notifications You must be signed in to change notification settings

eval-exec/eee.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f5d4257 · Mar 7, 2025

History

68 Commits
Sep 12, 2024
Mar 7, 2025
Mar 5, 2025
Mar 5, 2025
Sep 15, 2024
Mar 7, 2025
Sep 12, 2024
Sep 30, 2024
Mar 4, 2025
Mar 5, 2025
Mar 5, 2025
Mar 6, 2025
Oct 2, 2024
Jan 31, 2025
Mar 4, 2025
Sep 15, 2024
Sep 17, 2024
Mar 6, 2025

Repository files navigation

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. yazi : launch yazi from Emacs asynchronously, then yazi tell emacs which file to open
  2. ripgrep : launch ripgrep + fzf from Emacs asynchronous, then ripgrep tell emacs jump to which file and position
  3. fzf : combined with ripgrep
  4. 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
  8. btop: launch btop by ee-btop

… more tui tools and options will be enhanced and provided.

2024-09-13_22-56-02.mp4

Note

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

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:

% 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/

Installation

Elpaca

(use-package eee
  :ensure (:type git :host github :repo "eval-exec/eee.el"
                 :files (:defaults "*.el" "*.sh"))
  :bind-keymap
  ("s-e" . ee-keymap)
  )

Straight

(use-package eee
  :ensure '(:type git :host github :repo "eval-exec/eee.el"
                 :files (:defaults "*.el" "*.sh")))

Doom Emacs

(package! eee
  :recipe (:host github :repo "eval-exec/eee.el"
           :files (:defaults "*.el" "*.sh")))

Local

(use-package eee
  :load-path "<local path to eee.el project directory>")

Configuration

Example

(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! 💙

About

Launch TUI commands in an external terminal asynchronously💪 , seamlessly integrating callbacks within Emacs⚡. Elevate your Emacs experience with eee.el 🥰

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published