dotfiles

Mahdi's dotfiles
git clone git://mahdi.pw/dotfiles.git
Log | Files | Refs | Submodules | README | LICENSE

notify (1857B)


      1 #!/bin/sh
      2 WAIT=5
      3 TEXT=$*
      4 [ "$TEXT" ] || TEXT=$(cat -u -)
      5 
      6 TEXT=$(echo "$TEXT" | fold -s -w 80)
      7 
      8 FONT="JetBrainsMono Nerd Font:pixelsize=12:antialias=true:autohint=true"
      9 WIDTH=$(printf '%s' "$TEXT" | \
     10 	awk 'length>max{max=length}END{print max}')
     11 WIDTH=$((WIDTH*10))
     12 LINES_COUNT=$(echo "$TEXT" | wc -l)
     13 LINES_COUNT=$((LINES_COUNT-1))
     14 HEIGHT=$((LINES_COUNT*5))
     15 
     16 [ $WIDTH -gt 600 ] && WIDTH=600
     17 [ $LINES_COUNT -eq 0 ] && HEIGHT=5
     18 
     19 PADDING=40
     20 
     21 [ $LINES_COUNT -gt 2 ] && PADDING=20
     22 
     23 WIDTH=$((WIDTH+PADDING))
     24 HEIGHT=$((HEIGHT+PADDING))
     25 
     26 WIDTHxHEIGHT=$(xrandr | sed '/*/!d' |awk '{print $1;exit}')
     27 M_WIDTH=${WIDTHxHEIGHT%%x*}
     28 #M_HEIGHT=${WIDTHxHEIGHT##*x}
     29 
     30 N_WIDTH=$((M_WIDTH-WIDTH-PADDING))
     31 N_HEIGHT=$PADDING
     32 
     33 darken_hex(){
     34 	C=${1:-FFFFFF}
     35 	V=${2:-10}
     36 	if [ "$(printf '%s' "$C" | cut -c1-1)" = "#" ]; then
     37 		C=$(printf '%s' "$C" | cut -c2-8)
     38 	else
     39 		C=$1
     40 	fi
     41 	R=$(printf '%s' "$C" | awk '{print substr($0, 0, 2)}')
     42 	G=$(printf '%s' "$C" | awk '{print substr($0, 3, 2)}')
     43 	B=$(printf '%s' "$C" | awk '{print substr($0, 5, 2)}')
     44 	R=$(printf '%d' 0x"$R")
     45 	G=$(printf '%d' 0x"$G")
     46 	B=$(printf '%d' 0x"$B")
     47 	R=$((R+V))
     48 	G=$((G+V))
     49 	B=$((B+V))
     50 	if [ "$R" -lt 0 ]; then
     51 		R=0
     52 	elif [ "$R" -gt 255 ]; then
     53 		R=255
     54 	fi
     55 	if [ "$G" -lt 0 ]; then
     56 		G=0
     57 	elif [ "$G" -gt 255 ]; then
     58 		G=255
     59 	fi
     60 	if [ "$B" -lt 0 ]; then
     61 		B=0
     62 	elif [ "$B" -gt 255 ]; then
     63 		B=255
     64 	fi
     65 	printf "#%02X%02X%02X\n" "$R" "$G" "$B"
     66 }
     67 
     68 BG_COLOR=$(xrdb -query | awk '/background/{print $2;exit}')
     69 BG_COLOR=$(darken_hex "$BG_COLOR" "-10")
     70 
     71 FG_COLOR=$(xrdb -query | awk '/foreground/{print $2;exit}')
     72 
     73 pkill dzen2
     74 (
     75 echo "^uncollapse()";
     76 printf '%s\n' "$TEXT" | while IFS= read -r NOTIF; do
     77 	echo "$NOTIF"
     78 done
     79 sleep $WAIT
     80 ) | dzen2 \
     81 	-l $LINES_COUNT \
     82 	-ta c \
     83 	-sa c \
     84 	-x $N_WIDTH \
     85 	-y $N_HEIGHT \
     86 	-w $WIDTH \
     87 	-h $HEIGHT \
     88 	-e 'button1=exit' \
     89 	-fn "$FONT" \
     90 	-bg "$BG_COLOR" \
     91 	-fg "$FG_COLOR" &