From a843bd1c1d488f447533a6cdd9e018448e625397 Mon Sep 17 00:00:00 2001 From: root_sti Date: Mon, 25 Sep 2023 23:34:52 -0300 Subject: [PATCH] code improvements --- wms_mimic.sh | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/wms_mimic.sh b/wms_mimic.sh index 115ca83..d33563c 100755 --- a/wms_mimic.sh +++ b/wms_mimic.sh @@ -1,38 +1,32 @@ #!/bin/sh TARGET=$1 # image target -COLORS="/tmp/mimic" # path to the extracted colors file +TMPCOL="/tmp/tmpcol" # path to the extracted colors file WMVAR="$HOME/.config/wms/wms_var" # window manager variables -DAC="a0a0a0" # default active color -DIC="404040" # default inactive color -DBC="#000000" # default background color +NC="3" # number of colors to extract -if [ -f "$TARGET" ]; then # if cw.png exist, extract colors - convert $TARGET -colors 3 -depth 6 -format '%c' histogram:info:- | awk '{print $3}' | cut -c 2-7 > $COLORS +# color extractor +colext() { + convert $TARGET -colors $NC -depth 6 -format '%c' histogram:info:- | awk -v RS="" '{print $11,$7,$3}' | tr -d '#' +} - if [ "$(wc -w < $COLORS)" = "3" ]; then # if two colors turned out - mainc=$(sed '3 p;d' < $COLORS) # main color - secondc=$(sed '2 p;d' < $COLORS) # second color - thirdc=$(sed '1 p;d' < $COLORS) # third color +# if the image file exists, extract the colors and store them temporarily +if [ -f "$TARGET" ]; then + colext > $TMPCOL - # change variables in ~/.wmvar - sed -i "s/^.*\bAC=\b.*$/AC=$mainc/" $WMVAR # new acive color - sed -i "s/^.*\bIC=\b.*$/IC=$secondc/" $WMVAR # new inactive color - sed -i "s/^.*\bBC=\b.*$/BC=$thirdc/" $WMVAR # new background color + # check if N colors have been extracted + if [ "$(wc -w < $TMPCOL)" = "$NC" ]; then + # load extracted colors into variables + read ac ic bc < $TMPCOL + + # overwrite the values in ~/.config/wms/wms_var + sed -i "s/^.*\bAC=\b.*$/AC=$ac/" $WMVAR # new acive color + sed -i "s/^.*\bIC=\b.*$/IC=$ic/" $WMVAR # new inactive color + sed -i "s/^.*\bBC=\b.*$/BC=$bc/" $WMVAR # new background color - else # if no two colors turned out - sed -i "s/^.*\bAC=\b.*$/AC=$DAC/" $WMVAR # default acive color - sed -i "s/^.*\bIC=\b.*$/IC=$DIC/" $WMVAR # default inactive color - sed -i "s/^.*\bBC=\b.*$/BC=$DBC/" $WMVAR # default background color - + # apply the change + wms_value.sh -d + wms_mainrole.sh -t fi - - cp .config/wms/wms_var /tmp/wms_var; # copy wms_var file into /tmp - wms_mainrole.sh -t # make it happen - -else # if image target not exist - exit 0 # leave without change - -fi - +fi