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" &