From 2f340c73111c2d73ce2c6440c42fce2d42a63748 Mon Sep 17 00:00:00 2001 From: joe Date: Wed, 8 Oct 2025 12:36:03 +0200 Subject: in progress --- st-cpycmd | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 st-cpycmd (limited to 'st-cpycmd') 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 -- cgit v1.2.3