tao_copy.sh (899B)
1 #!/bin/sh 2 3 # Simply yank/copy situation 4 5 nofb="${TAO_NOFB:-""}" 6 dn=/dev/null 7 8 cmdf(){ command -v $1 >$dn 2>&1; } 9 10 # dmenu command 11 if [ -z "$DMENU" ]; then 12 a="dmenu sxmo_dmenu.sh bemenu rofi" 13 for i in $a; do cmdf "$i" && DMENU="$i" && break; done 14 fi 15 if [ -z "$DMENU_OPTS" ] 16 then 17 a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ 18 DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") 19 export DMENU_OPTS="${DMENU_OPTS:-""}" 20 fi 21 22 cu(){ exit 0; }; trap cu INT 23 24 dmm(){ [ "$nofb" != 1 ] && <$dn>$dn "$DMENU" -p "$1"; return 0; } 25 26 nils() 27 { 28 dmm "Nothing in pipe or parameter to yank." && cu 29 } 30 31 suc(){ dmm "Yanked: $a"; } 32 33 prnt(){ printf "%s" "$a"; } 34 35 # stdin or param 36 [ "$1" = "-" ] && a=$(cat -) || a="$1" 37 38 [ -z "$a" ] && nils 39 40 if cmdf "xclip" 41 then 42 prnt | xclip 43 prnt | xclip -sel c 44 suc 45 46 elif cmdf "xsel" 47 then 48 prnt | xsel -i 49 prnt | xsel -ib 50 suc 51 52 elif cmdf "wl-copy" 53 then 54 prnt | wl-copy 55 suc 56 fi 57 cu