#!/usr/bin/env bash
if ! [[ -f /usr/bin/i3lock ]]; then
	notify-send "no i3lock...install i3lock-color"
	exit
fi
# colors
bg_color=22212cbb
red=ff9580ff
cyan=80ffeaff
green=8aff80ff
orange=ffca80ff
selection=454158ff

# greeter config
font="MonoLisa Nerd Font:style=Bold"
greeter_msg="LOCKED"

ff=(
	"Sub-Zero"
	"3D-ASCII"
	"big"
	"small"
	"lean"
	"JS Bracket Letters"
	"Epic"
	"Fender"
	"Slant"
	"lineblocks"
	"Marquee"
	"Avatar"
	"Contrast"
	"amcrazor"
	"Kban"
	"Calvin S"
	"Dr Pepper"
)

fig_font=${ff[RANDOM % ${#ff[@]}]}

make_figlet() {
	figlet -f "$fig_font" "$greeter_msg"
}

font_size=25
font_to_px=$((font_size * 16 / 12))
greeter_h=$(($(make_figlet | wc -l) * font_to_px))
greeter_w=$(($(make_figlet | wc -L) * font_to_px))

greeter_pos="x+w/2-${greeter_w}/4:y+h/2-${greeter_h}/4"

# do the locking

# suspend message display
pkill -u "$USER" -USR1 dunst
sleep 0.1

# lock the screen
i3lock \
	-n \
	--screen 1 \
	\
	--color $bg_color \
	--inside-color ffffff00 \
	--ring-color $green \
	--ringwrong-color $red \
	--ringver-color $cyan \
	--insidewrong-color $bg_color \
	--insidever-color $bg_color \
	--line-uses-ring \
	--separator-color $selection \
	--keyhl-color $cyan \
	--bshl-color $red \
	--wrong-color $red \
	\
	--ind-pos x+w-5-r:y+h-10-r \
	--ring-width 25 \
	--radius 100 \
	--verif-text "" \
	\
	--greeter-text "$(make_figlet)" \
	--greeter-font "${font}" \
	--greeter-size $font_size \
	--greeter-color $cyan \
	--greeter-pos "${greeter_pos}" \
	--greeter-align 1

# resume message display
pkill -u "$USER" -USR2 dunst