about summary refs log tree commit diff stats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/bar.sh2
-rwxr-xr-xbin/catgirl-open.sh31
-rwxr-xr-xbin/comm-sel20
-rwxr-xr-xbin/lh38
4 files changed, 64 insertions, 27 deletions
diff --git a/bin/bar.sh b/bin/bar.sh
index 49500ee..6a0a04d 100755
--- a/bin/bar.sh
+++ b/bin/bar.sh
@@ -1,4 +1,4 @@
 #!/bin/sh
 # loads color envs, pipes spoon to dzen
 . $HOME_ETC/color/colors.sh
-spoon -t|dzen2 -ta r -fg "$color0" -bg "$color1" -fn "Terminus:style=Regular:pixelsize=12" -u -h 13 -w 1366 -l 0 -p
+spoon -t|dzen2 -ta r -fg "$foreground" -bg "$background" -fn "Terminus:style=Regular:pixelsize=12" -u -h 13 -w 1366 -l 0 -p
diff --git a/bin/catgirl-open.sh b/bin/catgirl-open.sh
new file mode 100755
index 0000000..76673ec
--- /dev/null
+++ b/bin/catgirl-open.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# script for tabbing together catgirl instances, similar to surf-open.sh
+. ~/etc/shrc
+
+xidfile="$XDG_CACHE_HOME/catgirl/tabbed-catgirl.xid"
+
+choosenet() {
+	for network in $(ls $HOME_ETC/catgirl/*.conf|sed 's/.*\///');
+	do
+	printf '%s\n' $network;
+	done | dmenu -p "choose network:"
+}
+
+runtabbed() {
+	tabbed -fdn comm -r 2 $TERMINAL -into '' -e catgirl $(choosenet) >"$xidfile" &
+}
+
+if [ ! -r "$xidfile" ];
+then
+	runtabbed
+else
+	xid=$(<"$xidfile")
+	xprop -id "$xid" >/dev/null 2>&1
+	if [ $? -gt 0 ];
+	then
+		runtabbed
+	else
+		$TERMINAL -into "$xid" -e catgirl $(choosenet) >/dev/null 2>&1 &
+	fi
+fi
+
diff --git a/bin/comm-sel b/bin/comm-sel
index 0021f88..ce2e99b 100755
--- a/bin/comm-sel
+++ b/bin/comm-sel
@@ -1,14 +1,14 @@
 #!/bin/sh
-# sends a list of communication TUIs (e.g epic5) to dmenu and allows the user to choose one.
+# sends a list of communication TUIs (e.g catgirl) to dmenu and allows the user to choose one.
 # class "comm" is added to enable window managers (e.g dwm) to do specific things with them.
-# st-altscreen is a built of st that doesn't have scrollback or extra keybindings, so it doesn't get in the way of whatever binds clients have.
-# as a result it's lighter than the build of st i use for interactive use.
-if command -v st-altscreen>/dev/null; then
-	TERMINAL="st-altscreen"
-fi
-case "$(dmenu_path|grep -E "epic5$|cordless|scli$"|dmenu -p "choose chat app:")" in
-	epic5) $TERMINAL -c comm -e epic5 -l "$XDG_CONFIG_HOME/epic/epicrc" ensa&;;
-	cordless) $TERMINAL -c comm -e cordless -config-dir "$XDG_CONFIG_HOME/cordless" &;;
-	scli) $TERMINAL -c comm -e scli&;;
+case "$TERMINAL" in
+	xterm) CLASS='-class';;
+	urxvt) CLASS='-name';;
+	alacritty|kitty) CLASS='--class';;
+esac
+case "$(dmenu_path|grep -E "catgirl$|cordless|scli$"|dmenu -p "choose chat app:")" in
+	catgirl) catgirl-open.sh &;;
+	cordless) $TERMINAL $CLASS comm -e env TERM=xterm-256color cordless -config-dir "$XDG_CONFIG_HOME/cordless" &;;
+	scli) $TERMINAL $CLASS comm -e scli&;;
 	*) return;;
 esac
diff --git a/bin/lh b/bin/lh
index 016b37f..e662589 100755
--- a/bin/lh
+++ b/bin/lh
@@ -15,34 +15,40 @@ split() {
 	set +f
 }
 
-case "$1" in
+# handle redirects. tr removes control characters, so the case statement below works as expected.
+URL=$(curl -IL "$1"|grep '^location: '|tail -1|sed 's/location: //'|tr -d '[:cntrl:]')
+# if there were no redirects, just set URL to the first argument
+[ -z "$URL" ] && URL="$1"
+
+echo $URL
+case "$URL" in
 	gemini://*|gopher://*)
-		$TERMINAL -e bombadillo "$1" ;;
+		$TERMINAL -e bombadillo "$URL" ;;
 	*mkv|*webm|*mp4)
-		mpv "$1" >/dev/null 2>&1 & ;;
+		mpv "$URL" >/dev/null 2>&1 & ;;
 	*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*twitch.tv/videos/*|*twitch.tv/*/v/*)
-		mpv --ytdl "$1" >/dev/null 2>&1 & ;;
+		mpv --ytdl "$URL" >/dev/null 2>&1 & ;;
 	*twitch.tv/*)
-		STREAMQUAL="$(split "$(streamlink "$1"|grep 'Available streams')" ", "|\
+		STREAMQUAL="$(split "$(streamlink "$URL"|grep 'Available streams')" ", "|\
 			grep -E "[0-9]"|\
-			dmenu -p "choose stream quality for $1")"
-		streamlink -p mpv $1 $STREAMQUAL >/dev/null 2>&1 & ;;
+			dmenu -p "choose stream quality for $URL")"
+		streamlink -p mpv $URL $STREAMQUAL >/dev/null 2>&1 & ;;
 	*png|*jpg|*jpe|*jpeg|*gif)
-		IMGPATH="/tmp/$(echo "$1"|sed "s/.*\\///")"
-		curl -sL "$1" >"$IMGPATH"&&sxiv -a "$IMGPATH">/dev/null 2>&1 & ;;
+		IMGPATH="/tmp/$(echo "$URL"|sed "s/.*\\///")"
+		curl -sL "$URL" >"$IMGPATH"&&sxiv -a "$IMGPATH">/dev/null 2>&1 & ;;
 	*mp3|*m4a|*flac|*aiff|*opus|*ogg|*mp3?source*)
-		mpv "$1" >/dev/null 2>&1 & ;;
+		mpv "$URL" >/dev/null 2>&1 & ;;
 	*epub|*pdf|*djvu)
-		BOOKPATH="/tmp/$(echo "$1"|sed "s/.*\\///")"
+		BOOKPATH="/tmp/$(echo "$URL"|sed 's/.*\///')"
 		if [ -n "$READER" ]; then
-			curl -sL "$1" >"$BOOKPATH"&&$READER "$BOOKPATH">/dev/null 2>&1 &
+			curl -sL "$URL" >"$BOOKPATH"&&$READER "$BOOKPATH">/dev/null 2>&1 &
 		else
-			curl -sL "$1" >"$BOOKPATH" &
+			curl -sL "$URL" >"$BOOKPATH" &
 		fi ;;
 	*)
-		if [ -f "$1" ]; then
-			$TERMINAL -e "${EDITOR:-vi} $1"
+		if [ -f "$URL" ]; then
+			$TERMINAL -e "${EDITOR:-vi} $URL"
 		else
-			$BROWSER "$1" >/dev/null 2>&1 &
+			$BROWSER "$URL" >/dev/null 2>&1 &
 		fi ;;
 esac