add ^G escape keybinding
[dmenu.git] / dmenu_run
index cf75b0a..052e51b 100755 (executable)
--- a/dmenu_run
+++ b/dmenu_run
@@ -3,13 +3,13 @@ cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
 if [ -d "$cachedir" ]; then
        cache=$cachedir/dmenu_run
 else
-       cache=$HOME/.dmenu_cache
+       cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
 fi
 (
        IFS=:
-       if [ "`ls -dt $PATH "$cache" | head -n 1`" != "$cache" ]; then
-               lsx $PATH | sort -u | tee "$cache" | dmenu "$@"
+       if stest -dqr -n "$cache" $PATH; then
+               stest -flx $PATH | sort -u | tee "$cache" | dmenu "$@"
        else
                dmenu "$@" < "$cache"
        fi
-) | read cmd && exec sh -c "$cmd"
+) | ${SHELL:-"/bin/sh"} &