Configure for .stowrc

This commit is contained in:
Ian Keane 2022-07-08 22:10:57 -04:00
parent e58bb4c0a0
commit 1091129506
132 changed files with 4 additions and 18 deletions

View file

@ -0,0 +1 @@
#/usr/bin/fish

View file

@ -0,0 +1,18 @@
#!/bin/sh
# https://stackoverflow.com/questions/69138165/how-to-get-the-rgb-values-of-a-256-color-palette-terminal-color
xdef="$HOME/.Xresources"
colors=( $( sed -re '/^!/d; /^$/d; /^#/d; s/(\*color)([0-9]):/\10\2:/g;' $xdef | grep 'color[01][0-9]:' | sort | sed 's/^.*: *//g' )
)
echo
for i in {0..7}; do echo -en "\e[$((30+$i))m ${colors[i]} \u2588\u2588 \e[0m\n"; done
echo
for i in {8..15}; do echo -en "\e[1;$((22+$i))m ${colors[i]} \u2588\u2588 \e[0m\n"; done
echo -e "\n"

View file

@ -0,0 +1,7 @@
#!/bin/sh
for i in {0..255} ; do
printf "\x1b[38;5;${i}m%3d " "${i}"
if (( $i == 15 )) || (( $i > 15 )) && (( ($i-15) % 12 == 0 )); then
echo;
fi
done

View file

@ -0,0 +1,19 @@
#!
# bg's need # in front
# start flavours
norm_fg="#C0C5CE"
norm_bg="#1B2B34"
sel_fg="#1B2B34"
sel_bg="#99C794"
# end flavours
dmenu_run \
-i \
-fn BitstreamVeraSansMono:size=11 \
-l 15 \
-nf "$norm_fg" \
-nb "$norm_bg" \
-sf "$sel_fg" \
-sb "$sel_bg"

View file

@ -0,0 +1,18 @@
#!/bin/sh
# The famous "get a menu of emojis to copy" script.
# Get user selection via dmenu from emoji file.
chosen=$(cut -d ';' -f1 ~/.local/share/emoji | dmenu -i -l 30 | sed "s/ .*//")
# Exit if none chosen.
[ -z "$chosen" ] && exit
# If you run this command with an argument, it will automatically insert the
# character. Otherwise, show a message that the emoji has been copied.
if [ -n "$1" ]; then
xdotool type "$chosen"
else
printf "$chosen" | xclip -selection clipboard
notify-send "'$chosen' copied to clipboard." &
fi

248
slackware/home/bin/scripts/fcp Executable file
View file

@ -0,0 +1,248 @@
#!/bin/sh
# TODO:
# * Look into ssh-hp :). (ie the slowness from ssh may just be from small
# buffers).
# * bring back stderr, currently there is no notification of errors, not even
# ENODIR or device full.
# * fcp src1 src2 src3 ... dst/ doesn't work (but glob does).
# Need to take the last positional arg as dest (and unset it) then use
# positional args at sources. Go through each one and make sure they are all
# local because we don't support mixed remote and local.
# * Doesn't work when the remote end is android. Although if I ssh over and run
# the fcp_ script manually it does work!?! (Maybe something about android
# tar, saw something else (what?) making a fifo instead of pipe.)
# * There are a couple of calls to eval in which any redirect characters
# (angle brackets) could lose our output. They need to be escaped.
# * Not sure about the handling of paths ending in slash or not is proper.
# (Eg where we rename the dest file.)
# I assume if it has no slash it the directory being sent should be renamed
# to the destination name
# (unless it is an existing directory on the dest host).
# * If the receiving (connecting) nc is started before the sending (server)
# one it will wait for one second and try again. They are started in the
# right order but if there are delays in starting the interpreter or
# something that sleep may have to be changed to something more robust.
# * If you want something more sophisticated look at http://www.slac.stanford.edu/~abh/bbcp/
portno=4365
comp=""
usage() {
cat <<EOM
Usage: $(basename $0) [-c] [-p portno] [--] [srchost:]srcpath [[dsthost:]dstpath]
Copy files between hosts on a network. Uses tar and netcat (nc) for
transferring data and ssh for setting up the transport.
\`dstpath\` defaults to the current directory, use "-" to get a tarball on
stdout.
Options:
-c Tell tar to use gzip compression.
-p portno Port used by netcat. Defaults to $portno.
EOM
}
a1="$1"
# Do a seperated gotopt run so we cat get the return code.
getopt -Q -o hcp: -l help -- "${@}" >/dev/null || {
ret=$?
usage
exit $ret
}
eval "set -- $(getopt -o hcp: -l help -- "${@}")"
# Sometimes set and/or getopt leave a -- there when it shouldn't be
[ "$a1" != "--" ] && [ "$1" = "--" ] && shift
while [ -n "$1" ];do
case "$1" in
-h|--help)
usage
exit
;;
-c) comp="-z" ;;
-p)
portno="$2"
shift
;;
--)
shift
break
;;
-*)
echo "Unrecognized argument: $1"
usage
exit 1
;;
*) break ;;
esac
shift
done
while [ -n "$1" ];do
case "$1" in
*)
if [ -z "$srcpath" ];then
srcpath="$1"
elif [ -z "$dstpath" ];then
dstpath="$1"
else
echo "Too many positional arguments (expected 2)." >&2
echo "Try escaping any globs in the destination path." >&2
usage
exit 1
fi
;;
esac
shift
done
if [ -z "$srcpath" ];then
usage
exit 1
fi
[ "$srcpath" = "." ] && srcpath="./"
[ "$srcpath" = ".." ] && srcpath="../"
[ "$dstpath" = "." ] && dstpath="./"
[ "$dstpath" = ".." ] && dstpath="../"
[ -z "$dstpath" ] && dstpath="./"
case "$srcpath" in
*\\:*) continue ;;
*:*)
srchost="${srcpath%%:*}"
srcpath="${srcpath#*:}"
;;
esac
case "$dstpath" in
*\\:*) continue ;;
*:*)
dsthost="${dstpath%%:*}"
dstpath="${dstpath#*:}"
;;
esac
sendcmd() {
dsthost="${1#*@}"
srcpath="$2"
srcdir="$(dirname "$srcpath")"
srcbase="$(basename "$srcpath")"
dstpath="$3"
[ "${dstpath%/}" = "$dstpath" ] && dstbase="$(basename "$dstpath")"
cat <<EOS
#!/bin/sh
srcdir="\$(eval echo "${srcdir}")"
cd "\$srcdir" || echo \$?
# Use find here to expand any globs. Eval doesn't like filenames with parens
# in them. This can leave us with multiple newline seperated files hence we
# pass them to tar below via stdin.
srcbase="\$(find . -maxdepth 1 -name "${srcbase}" -exec basename {} \\;)"
# Fallback in case the above failed for whatever reason.
[ -z "\$srcbase" ] && srcbase="${srcbase}"
if ! [ -d "\$srcdir/\$srcbase" ] && [ -n "$dstbase" ] && [ "$dstbase" != "-" ] ;then
trans="--transform=s/\${srcbase}\$/$dstbase/"
else
# dummy argument so there isn't an empty "" passed to tar
trans=--check-device
fi
tar --help 2>/dev/null | grep -q check-device || trans=v
pv=pv
type pv >/dev/null 2>&1 || pv=cat
# Try nc twice, with a one second timeout. In case we get called before the
# remote end has started up. May need to come up with something more
# sophisticated in situations where we have to wait longer for the initial
# setup.
echo "\$srcbase" | tar -cT- ${comp} "\$trans" |
\$pv | ( nc -q 0 -w 3 "${dsthost#*@}" $portno 2>/dev/null ||
{ sleep 1 && nc -q 0 -w 3 "${dsthost#*@}" $portno ; } )
EOS
}
recvcmd() {
dstpath="$1"
srcbase="$(basename "$2")"
cat <<EOS
#!/bin/sh
dstpath="\$(eval echo ${dstpath})"
dstbase="\$(basename "\${dstpath}")"
if [ -d "\$dstpath" ] || [ "\${dstpath%/}" != "\$dstpath" ] ;then
dstdir="\$dstpath"
# dummy argument so there isn't an empty "" passed to tar
trans=--check-device
else
# Strip trailing component and rename the incoming root object to that.
# I hope that is what was intended. If not make sure dstpath is
# terminated with a slash (/).
dstdir="\$(dirname "\$dstpath")"
trans="--transform=s/^\([\.\/]*\)${srcbase}/\\1\$dstbase/"
fi
tar --help 2>/dev/null | grep -q check-device || trans=-v
pv=pv
type pv >/dev/null 2>&1 || pv=cat
if [ "\$dstbase" != '-' ] ;then
mkdir -p "\$dstdir" || exit \$?
cd "\$dstdir" || exit \$?
fi
nc -lp $portno -w 20 | \$pv | {
if [ "\$dstbase" != '-' ] ;then
tar -x ${comp} "\$trans"
else
cat
fi
}
EOS
}
rpc() {
ssh "$1" "export ff=/tmp/fcp_$$_\$\$_cmd ; cat > \$ff ; nohup sh -c \"sh \$ff && rm -f \$ff\" </dev/null >/dev/null 2>&1 &"
[ $? -ne 0 ] && echo "Try escaping any ':' in a path if it is not supposed to be a host seperator." >&2
}
myip() {
# dig and nslookup and hosts aren't on all machines and don't look in
# /etc/hosts. Getent isn't everywhere and sometimes returns ipv6 addreses on
# non-ipv6 enabled hosts. getent ahostsv4 I don't know how prevalent that is.
tip="$(ping -c1 -W0.1 ${1#*@} 2>&1 | tr -d '():' | awk '/^PING/{print $3}')"
[ -n "$tip" ] &&
ip route get "$tip" | sed -n 's/^.*src \([^ ]*\).*$/\1/p'
}
if [ -n "$dsthost" ] && [ -n "$srchost" ];then
recvcmd "$dstpath" "$srcpath" | rpc "$dsthost"
sendcmd "$dsthost" "$srcpath" "$dstpath" | rpc "$srchost"
exit $?
elif [ -n "$dsthost" ];then
recvcmd "$dstpath" "$srcpath" | rpc "$dsthost"
sendcmd "$dsthost" "$srcpath" "$dstpath" > /tmp/fcp_$$_cmd
sh /tmp/fcp_$$_cmd
rm /tmp/fcp_$$_cmd
exit $?
elif [ -n "$srchost" ];then
dsthost="$(myip "$srchost")"
[ -z "$dsthost" ] && {
echo "Couldn't find route to $srchost" >&2
exit 1
}
recvcmd "$dstpath" "$srcpath" > /tmp/fcp_$$_cmd
sh /tmp/fcp_$$_cmd &
sendcmd "$dsthost" "$srcpath" "$dstpath" | rpc "$srchost"
wait
rm /tmp/fcp_$$_cmd
exit $?
else
srcdir="$(dirname "$srcpath")"
srcbase="$(basename "$srcpath")"
if [ -d "$dstpath" ] || [ "${dstpath%/}" != "$dstpath" ];then
dstdir="$dstpath"
else
dstdir="$(dirname "$dstpath")"
fi
# TODO: Handle file renames.
dstpath="`eval echo ${dstpath}`"
mkdir -p "$dstpath"
tar -C "$srcdir" -c "$srcbase" | tar -C "$dstdir" -x
exit $?
fi

View file

@ -0,0 +1,15 @@
#!/usr/bin/fish
set gap (bspc config window_gap)
if [ $gap = 40 ]
set new_gap 18
else if [ $gap = 18 ]
set new_gap 12
else if [ $gap = 12 ]
set new_gap 0
else if [ $gap = 0 ]
set new_gap 40
end
bspc config window_gap $new_gap

View file

@ -0,0 +1 @@
/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser "https://everblue.atlassian.net/browse/"$1 &

View file

@ -0,0 +1,4 @@
#!/usr/local/bin/fish
#
kill -9 (ps -a | grep chalice | grep -v tmux | grep -v killchalice | cut -c1-5) &> /dev/null
kill -9 (ps -a | grep chalice | grep -v tmux | cut -c1-5)

View file

@ -0,0 +1,7 @@
#!/usr/bin/fish
if [ (xkblayout-state print "%n") = "Russian" ]
setxkbmap -layout us
else
setxkbmap -layout ru
end

View file

@ -0,0 +1,37 @@
#!/usr/bin/fish
bsp-layout next --layouts tall,grid,rgrid,tiled
set layout (bsp-layout get)
if ps -aux | grep layoutcycle | grep -v grep
exit
else if [ $layout = "tall" ]
notify-send -t 1000 "Layout: Tall" (echo \
" ______________ \n" \
" | |____| \n" \
" | |____| \n" \
" | |____| \n" \
" |________|____| " )
else if [ $layout = "grid" ]
notify-send -t 1000 "Layout: hGrid" (echo \
" ____________ \n" \
" | | | | \n" \
" |___|___|___| \n" \
" | | | | \n" \
" |___|___|___| " )
else if [ $layout = "rgrid" ]
vgrid
notify-send -t 1000 "Layout: vGrid" (echo \
" ____________ \n" \
" |_____|_____| \n" \
" |_____|_____| \n" \
" |_____|_____| " )
else if [ $layout = "tiled" ]
notify-send -t 1000 "Layout: Tiled" (echo \
" ______________ \n" \
" | | | \n" \
" | |____| \n" \
" | | | | \n" \
" |________|__|_| " )
end

View file

@ -0,0 +1,9 @@
#!/usr/bin/fish
if ps -a | grep lemonbar
pkill lemonbar
end
sleep .1 &&
~/.config/lemonbar/lemonbar.fish | lemonbar -pb -f "BitstreamVeraSansMono:size=12" -B "#343D46" -F "#CDD3DE" &
sleep .1 &&
xdo above -t (xdo id -n root) (xdo id -n lemonbar)

View file

@ -0,0 +1 @@
osascript -e 'display notification "done!" with title "Notification"'

View file

@ -0,0 +1,3 @@
#!/bin/bash
git fetch --all -p; git branch -vv | grep ": gone]" | awk '{ print $1 }' | xargs -r -n 1 git branch -D

View file

@ -0,0 +1,4 @@
#!/usr/bin/fish
if ps -aux | grep picom | grep -v grep
pkill picom
end

View file

@ -0,0 +1,87 @@
#!/usr/bin/python3
import sys
import requests
import json
from termcolor import colored
# sample request:
# [
# {
# "_id": "629672ecb982f4a1be3a7dd6",
# "device": "xDrip-DexcomG5",
# "date": 1654026986232,
# "dateString": "2022-05-31T19:56:26.232Z",
# "sgv": 185,
# "delta": 0.996,
# "direction": "Flat",
# "type": "sgv",
# "filtered": 0,
# "unfiltered": 0,
# "rssi": 100,
# "noise": 1,
# "sysTime": "2022-05-31T19:56:26.232Z",
# "utcOffset": -240,
# "mills": 1654026986232
# }
# ]
tmux = '--tmux' in sys.argv
lemonbar = '--lb' in sys.argv
down = '\u2193' # ↓
falling = '\u2798' # ➘
flat = '\u2192' # →
rising = '\u279a' # ➚
up = '\u2191' # ↑
url = 'http://blood.dump.town'
options = '/api/v1/entries.json?count=1&token=phone-7631d7eebc79825b'
try:
res = requests.get(url + options)
except:
sys.exit()
sugar = res.json()[0]
delta = sugar['delta']
sgv = sugar['sgv']
direction = sugar['direction']
if delta < -10:
arrow = down
if delta >= -10 and delta < -1:
arrow = falling
if delta >= -1 and delta <= 1:
arrow = flat
if delta > 1 and delta <= 10:
arrow = rising
if delta > 10:
arrow = up
if (sgv >= 225 or sgv <= 80):
color = 'red'
elif ((sgv >= 180 and sgv <= 225)
or (sgv <= 100 and sgv >= 80)):
color = 'yellow'
else:
color = 'green'
if tmux:
print(f'#[bg={color}] ' +
str(round(sugar['sgv'], 1)) + ' ' +
arrow + ' ' +
'(' + str(delta) + ')'
)
elif lemonbar:
print(str(round(sugar['sgv'], 1)) + ' ' +
arrow + ' ' +
'(' + str(delta) + ')'
)
else:
print(colored(str(sugar['sgv']) +
' ' + arrow + ' ' +
'(' + str(delta) + ')',
color))

View file

@ -0,0 +1,6 @@
#!/usr/bin/fish
set theme (flavours list | tr ' ' '\n' | dmenu)
flavours apply $theme &&
eval ~/.config/base16-shell/scripts/base16-$theme.sh

View file

@ -0,0 +1,11 @@
#!/usr/bin/fish
if ps -aux | grep picom | grep -v grep
pkill picom
end
sleep 0.2
picom \
--conf /dev/null \
-i 0.8 \
--active-opacity 1.0 \
--focus-exclude "x = 0 && y = 0 && override_redirect = true" &