Shell scripts minimizing machine time, maximizing tao time.

git clone git://watertao.xyz/programs/tao_shells.git

commit cff6e94aaca8443b5d621bd43db6739446f458b1
parent de22a9a0b8ce5f56d7955115785132a933c4ba1c
Author: Jeff <dev@watertao.xyz>
Date:   Thu, 26 Feb 2026 20:27:18 -0800

Updated dmenu, terminal calls

Updated DMENU_OPTS so the tao_dmenu.conf config file is to be populated
with one line of only dmenu options/flags.

Modified terminal calls for portability.

Updated all scripts to check for TERMINAL env var definition.

Diffstat:
Mtao_bluetooth_connect.sh | 8++++++--
Mtao_copy.sh | 6++++++
Mtao_notes.sh | 26++++++++++++++++++--------
Mtao_pactl_setsink.sh | 9++++++---
Mtao_url.sh | 28++++++++++++++++------------
Mtao_youtube_query.sh | 17++++++++++++-----
6 files changed, 64 insertions(+), 30 deletions(-)

diff --git a/tao_bluetooth_connect.sh b/tao_bluetooth_connect.sh @@ -11,8 +11,12 @@ then fi # optional configs -a="$XDG_CONFIG_HOME/tao/tao_dmenu.conf" && [ -f "$a" ] && . "$a" -export DMENU_OPTS="${DMENU_OPTS:-""}" +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") + export DMENU_OPTS="${DMENU_OPTS:-""}" +fi a=$(bluetoothctl devices | awk '{printf("%-10s %s\n", $3, $2)}' | \ $DMENU -i $DMENU_OPTS -p "[ connect to bluetooth device ]") diff --git a/tao_copy.sh b/tao_copy.sh @@ -12,6 +12,12 @@ if [ -z "$DMENU" ]; then a="dmenu sxmo_dmenu.sh bemenu rofi" for i in $a; do cmdf "$i" && DMENU="$i" && break; done fi +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") + export DMENU_OPTS="${DMENU_OPTS:-""}" +fi cu(){ exit 0; }; trap cu INT diff --git a/tao_notes.sh b/tao_notes.sh @@ -10,16 +10,26 @@ cmdf(){ command -v "$1" >/dev/null 2>&1; } # dmenu command -a="dmenu sxmo_dmenu.sh bemenu rofi" -for i in $a; do cmdf "$i" && dmenu="$i" && break; done +if [ -z "$DMENU" ] +then + a="dmenu sxmo_dmenu.sh bemenu rofi" + for i in $a; do cmdf "$i" && export DMENU="$i" && break; done +fi # term command -a="st urxvt xterm sxmo_terminal.sh" -for i in $a; do cmdf "$i" && term="$i" && break; done +if [ -z "$TERMINAL" ] +then + a="st urxvt xterm sxmo_terminal.sh" + for i in $a; do cmdf "$i" && export TERMINAL="$i" && break; done +fi # dmenu config -a="$XDG_CONFIG_HOME/tao/tao_dmenu.conf" && [ -f "$a" ] && . "$a" -dmenu_opts="${dmenu_opts:-""}" +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") + export DMENU_OPTS="${DMENU_OPTS:-""}" +fi cu(){ exit 1; }; trap cu INT @@ -28,7 +38,7 @@ d=$HOME/.local/share/tao/notes notesel(){ ls -1 "$d" | \ - "$dmenu" $dmenu_opts -p "Tao Notes" || return 1 + "$DMENU" $DMENU_OPTS -p "Tao Notes" || return 1 } fnote(){ @@ -39,7 +49,7 @@ fnote(){ [ -f "$g" ] && rm "$g" return 0 else - "$term" "$EDITOR" "$d/$f" + "$TERMINAL" -- "$EDITOR" "$d/$f" return 1 fi done && return 0 || return 1 diff --git a/tao_pactl_setsink.sh b/tao_pactl_setsink.sh @@ -15,8 +15,11 @@ then fi # optional configs -a="$XDG_CONFIG_HOME/tao/tao_dmenu.conf" && [ -f "$a" ] && . "$a" -export DMENU_OPTS="${DMENU_OPTS:-""}" +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") +fi a=$(pactl list sinks | \ awk '{ @@ -35,7 +38,7 @@ a=$(pactl list sinks | \ sink=$2 state=" " }}' | \ - $DMENU -i $DMENU_OPTS -p "[ audio sink select ]") + "$DMENU" -i $DMENU_OPTS -p "[ audio sink select ]") [ -n "$a" ] && \ pactl set-default-sink ${a##* #} diff --git a/tao_url.sh b/tao_url.sh @@ -28,12 +28,16 @@ fi trm="$TERMINAL" # optional configs -a="$XDG_CONFIG_HOME/tao/tao_dmenu.conf" && [ -f "$a" ] && . "$a" -export DMENU_OPTS="${DMENU_OPTS:-""}" +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") + export DMENU_OPTS="${DMENU_OPTS:-""}" +fi dmo="-i $DMENU_OPTS" -a="$XDG_CONFIG_HOME/tao/tao_url.conf" && [ -f "$a" ] && . "$a" -ofile="$XDG_CONFIG_HOME/tao/tao_openers.conf" +a="$HOME/.config/tao/tao_url.conf" && [ -f "$a" ] && . "$a" +ofile="$HOME/.config/tao/tao_openers.conf" TAO_QUERY_ENG="${TAO_QUERY_ENG:-"https://ddg.gg?q="}" TAO_LOCAL_DIRS="${TAO_LOCAL_DIRS:-"$(printf "%s\n" "$HOME")"}" TAO_EXEC_IN_TERM="${TAO_EXEC_IN_TERM:-"w3m links mpv"}" @@ -41,7 +45,7 @@ TAO_DL_THEN_OPEN="${TAO_DL_THEN_OPEN:-"nsxiv mpv zathura"}" # File types: Local(1)(default) Remote(2) Query(3) ft=2 -cdir="$XDG_DATA_HOME/tao/url" +cdir="$HOME/.local/share/tao/url" qfile="${cdir}/query" bfile="${cdir}/bookmark" hfile="${cdir}/history" @@ -88,8 +92,8 @@ dl_then_view() dmenu_yn "[ Download then view? ]" && return 0 x="$(mktemp -d)"; [ ! -d "$x" ] && cu - "$trm" wget --user-agent=Firefox "$u" -P "$x" - "$trm" $p "$x"/* 2>$dn + "$trm" -- wget --user-agent=Firefox "$u" -P "$x" + "$trm" -- $p "$x"/* 2>$dn dmenu_yn "[ Remove tmp files: $(ls -1 "$x"/) ? y/n ]" && \ "$trm" -d "$x" || rm -r "$x" cu @@ -140,9 +144,9 @@ file_action() # held up by the yt-dlp process. if [ -z "$FETCHING_LATEST" ] then - $trm -t "$p" tao_url.sh -y "$u" 1>$dn 2>&1 + "$trm" -t "$p" -- tao_url.sh -y "$u" 1>$dn 2>&1 else - $trm -t "$p" tao_url.sh -y "$u" 1>$dn 2>&1 & + "$trm" -t "$p" -- tao_url.sh -y "$u" 1>$dn 2>&1 & fi cu fi @@ -154,7 +158,7 @@ file_action() # open term if needed prnt "$TAO_EXEC_IN_TERM" | grep -q "${p%% *}" && [ $noterm -ne 1 ] && \ - $trm $p "$u" && cu + "$trm" -- $p "$u" && cu # for all else just run it $p "$u" && cu @@ -162,8 +166,8 @@ file_action() else case "$(prnt "$(file --mime-type -b "$u")" | tr "[:upper:]" "[:lower:]")" in *webp|*jpeg|*jpg|*png|*gif|*svg ) p="$imager" ;; - *mp4|*m4a|*avi|*mpg|*ogg|*mp3|*flac|*flv|*matroska ) p="$trm $mpv" ;; - *txt|*md|*text ) p="$trm $EDITOR" ;; + *mp4|*m4a|*avi|*mpg|*ogg|*mp3|*flac|*flv|*matroska ) p="$trm -- $mpv" ;; + *txt|*md|*text ) p="$trm -- $EDITOR" ;; *pdf ) p="$pdf" ;; * ) p="$sbrowser" ;; esac diff --git a/tao_youtube_query.sh b/tao_youtube_query.sh @@ -1,9 +1,10 @@ #!/bin/sh +# # Query youtube for videos. # # Default - fetch list of latest vids of channels listed in config file: -# $XDG_CONFIG_HOME/tao/tao_channel_fetch_latest.sites +# $HOME/.config/tao/tao_channel_fetch_latest.sites # # -c "CHANNEL" # Fetch videos from CHANNEL @@ -16,7 +17,9 @@ # # Requires dmenu, tao_url.sh, yt-dlp # Optionally uses fully functional ps (not busybox ver) +# +# Defaults (fetching latest from channels list) typ="d" l=10 pts_title="Fetching latest channel videos..." @@ -46,8 +49,12 @@ then fi # optional configs -a="$XDG_CONFIG_HOME/tao/tao_dmenu.conf" && [ -f "$a" ] && . "$a" -export DMENU_OPTS="${DMENU_OPTS:-""}" +if [ -z "$DMENU_OPTS" ] +then + a="$HOME/.config/tao/tao_dmenu.conf" && [ -f "$a" ] && \ + DMENU_OPTS=$(<"$a" sed -n '1p' | tr -d "\n") + export DMENU_OPTS="${DMENU_OPTS:-""}" +fi dmo="$DMENU_OPTS" # Safety first @@ -66,7 +73,7 @@ t=$(mktemp) dflt_chk() { # All video sites live in the following file - yt_sites=$XDG_CONFIG_HOME/tao/tao_channel_fetch_latest.sites + yt_sites="$HOME/.config/tao/tao_channel_fetch_latest.sites" if [ ! -s $yt_sites ] then <$dn "$dm" -i $dmo -p "<{ $yt_sites file empty. }>" @@ -100,7 +107,7 @@ pts_open() prnt_tty="" if [ "$usepts" = "1" ] then - "$TERMINAL" -t "$pts_title $q" tail - 2>$dn & + "$TERMINAL" -t "$pts_title $q" -- tail - 2>$dn & a="$!" sleep 0.2 ttyno=$(ps -ax | \