120 lines
3.6 KiB
Bash
Executable File
120 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Wrapper for nitrogen, which uses feh but save config to nitrogen save file
|
|
# needed for nitrogen by feh replacement
|
|
source ~/.config/colorizer/colorizer.conf
|
|
|
|
NITROGEN_FILE="$HOME/.config/nitrogen/bg-saved.cfg"
|
|
|
|
if [[ "$XDG_SESSION_TYPE" == "wayland" ]]; then
|
|
mb-wall "${2}"
|
|
exit 0
|
|
fi
|
|
|
|
set -euo pipefail
|
|
|
|
if [[ "$1" == "default" ]];then
|
|
feh --bg-fill /usr/share/backgrounds/marek-piwnicki-FgagFhxW4Sc-unsplash.jpg
|
|
sd "file=.*$" "file=/usr/share/backgrounds/marek-piwnicki-FgagFhxW4Sc-unsplash.jpg" "$NITROGEN_FILE"
|
|
else
|
|
# jeśli restore to tylo przywróć i przerwij
|
|
if [[ "${1:-}" == "--restore" ]]; then
|
|
wp="$(awk -F '=' '/file/{print $2}' "$HOME/.config/nitrogen/bg-saved.cfg"|tail -1)"
|
|
feh --bg-fill ${wp}
|
|
exit $?
|
|
fi
|
|
|
|
if [[ "$wall2themes" == "yes" ]];then
|
|
notify-send.sh -t 5000 -i ~/.config/mabox/wpicon_wide.png --replace-file=/tmp/colorize_notid "Mabox Auto theming in progress..." "\n\nPlease wait... a few seconds...\n\n"
|
|
fi
|
|
ARGS="$*"
|
|
#notify-send.sh "All ARGS" "\n\n$ARGS"
|
|
|
|
# TU translacja opcji z nitrogenowych na opcje feh
|
|
# NITROGEN | FEH |
|
|
# --set-centered | --bg-center |
|
|
#
|
|
# REPLACE ARGS
|
|
|
|
ARGS="${ARGS/ --save/}"
|
|
ARGS="${ARGS/--set-centered/--bg-center}"
|
|
ARGS="${ARGS/--set-scaled/--bg-scale}"
|
|
ARGS="${ARGS/--set-tiled/--bg-tile}"
|
|
ARGS="${ARGS/--set-zoom-fill/--bg-fill}"
|
|
wallp="${ARGS##* }"
|
|
|
|
if [[ -f "${wallp}" ]];then
|
|
feh ${ARGS}
|
|
sd "file=.*$" "file=${wallp}" "$NITROGEN_FILE"
|
|
fi
|
|
fi
|
|
|
|
readonly bg_path="$(awk -F '=' '/file/{print $2}' "$HOME/.config/nitrogen/bg-saved.cfg"|tail -1)"
|
|
|
|
dbus-send \
|
|
--print-reply \
|
|
--system \
|
|
--dest=org.freedesktop.Accounts \
|
|
/org/freedesktop/Accounts/User$(id -u) \
|
|
org.freedesktop.DBus.Properties.Set \
|
|
string:org.freedesktop.DisplayManager.AccountsService \
|
|
string:BackgroundFile \
|
|
variant:string:"$bg_path"
|
|
|
|
# for Mabox Colorizer
|
|
WALLPALDIR="$HOME/.cache/colorizer/palettes"
|
|
mkdir -p "$WALLPALDIR"
|
|
|
|
read WALLPATH<<< $(grep file "$HOME/.config/nitrogen/bg-saved.cfg" | tail -1| cut -d'=' -f2) # full path to wallpaper file
|
|
|
|
# GENERATE ICON 52x32
|
|
|
|
magick ${WALLPATH} -resize 104x64^ -gravity center -extent 96x56 -bordercolor '#FFFFFF' -border 3 \
|
|
-bordercolor '#222222' -border 1 ~/.config/mabox/wpicon_wide.png
|
|
|
|
# GENERATE ICON SQUARE
|
|
magick ${WALLPATH} -resize 64x64^ -gravity center -extent 58x58 -bordercolor white -border 2 \
|
|
-bordercolor grey60 -border 1 ~/.config/mabox/wpicon.png
|
|
#killall -SIGUSR1 tint2
|
|
tint2-send refresh-execp mb-t2wall
|
|
|
|
# Wallpaper history :)
|
|
echo ${WALLPATH} >> $HOME/.cache/colorizer/.wallpaper_history
|
|
## get filename for palette and thumbnails
|
|
NAME=${WALLPATH////_}
|
|
if [[ "${NAME}" =~ ^_home_.* ]]; then
|
|
n=${#HOME}
|
|
((n++))
|
|
NAME=${NAME:${n}}
|
|
fi
|
|
ext="${WALLPATH##*.}"
|
|
#notify-send.sh "Extension" "$ext"
|
|
|
|
if [ ! -f "$WALLPALDIR/${NAME}.clr" ]; then
|
|
if [ "$ext" == "avif" ];then
|
|
magick ${WALLPATH} -resize 25% /tmp/out.jpg
|
|
magick /tmp/out.jpg -colors 12 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,7)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$NAME.clr"
|
|
else
|
|
magick ${WALLPATH} -resize 25% -colors 12 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,7)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$NAME.clr"
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# GENERATE THUMBNAIL
|
|
THUMBDIR="$HOME/.cache/colorizer/thumbs"
|
|
mkdir -p ${THUMBDIR}
|
|
THUMB="${THUMBDIR}/${NAME}.png"
|
|
if [[ ! -f "$THUMB" ]]; then
|
|
magick ${WALLPATH} -resize 270x150^ -gravity center -extent 266x146 -bordercolor '#DDDDDD' -border 2 ${THUMB}
|
|
fi
|
|
|
|
|
|
if [[ "$1" != "default" ]];then
|
|
# AUTOTHEMING - generate themes after wallpaper is changed
|
|
|
|
if [[ "$wall2themes" == "yes" ]];then
|
|
w2theme colorize
|
|
fi
|
|
fi
|