diff options
| author | joe <rbo@gmx.us> | 2025-10-08 12:36:03 +0200 |
|---|---|---|
| committer | joe <rbo@gmx.us> | 2025-10-08 12:36:03 +0200 |
| commit | 2f340c73111c2d73ce2c6440c42fce2d42a63748 (patch) | |
| tree | 9627783af7b3dc7a7120f34b970a160471229c7b /st-cpycmd | |
| parent | up (diff) | |
| download | st-2f340c73111c2d73ce2c6440c42fce2d42a63748.tar.gz st-2f340c73111c2d73ce2c6440c42fce2d42a63748.tar.bz2 st-2f340c73111c2d73ce2c6440c42fce2d42a63748.tar.xz st-2f340c73111c2d73ce2c6440c42fce2d42a63748.tar.zst st-2f340c73111c2d73ce2c6440c42fce2d42a63748.zip | |
in progress
Diffstat (limited to '')
| -rwxr-xr-x | st-cpycmd | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/st-cpycmd b/st-cpycmd new file mode 100755 index 0000000..aff6b2a --- /dev/null +++ b/st-cpycmd @@ -0,0 +1,36 @@ +#!/bin/sh + +# Using external pipe with st, give a dmenu prompt of recent commands, +# allowing the user to copy the command lines inputed +# xclip required for this script. +# By joe, adapted from st-cpyout by Jaywalker and Luke + +# mem=$(sed 's/^ $//g' | sed 's/\x0//g') +mem=$(cat /tmp/out) +ps1=$(printf "%s" "$mem" | + tail -n1 | + sed -E 's/([%,#,>,$]).*/\1/') +chosen=$(printf "%s" "$mem" | + grep -F "$ps1" | + sed '$ d' | + tac | + dmenu -i -l 10 -m 0) +if [ -n "$chosen" ]; then + cmd=$(printf "%s" "$chosen" | sed "s/^$ps1 //") + printf "%s" "$cmd" | xclip -selection clipboard + herbe " clipped : $(printf "%.10s..." "$cmd")" & +fi +return +# if [ "$1" = "noprompt" ]; then +# printf "%s" "$mem" | +# gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" | +# tac | +# sed '$ d' | +# tac | +# perl -p -e 'chomp if eof' | +# xclip -selection clipboard +# else +# printf "%s" "$mem" | +# gawk "/^$chosen$/{p=1;print;next} p&&/$eps1/{p=0};p" | +# xclip -selection clipboard +# fi |
