1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/bin/sh cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"} if [ -d "$cachedir" ]; then cache=$cachedir/dmenu_run else cache=$HOME/.dmenu_cache fi ( IFS=: if [ "`ls -dt $PATH "$cache" | head -n 1`" != "$cache" ]; then lsx $PATH | sort -u | tee "$cache" | dmenu "$@" else dmenu "$@" < "$cache" fi ) | exec ${SHELL:-"/bin/sh"}