color-hash.ksh: small improvements
Don't set color and return the index instead. This allows also using it for background. Sprinkle a couple of '-nr --' for 'print' calls. Add the fnv1 variant.
This commit is contained in:
parent
0d7fd8f76a
commit
19049d2472
3 changed files with 69 additions and 37 deletions
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# env
|
||||
# Written in 2022 by Lucas
|
||||
# Written in 2022-2023 by Lucas
|
||||
# CC0 1.0 Universal/Public domain - No rights reserved
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all
|
||||
|
@ -12,52 +12,70 @@
|
|||
|
||||
usage()
|
||||
{
|
||||
printf "Usage: %s [targetdpi]\n" "${0##*/}" >&2
|
||||
printf "Usage: %s [-n] [targetdpi]\n" "${0##*/}" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
err()
|
||||
{
|
||||
printf "%s: %s\n" "${0##*/}" "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
show=false
|
||||
while getopts n flag; do
|
||||
case $flag in
|
||||
n) show=true ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
if [ $# -gt 1 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
FACESIZES="10.5 6.0 8.0 9.0 10.5 12.0 18.0"
|
||||
BASEDPI=96
|
||||
FACESIZES="8.0 4.0 6.0 7.0 8.0 9.0 10.0 12.0"
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
targetdpi=$1
|
||||
elif command -v xdpyinfo >/dev/null 2>&1; then
|
||||
targetdpi=$(xdpyinfo | grep '^ resolution:' | {
|
||||
min=
|
||||
while read -r line; do
|
||||
set -- $line
|
||||
dpi_x=${2%%x*}
|
||||
dpi_y=${2##*x}
|
||||
dpi_sum=$(( $dpi_x + $dpi_y ))
|
||||
if [ -z "$min" ]; then
|
||||
min=$dpi_sum
|
||||
else
|
||||
min=$(( $dpi_sum < $min ? $dpi_sum : $dpi ))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$min" ]; then
|
||||
echo "$min / 2" | bc -l
|
||||
basedpi=$(xdpyinfo | grep '^ resolution:' | {
|
||||
min=
|
||||
while read -r line; do
|
||||
set -- $line
|
||||
dpi_x=${2%%x*}
|
||||
dpi_y=${2##*x}
|
||||
dpi_sum=$(( $dpi_x + $dpi_y ))
|
||||
if [ -z "$min" ]; then
|
||||
min=$dpi_sum
|
||||
else
|
||||
min=$(( $dpi_sum < $min ? $dpi_sum : $dpi ))
|
||||
fi
|
||||
})
|
||||
done
|
||||
|
||||
if [ -n "$min" ]; then
|
||||
echo "$min / 2" | bc -l
|
||||
fi
|
||||
})
|
||||
|
||||
if [ -z "$basedpi" ]; then
|
||||
err "Can't find DPI"
|
||||
fi
|
||||
: ${targetdpi:=96}
|
||||
|
||||
targetdpi=${1:-96}
|
||||
|
||||
for facesize in $FACESIZES; do
|
||||
echo "$BASEDPI * $facesize / $targetdpi"
|
||||
echo "$basedpi * $facesize / $targetdpi"
|
||||
done | bc -l | {
|
||||
i=0
|
||||
printf "Xft.dpi:\t%.1f\n" "$targetdpi"
|
||||
while read -r v; do
|
||||
if [ $i -eq 0 ]; then
|
||||
printf "XTerm.VT100.faceSize:\t%.1f\n" "$v"
|
||||
printf "XTerm.VT100.faceSize:\t%f\n" "$v"
|
||||
else
|
||||
printf "XTerm.VT100.faceSize%d:\t%.1f\n" $i "$v"
|
||||
printf "XTerm.VT100.faceSize%d:\t%f\n" $i "$v"
|
||||
fi
|
||||
i=$(($i + 1))
|
||||
done
|
||||
} | xrdb -merge
|
||||
} | if $show; then
|
||||
cat
|
||||
else
|
||||
xrdb -merge
|
||||
fi
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue