I use fzf with a popup terminal:
# example for i3
bindsym $mod+Return exec --no-startup-id kitty -T _menu_ -e bash -c 'ls $HOME/.local/bin/ | fzf | xargs -r -I{} i3-msg -t command exec $HOME/.local/bin/{}'
for_window [title="_menu_"] floating enable
for_window [title="_menu_"] resize set 600 800
I like this approach because it’s simple and configurable. I prefer to see only the symlinks/scripts that I put in my local bin folder, but it can easily be extended to support .desktop files, multiple folders, filtering, etc.









As others have suggested, getting more familiar with the terminal and using a tiling window manager will help a lot. And yeah it’s a great idea to learn Vim or other advanced terminal editors. I use Helix+Zellij for development, Vim for system configuration, and i3 or Sway for GUI stuff. Also check out w3m for simple web searches.
If you want to get rid of the mouse entirely, you can also try using a programmable keyboard with mouse support. I don’t use a physical mouse anymore because I do most things in the terminal, and when I do need a mouse I just use my keyboard to move the cursor. For super mouse-heavy tasks like image editing it’s good to keep one around or use a Wacom tablet