total-launcher is a fork of Sebastien Wae’s app-laucner, define the total-launcher-run-app command which uses Emacs standard completion feature to select a command from list of sources, and some sources to use.
(setq total-launcher-apps-prefix "App: ")
(setq total-launcher-apps-add-keywords t)
(defun emacs-run-launcher ()
(interactive)
(with-selected-frame
(make-frame '((name . "emacs-run-launcher")
(minibuffer . only)
(fullscreen . 0) ; no fullscreen
(undecorated . t) ; remove title bar
(auto-raise . t) ; focus on this frame
(internal-border-width . 10)
(width . 60)
(height . 11)))
(unwind-protect
(total-launcher-run-app
(list (total-launcher-list-apps)
(total-launcher-list-directory-contents-recursively
"~/Documents/" t nil "Documents: " "xdg-open")
(total-launcher-list-directory-contents-recursively
"~/Books/" t nil "Books: " "zathura")
(total-launcher-list-directory-contents
"~/Pictures/" t "Image: " "xdg-open")
(total-launcher-list-directory-contents
"~/Pictures/Sources/" t "Source: " "gimp")))
(delete-frame))))This package uses code from the Counsel package by Oleh Krehel.