From 60052659b98832c78c902e4f27ecee2663d8e913 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 6 May 2026 08:30:49 +0200 Subject: Added scripts --- scripts/unused/addressgrep | 8 + scripts/unused/alg | 444 ++++++++++++++++++++++++++++++++++++++ scripts/unused/config-backup | 28 +++ scripts/unused/dmenu-mail-aliases | 29 +++ scripts/unused/dmenu-websearch | 8 + scripts/unused/practice | 170 +++++++++++++++ scripts/unused/share | 13 ++ scripts/unused/translate | 11 + scripts/unused/websearch | 11 + scripts/unused/xplumb | 65 ++++++ 10 files changed, 787 insertions(+) create mode 100755 scripts/unused/addressgrep create mode 100755 scripts/unused/alg create mode 100755 scripts/unused/config-backup create mode 100755 scripts/unused/dmenu-mail-aliases create mode 100755 scripts/unused/dmenu-websearch create mode 100755 scripts/unused/practice create mode 100755 scripts/unused/share create mode 100755 scripts/unused/translate create mode 100755 scripts/unused/websearch create mode 100755 scripts/unused/xplumb (limited to 'scripts/unused') diff --git a/scripts/unused/addressgrep b/scripts/unused/addressgrep new file mode 100755 index 0000000..36b4899 --- /dev/null +++ b/scripts/unused/addressgrep @@ -0,0 +1,8 @@ +#!/bin/sh + +# Find all email addresses in stdin, print them newline-separated to stdout + +reg='[a-z0-9\._\+\-%]+@[a-z0-9\._\+\-%]+\.[a-zA-Z]+' + +grep -Pio "$reg" + diff --git a/scripts/unused/alg b/scripts/unused/alg new file mode 100755 index 0000000..cd5d3c8 --- /dev/null +++ b/scripts/unused/alg @@ -0,0 +1,444 @@ +#!/bin/sh + +# Script to store and access blindsolving algs (speedcubing stuff) + +# Example: alg e FG - opens up editor to edit $basedir/edges/$ebuffer/RD/LD +# Example: alg c UBL E - prints out all first algs for UBL-FDR-* + +usage() { + echo "Usage:" + echo "alg" + echo "alg edit (c|e|w|x|t) [buffer] (1 letter|2 letters)" + echo "alg export (c|e|w|x|t|all)" +} + +default_editor=vi +basedir="$HOME/box/speedcubing/bld/algs" +ebuffer=UR +cbuffer=UFR +wbuffer=UFr +xbuffer=Ubl +tbuffer=Uf + +edge() { + [ "$1" = "a" ] && echo FU + [ "$1" = "b" ] && echo UF + [ "$1" = "c" ] && echo UL + [ "$1" = "d" ] && echo UB + [ "$1" = "e" ] && echo FD + [ "$1" = "f" ] && echo RD + [ "$1" = "g" ] && echo LD + [ "$1" = "i" ] && echo FR + [ "$1" = "j" ] && echo LU + [ "$1" = "k" ] && echo RB + [ "$1" = "l" ] && echo DF + [ "$1" = "m" ] && echo DB + [ "$1" = "n" ] && echo DR + [ "$1" = "o" ] && echo FL + [ "$1" = "p" ] && echo DL + [ "$1" = "r" ] && echo BU + [ "$1" = "s" ] && echo BD + [ "$1" = "t" ] && echo BL + [ "$1" = "u" ] && echo BR + [ "$1" = "v" ] && echo LF + [ "$1" = "w" ] && echo LB + [ "$1" = "z" ] && echo RF +} + +corner() { + [ "$1" = "a" ] && echo FUL + [ "$1" = "b" ] && echo UBL + [ "$1" = "c" ] && echo UFL + [ "$1" = "d" ] && echo UBR + [ "$1" = "e" ] && echo FDR + [ "$1" = "f" ] && echo RDB + [ "$1" = "g" ] && echo LDF + [ "$1" = "j" ] && echo LUF + [ "$1" = "k" ] && echo RUB + [ "$1" = "l" ] && echo DFR + [ "$1" = "m" ] && echo DBR + [ "$1" = "n" ] && echo DFL + [ "$1" = "o" ] && echo FDL + [ "$1" = "p" ] && echo DBL + [ "$1" = "r" ] && echo BUR + [ "$1" = "s" ] && echo BUL + [ "$1" = "t" ] && echo BDL + [ "$1" = "u" ] && echo BDR + [ "$1" = "v" ] && echo LUB + [ "$1" = "w" ] && echo LDB + [ "$1" = "z" ] && echo RDF +} + +wing() { + [ "$1" = "a" ] && echo FUl + [ "$1" = "b" ] && echo URb + [ "$1" = "c" ] && echo ULf + [ "$1" = "d" ] && echo UBl + [ "$1" = "e" ] && echo FDr + [ "$1" = "f" ] && echo RDb + [ "$1" = "g" ] && echo LDf + [ "$1" = "i" ] && echo FRu + [ "$1" = "j" ] && echo LUb + [ "$1" = "k" ] && echo RBu + [ "$1" = "l" ] && echo DFl + [ "$1" = "m" ] && echo DBr + [ "$1" = "n" ] && echo DRf + [ "$1" = "o" ] && echo FLd + [ "$1" = "p" ] && echo DLb + [ "$1" = "r" ] && echo BUr + [ "$1" = "s" ] && echo BDl + [ "$1" = "t" ] && echo BLu + [ "$1" = "u" ] && echo BRd + [ "$1" = "v" ] && echo LFu + [ "$1" = "w" ] && echo LBd + [ "$1" = "x" ] && echo RUf + [ "$1" = "z" ] && echo RFd +} + +xcenter() { + [ "$1" = "a" ] && echo Ful + [ "$1" = "b" ] && echo Ufr + [ "$1" = "c" ] && echo Ufl + [ "$1" = "d" ] && echo Ubr + [ "$1" = "e" ] && echo Fdr + [ "$1" = "f" ] && echo Rdb + [ "$1" = "g" ] && echo Ldf + [ "$1" = "i" ] && echo Fur + [ "$1" = "j" ] && echo Luf + [ "$1" = "k" ] && echo Rub + [ "$1" = "l" ] && echo Dfr + [ "$1" = "m" ] && echo Dbr + [ "$1" = "n" ] && echo Dfl + [ "$1" = "o" ] && echo Fdl + [ "$1" = "p" ] && echo Dbl + [ "$1" = "r" ] && echo Bur + [ "$1" = "s" ] && echo Bul + [ "$1" = "t" ] && echo Bdl + [ "$1" = "u" ] && echo Bdr + [ "$1" = "v" ] && echo Lub + [ "$1" = "w" ] && echo Ldb + [ "$1" = "x" ] && echo Ruf + [ "$1" = "z" ] && echo Rdf +} + +tcenter() { + [ "$1" = "a" ] && echo Fu + [ "$1" = "b" ] && echo Ur + [ "$1" = "c" ] && echo Ul + [ "$1" = "d" ] && echo Ub + [ "$1" = "e" ] && echo Fd + [ "$1" = "f" ] && echo Rd + [ "$1" = "g" ] && echo Ld + [ "$1" = "i" ] && echo Fr + [ "$1" = "j" ] && echo Lu + [ "$1" = "k" ] && echo Rb + [ "$1" = "l" ] && echo Df + [ "$1" = "m" ] && echo Db + [ "$1" = "n" ] && echo Dr + [ "$1" = "o" ] && echo Fl + [ "$1" = "p" ] && echo Dl + [ "$1" = "r" ] && echo Bu + [ "$1" = "s" ] && echo Bd + [ "$1" = "t" ] && echo Bl + [ "$1" = "u" ] && echo Br + [ "$1" = "v" ] && echo Lf + [ "$1" = "w" ] && echo Lb + [ "$1" = "x" ] && echo Ru + [ "$1" = "z" ] && echo Rf +} + +edit() { + mkdir -p "$basedir/$1/$2/$3" + $editor "$basedir/$1/$2/$3/$4" +} + +showall_c() { + all_letters="a b c d e f g j k l m n o p r s t u v w z" + buffer="$1" + firstletter="$2" + firsttarget="$(corner $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(corner $secondletter)" + f="$basedir/corners/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_e() { + all_letters="a b c d e f g i j k l m n o p r s t u v w z" + buffer="$1" + firstletter="$2" + firsttarget="$(edge $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(edge $secondletter)" + f="$basedir/edges/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_w() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(wing $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(wing $secondletter)" + f="$basedir/wings/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_x() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(xcenter $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(xcenter $secondletter)" + f="$basedir/xcenters/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +showall_t() { + all_letters="a b c d e f g i j k l m n o p r s t u v w x z" + buffer="$1" + firstletter="$2" + firsttarget="$(tcenter $firstletter)" + for secondletter in $all_letters; do + secondtarget="$(tcenter $secondletter)" + f="$basedir/tcenters/$buffer/$firsttarget/$secondtarget" + [ -f "$f" ] || continue + line="$(head -n 1 "$f")" + printf '%s %s\n' "$firstletter$secondletter" "$line" + done +} + +export_csv_c() { + sorted_letters="d b c l n p m k z f j v w g a o e s r u t" + buffer="$cbuffer" + f="$basedir/corners/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(corner $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(corner $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(corner $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_e() { + sorted_letters="d c b n l p m k z f v j w g i a o e t r u s" + buffer="$ebuffer" + f="$basedir/edges/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(edge $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(edge $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(edge $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_w() { + sorted_letters="b d c n l p m k x z f v j w g i a o e t r u s" + buffer="$wbuffer" + f="$basedir/wings/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(wing $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(wing $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(wing $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_x() { + sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" + buffer="$xbuffer" + f="$basedir/xcenters/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(xcenter $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(xcenter $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(xcenter $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +export_csv_t() { + sorted_letters="d c b l n p m k x z f j v w g i a o e s r u t" + buffer="$tbuffer" + f="$basedir/tcenters/$buffer" + printf '"",' + for first in $sorted_letters; do + printf '"%s",' "$(tcenter $first)" + done + printf '\n' + for first in $sorted_letters; do + firstpiece="$(tcenter $first)" + printf '"%s",' "$firstpiece" + for second in $sorted_letters; do + g="$f/$firstpiece/$(tcenter $second)" + if [ "$first" = "$second" ] || [ ! -f "$g" ]; then + printf '"",' + else + printf '"%s",' "$(head -n 1 "$g")" + fi + done + printf '\n' + done +} + +run() { + case "$1" in + edit) + editor="$default_editor" + shift + ;; + export) + if [ "$2" = "all" ]; then + mkdir -p bldsheets + export_csv_c > bldsheets/corners.csv + export_csv_e > bldsheets/edges.csv + export_csv_w > bldsheets/wings.csv + export_csv_x > bldsheets/xcenters.csv + export_csv_t > bldsheets/tcenters.csv + echo "Sheets exported to bldsheets/" + return + fi + #TODO add option for alternative buffers + [ "$2" != "c" ] && [ "$2" != "e" ] && \ + [ "$2" != "w" ] && [ "$2" != "x" ] && \ + [ "$2" != "t" ] && usage && return + export_csv_$2 + return + ;; + *) + editor="cat" + ;; + esac + + type="$1" + if [ -z "$3" ]; then + letters="$2" + cbuf="$cbuffer" + ebuf="$ebuffer" + wbuf="$wbuffer" + xbuf="$xbuffer" + tbuf="$tbuffer" + else + letters="$3" + cbuf="$2" + ebuf="$2" + wbuf="$2" + xbuf="$2" + tbuf="$2" + fi + + letter1="$(echo "$letters" | cut -c 1)" + letter2="$(echo "$letters" | cut -b 2)" + + [ -z "$letter1" ] && usage && return + + case "$type" in + c) + if [ -n "$letter2" ]; then + edit corners $cbuf $(corner $letter1) $(corner $letter2) + else + showall_c $cbuf $letter1 + fi + ;; + e) + if [ -n "$letter2" ]; then + edit edges $ebuf $(edge $letter1) $(edge $letter2) + else + showall_e $ebuf $letter1 + fi + ;; + w) + if [ -n "$letter2" ]; then + edit wings $wbuf $(wing $letter1) $(wing $letter2) + else + showall_w $wbuf $letter1 + fi + ;; + x) + if [ -n "$letter2" ]; then + edit xcenters $xbuf $(xcenter $letter1) $(xcenter $letter2) + else + showall_x $xbuf $letter1 + fi + ;; + t) + if [ -n "$letter2" ]; then + edit tcenters $tbuf $(tcenter $letter1) $(tcenter $letter2) + else + showall_t $tbuf $letter1 + fi + ;; + *) + usage + ;; + esac +} + +if [ -n "$1" ]; then + run $@ +else + while read -r args; do + [ -n "$args" ] && run $args + done +fi diff --git a/scripts/unused/config-backup b/scripts/unused/config-backup new file mode 100755 index 0000000..87bedeb --- /dev/null +++ b/scripts/unused/config-backup @@ -0,0 +1,28 @@ +#!/bin/sh + +# Copy my config files to my backup folder + +folder=$HOME/box/configbackups + +dotfiles=".bash_profile .bashrc .profile .inputrc .mblaze .nexrc .tmux.conf .virc .xinitrc .config/isyncrc" +config="colors fontconfig git imv msmtp zathura" +src="dmenu dwm st" + +for d in config home src ssh; do mkdir -p "$folder/$d"; done + +# copy + +for i in $dotfiles; + do cp -Rf "$HOME"/"$i" "$folder"/home/ +done + +for i in $config + do cp -Rf "$HOME"/.config/"$i" "$folder"/config/ +done + +for i in $src + do mkdir "$folder"/src/"$i" + cp -f "$HOME"/.local/src/"$i"/*.{c,h} "$folder"/src/"$i"/ +done + +cp "$HOME"/.ssh/config "$folder"/ssh/ diff --git a/scripts/unused/dmenu-mail-aliases b/scripts/unused/dmenu-mail-aliases new file mode 100755 index 0000000..76999de --- /dev/null +++ b/scripts/unused/dmenu-mail-aliases @@ -0,0 +1,29 @@ +#!/bin/sh + +# Select mail alias via dmenu +# The email address must be the second word in a line of $aliasfile +# Requires: dmenu (or similar) + +# Usage: dmenu-mail-aliases [-m menu] + +usage() { + echo "Usage: dmenu-mail-aliases [-m MENU]" +} + +menu="dmenu -l 20" +aliasfile="$HOME/.mblaze/aliases" + +while getopts "m:" opt; do + case "$opt" in + m) + menu="$OPTARG" + ;; + *) + usage + exit 1 + ;; + esac +done +shift $((OPTIND - 1)) + +$menu <"$aliasfile" | awk '{print $NF}' diff --git a/scripts/unused/dmenu-websearch b/scripts/unused/dmenu-websearch new file mode 100755 index 0000000..a8e6a50 --- /dev/null +++ b/scripts/unused/dmenu-websearch @@ -0,0 +1,8 @@ +#!/bin/sh + +# dmenu prompt for websearch +# Requires: dmenu (or similar), websearch + +menu=${MENU:-dmenu} + +websearch "$(echo "" | $menu -p "websearch:")" diff --git a/scripts/unused/practice b/scripts/unused/practice new file mode 100755 index 0000000..628f15b --- /dev/null +++ b/scripts/unused/practice @@ -0,0 +1,170 @@ +#!/bin/sh + +# Script based on nissy (see https://nissy.tronto.net) to practice FMC + +# Usage: practice [eo|dr|htr|slice] + +nissy="nissy" +prompt="Press enter for a new scramble, Ctr+C (or Ctrl+Z) to quit:" + +usage() { + echo "Usage: practice [eo|dr|htr|fin]" + exit 1 +} + +practice_eo() { + nextscr="$(${nissy} scramble fmc)" + while true; do + scr="$nextscr" + echo "Scramble: $scr" + nextscr="$(${nissy} scramble fmc)" + eofb="$(${nissy} solve -N -M 4 eofb -p "$scr")" + eorl="$(${nissy} solve -N -M 4 eorl -p "$scr")" + eoud="$(${nissy} solve -N -M 4 eoud -p "$scr")" + nfbn="$(echo "$eofb" | grep -v '^$' | grep -Fv '(' | wc -l)" + nrln="$(echo "$eorl" | grep -v '^$' | grep -Fv '(' | wc -l)" + nudn="$(echo "$eoud" | grep -v '^$' | grep -Fv '(' | wc -l)" + nfbi="$(echo "$eofb" | grep '^(' | wc -l)" + nrli="$(echo "$eorl" | grep '^(' | wc -l)" + nudi="$(echo "$eoud" | grep '^(' | wc -l)" + nfbniss="$(echo "$eofb" | grep -v '^(' | grep '(' | wc -l)" + nrlniss="$(echo "$eorl" | grep -v '^(' | grep '(' | wc -l)" + nudniss="$(echo "$eoud" | grep -v '^(' | grep '(' | wc -l)" + nfb="$((nfbn + nfbi + nfbniss))" + nrl="$((nrln + nrli + nrlniss))" + nud="$((nudn + nudi + nudniss))" + n5linear="$(${nissy} solve -L -m 5 -M 5 eo -c "$scr")" + n5niss="$(${nissy} solve -N -m 5 -M 5 eo -c "$scr")" + n5nonlinear="$((n5niss - n5linear))" + read -r x + echo "FB: $nfb ($nfbn normal, $nfbi inverse, $nfbniss niss)" + echo "RL: $nrl ($nrln normal, $nrli inverse, $nrlniss niss)" + echo "UD: $nud ($nudn normal, $nudi inverse, $nudniss niss)" + echo "5 movers: $n5linear linear, $n5nonlinear NISS'd" + read -r x + echo "$eofb" + echo "---" + echo "$eorl" + echo "---" + echo "$eoud" + printf '\n%s' "$prompt" + read -r x + done +} + +practice_dr() { + nextscr="$(${nissy} scramble eo)" + while true; do + scr="$nextscr" + echo "Scramble: $scr" + nextscr="$(${nissy} scramble eo)" + soleo="$(${nissy} solve -o -p drud-eofb "$scr")" + neo="$(echo "$soleo" | grep -v '^$' | wc -l)" + leo="$(echo "$soleo" | head -n 1 | wc -w)" + solht="$(${nissy} solve -o -p drud "$scr")" + nht="$(echo "$solht" | grep -v '^$' | wc -l)" + lht="$(echo "$solht" | head -n 1 | wc -w)" + soleolr="$(${nissy} solve -o -p drrl-eofb "$scr")" + neolr="$(echo "$soleolr" | grep -v '^$' | wc -l)" + leolr="$(echo "$soleolr" | head -n 1 | wc -w)" + solhtlr="$(${nissy} solve -o -p drrl "$scr")" + nhtlr="$(echo "$solhtlr" | grep -v '^$' | wc -l)" + lhtlr="$(echo "$solhtlr" | head -n 1 | wc -w)" + read -r x + echo "DR on U/D: $leo moves ($neo solutions)" + if [ "$nht" != "$neo" ]; then + echo "Breaking EO: $lht moves ($nht solutions)" + fi + echo "DR on R/L: $leolr moves ($neolr solutions)" + if [ "$nhtlr" != "$neolr" ]; then + echo "Breaking EO: $lhtlr moves ($nhtlr solutions)" + fi + read -r x + echo "On U/D:" + echo "$soleo" + echo "" + if [ "$nht" != "$neo" ] || [ "$lht" != "$leo" ]; then + echo "Breaking EO:" + echo "$solht" + echo "" + fi + echo "On R/L:" + echo "$soleolr" + echo "" + if [ "$nhtlr" != "$neolr" ] || [ "$lhtlr" != "$leolr" ]; then + echo "Breaking EO:" + echo "$solhtlr" + echo "" + fi + printf '\n%s' "$prompt" + read -r x + done +} + +practice_htr() { + nextscr="$(${nissy} scramble dr)" + while true; do + scr="$nextscr" + echo "Scramble: $scr" + nextscr="$(${nissy} scramble dr)" + sol="$(${nissy} solve -o -p htr "$scr")" + nsol="$(echo "$sol" | grep -v '^$' | wc -l)" + len="$(echo "$sol" | head -n 1 | wc -w)" + fin="$(${nissy} solve -o -p drfin "$scr")" + lenf="$(echo "$fin" | head -n 1 | wc -w)" + slice="$(${nissy} solve -o -p drslice "$scr")" + lens="$(echo "$slice" | head -n 1 | wc -w)" + read -r x + echo "$len moves ($nsol solutions)" + read -r x + echo "$sol" + if [ "$lenf" != "$lens" ]; then + echo "" + echo "Optimal leave slice ($lens):" + echo "$slice" + fi + echo "" + echo "Optimal DR finish ($lenf):" + echo "$fin" + printf '\n%s' "$prompt" + read -r x + done +} + +practice_fin() { + nextscr="$(${nissy} scramble htr)" + while true; do + scr="$nextscr" + echo "Scramble: $scr" + nextscr="$(${nissy} scramble htr)" + sol="$(${nissy} solve -o -p drudslice "$scr")" + nsol="$(echo "$sol" | grep -v '^$' | wc -l)" + len="$(echo "$sol" | head -n 1 | wc -w)" + fin="$(${nissy} solve -o -p drudfin "$scr")" + nfin="$(echo "$fin" | grep -v '^$' | wc -l)" + lenf="$(echo "$fin" | head -n 1 | wc -w)" + opt="$(${nissy} solve -o -p "$scr")" + leno="$(echo "$opt" | head -n 1 | wc -w)" + read -r x + echo "Leave slice: $len moves ($nsol solutions)" + if [ "$lenf" != "$len" ]; then + echo "DR finish: $lenf moves" + fi + read -r x + echo "$sol" + if [ "$lenf" != "$len" ]; then + echo "" + echo "Optimal DR finish ($lenf):" + echo "$fin" + fi + if [ "$leno" != "$lenf" ]; then + echo "" + echo "Optimal DR-breaking ($leno):" + echo "$opt" + fi + printf '\n%s' "$prompt" + read -r x + done +} + +"practice_$1" || usage diff --git a/scripts/unused/share b/scripts/unused/share new file mode 100755 index 0000000..1a27d90 --- /dev/null +++ b/scripts/unused/share @@ -0,0 +1,13 @@ +#!/bin/sh + +# One-liner to upload stuff to my webserver + +srv=tronto.net +dir=$(tr -cd 'a-z0-9' < /dev/random | fold -w 8 | head -n 1) +htp=https://share.tronto.net/$dir +pth=/var/www/htdocs/share.tronto.net/$dir +url=$srv:$pth + +ssh tronto.net mkdir "$pth" +scp "$@" "$url"/ +for i in "$@"; do echo "$htp/$(basename $i)"; done diff --git a/scripts/unused/translate b/scripts/unused/translate new file mode 100755 index 0000000..9442844 --- /dev/null +++ b/scripts/unused/translate @@ -0,0 +1,11 @@ +#!/bin/sh + +# Opens google translate + +translator="https://translate.google.com/" +from=$1 +to=$2 + +shift 2 +text=$(echo "$@" | sed 's/ /\%20/g') +open-url "${translator}?sl=${from}&tl=${to}&text=${text}&op=translate" diff --git a/scripts/unused/websearch b/scripts/unused/websearch new file mode 100755 index 0000000..dddcc20 --- /dev/null +++ b/scripts/unused/websearch @@ -0,0 +1,11 @@ +#!/bin/sh + +# Perform a web search + +browser=${BROWSER:-firefox} +searchengine="https://www.startpage.com/sp/search?query=" +#searchengine="https://duckduckgo.com/?q=" +#searchendinge="https://www.google.com/search?q=" + +arg=$(echo "$@" | sed 's/ /\+/g') +[ -n "$arg" ] && spawn "$browser" "${searchengine}$arg" diff --git a/scripts/unused/xplumb b/scripts/unused/xplumb new file mode 100755 index 0000000..1d89796 --- /dev/null +++ b/scripts/unused/xplumb @@ -0,0 +1,65 @@ +#!/bin/sh + +# My interpretation of a plumber (plan9 style). +# It scans the selected text (xsel) and decides what to do with it among +# some possibilities (open file, open url, man page...). If none is matched, +# a choice is prompted. + +# Requires: dmenu (or similar), mail-compose, open-file, terminal, websearch, +# xedit, xsel + +# TODO: +# send mail to email address; +# calendar if it is a date +# choice: pipe to another program + +browser=${BROWSER:-firefox} +menu=${MENU:-dmenu} +menuopts="-l 10" + +text=$(xsel | sed 's/\n/ /g') +if [ "${#text}" -ge 11 ]; then + shorttext=$(echo "$text" | cut -b 1-10)... +else + shorttext="$text" +fi + +choice() { + chosen=$(printf "websearch\nedit" | \ + $menu $menuopts -p "What to do with \"$shorttext\"?") + + if [ "$chosen" = "websearch" ]; then + websearch "$text" + elif [ "$chosen" = "edit" ]; then + f=$(mktemp) + xsel > "$f" + xedit "$f" + fi +} + +trymail() { + addr=$(echo "$1" | addressgrep) + ( [ -n "$addr" ] && mail-compose "$addr" ) || return 1 +} + +tryman() { + number=$(echo "$1" | sed 's/[^1-8]//g') + name=$(echo "$1" | sed 's/([1-8])//g' | sed 's/ //g') + if [ "$(man -w "$number" "$name" | wc -l)" = 1 ]; then + terminal -e man "$number" "$name" + return 0 + else + return 1 + fi +} + +tryurl() { + url=$(echo "$1" | urlgrep) + ( [ -n "$url" ] && "$browser" "$url" ) || return 1 +} + +#open-file -s spawn "$text" || \ +tryurl "$text" || \ +trymail "$text" || \ +tryman "$text" || \ +choice -- cgit v1.3