#!/bin/bash # # Wrapper for nitrogen, so LightDM wallpaper is synced. # # Copyright (C) 2021 Rafael Cavalcanti - rafaelc.org # Licensed under GPLv3 set -euo pipefail /usr/bin/nitrogen "$@" if [[ "${1:-}" == "--restore" ]]; then exit $? fi readonly bg_path="$(awk -F '=' '/file/{print $2}' "$HOME/.config/nitrogen/bg-saved.cfg")" 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 # 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 convert ${WALLPATH} -resize 25% -colors 16 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,3) substr($3,6,2) substr($3,10,2)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$NAME.clr" else convert ${WALLPATH} -resize 25% -colors 16 -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 convert ${WALLPATH} -resize 270x150^ -gravity center -extent 270x150 ${THUMB} fi # GENERATE ICON convert ${WALLPATH} -resize 52x52^ -gravity center -extent 52x52 -bordercolor white -border 5 \ -bordercolor grey60 -border 1 ~/.config/mabox/wpicon.png killall -SIGUSR1 tint2 # auto generate themes #if command -v w2theme &> /dev/null #then #source ~/.config/colorizer/colorizer.conf # if [[ "$wall2themes" == "yes" ]];then # w2theme colorize # fi #fi