2KAbhishek / dexe

The exe launcher πŸšπŸš€

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License People Stars Forks Watches Last Updated

The exe launcher πŸšπŸš€

dexe in action
dexe in action

dexe, pronounced the E X E or dexy is a nix CLI launcher that helps you run any executable, alias, and function on your system.

✨ Features

  • List all executables in yqur PATH
  • List all aliases and functions defined in your shell
  • Powerful fuzzy finding with fzf
  • Glance over help info for any available executable
  • Easily integrates with neovim, shell, tmux and other tools

⚑ Setup

βš™οΈ Requirements

  • bash, fzf

πŸ’» Installation

git clone https://github.com/2kabhishek/dexe
cd dexe
# Link dexe to a directory that's in PATH (~/.local/bin here)
ln -sfnv "$PWD/dexe.sh" ~/.local/bin/dexe

πŸš€ Usage

dexe: Execute and Launch CLI Tools πŸš€βœ¨

Usage: dexe [optional pass-through args]

dexe --wait-before-exit -- Wait for input before exiting
dexe -h, --help -- Display this help menu

dexe README.md -- Run selected command with README.md
dexe --verbose -- Run selected command with --verbose flag

Use the --wait-before-exit flag when you want to "hold" the session even after the command completes, useful in situations where the shell exits after command finishes.

Integrations

  • neovim:

I use dexe mapped to Leader t d in my neovim which-key config with termim.nvim

You can add it using this in your which-key config:

    t = {
        name = 'Terminal',
        d = { '<cmd>Sterm dexe<cr>', 'Exe Launcher' },
        w = { '<cmd>Sterm dexe --wait-before-exit<cr>', 'Exe Launcher, Wait' },
    },
  • tmux:

dexe is mapped to Alt + d using tmux-tilit

You can add it using this in your tmux.conf:

bind-key -n M-d run-shell "dexe"
  • zsh:

dexe is mapped to Ctrl + d in my zsh config

You can add it using this in your .zshrc

bindkey -s "^d" ' dexe^M ^M'

πŸ—οΈ What's Next

You tell me!

πŸ§‘β€πŸ’» Behind The Code

🌈 Inspiration

Needed a quick way to run tools that runs both on macOS and Linux.

πŸ’‘ Challenges/Learnings

  • Writing pipes to parse all of the executables in PATH
  • Figuring out that configured aliases and functions only show up in interactive mode

🧰 Tooling

  • dots2k β€” Dev Environment
  • nvim2k β€” Personalized Editor
  • sway2k β€” Desktop Environment
  • qute2k β€” Personalized Browser

πŸ” More Info


⭐ hit the star button if you found this useful ⭐

Source | Blog | Twitter | LinkedIn | More Links | Other Projects

About

The exe launcher πŸšπŸš€

License:GNU General Public License v3.0


Languages

Language:Shell 100.0%