#!/usr/local/bin/dash # Using external pipe with st, give a dmenu prompt of recent commands, # allowing the user to copy the output of one. # xclip required for this script. # By Jaywalker and Luke # Adapted for FreeBSD by Joe mem=$(cat) mem=$(printf "%s" "$mem" | gsed 's/\x0//g') ps1=$(printf "%s" "$mem" | gtac | tail -n1 | gsed 's/%.\+/%/') chosen=$(printf "%s" "$mem" | grep -F "$ps1" | sed '$ d' | gtac | dmenu -i -l 10 -m 0 | sed 's/[^^]/[&]/g; s/\^/\\^/g') eps1=$(echo "$ps1" | sed 's/[^^]/[&]/g; s/\^/\\^/g') if [ "$1" = "noprompt" ]; then printf "%s" "$mem" | gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" | gtac | sed '$ d' | gtac | xclip -selection clipboard else printf "%s" "$mem" | gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" | xclip -selection clipboard fi