diff options
Diffstat (limited to 'dmenu/dmenu_path')
| -rwxr-xr-x | dmenu/dmenu_path | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/dmenu/dmenu_path b/dmenu/dmenu_path index 9b3b1f2..9e7c801 100755 --- a/dmenu/dmenu_path +++ b/dmenu/dmenu_path @@ -1,12 +1,13 @@ #!/bin/sh -# -# dmenu_path: Override dmenu_path sorting results by atime. -# -# By default, dmenu_path sorts executables alphabetically. It seems to make -# more sense to sort them by atime in an effort to reduce the number of -# keystrokes needed to start a program. -echo $PATH | tr ':' '\n' | uniq | sed 's#$#/#' | # List directories in $PATH - xargs ls -lu --time-style=+%s | # Add atime epoch - awk '/^(-|l)/ { print $6, $7 }' | # Only print timestamp and name - sort -rn | cut -d' ' -f 2 +cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}" +cache="$cachedir/dmenu_run" + +[ ! -e "$cachedir" ] && mkdir -p "$cachedir" + +IFS=: +if stest -dqr -n "$cache" $PATH; then + stest -flx $PATH | sort -u | tee "$cache" +else + cat "$cache" +fi |
