elenapan/Scripts/wally

71 lines
No EOL
1.9 KiB
Bash
Executable file

#!/bin/bash
# Requires wal or pywal (github)
# Run like this
# wally /path/to/wallpaper/or/directory
# examples:
# wally ~/Pictures/Wallpapers
# wally .
# wally ~/Pictures/Wallpapers/pape.jpg
# Arguments checking
if [ $# == 0 ]; then
echo "> No path to wallpaper or directory specified :("
exit 0;
fi
# Declare arrays
declare -a color
declare -a XCOLOR_OLD
declare -a XCOLOR_NEW
# Grab old Xresources colors
for (( i = 0; i < 8; i++ )); do
color[$i]="$(echo color$i)"
XCOLOR_OLD[$i]="$(cat ~/.Xresources | grep -m 1 ${color[$i]} | awk '{print $2}')"
done
# Call wal to generate new colors
ARG=$1
echo "> Calling wal at $ARG... toot toot..."
wal -i $ARG
echo "> New colorscheme generated!"
# Apply new colors to Xresources
echo "> Setting .Xresources..."
cp ~/.wally/Xresources-clean ~/.wally/Xresources-new
cat ~/.cache/wal/colors.xresources >> ~/.wally/Xresources-new
cp ~/.wally/Xresources-new ~/.Xresources
reloadXr
echo "> New .Xresources set!"
# Grab new Xresources colors
for (( i = 0; i < 8; i++ )); do
XCOLOR_NEW[$i]="$(cat ~/.Xresources | grep -m 1 ${color[$i]} | awk '{print $2}')"
done
# Replace colors to all linked files in wally's folder
for (( i = 0; i < 8; i++ )); do
sed -i --follow-symlinks "s@${XCOLOR_OLD[$i]}@${XCOLOR_NEW[$i]}@gI" ~/.wally/links/*
done
# Restart tint2 to reload config file
# The grep is to supress tint2 output
# (doesn't work very well because tint2 is run in the background and can bypass this)
tint2restart | grep shutup! &
echo "> tint2 has restarted!"
# Reconfigure openbox to reload theme
# Template: ~/.local/share/themes/thebox/openbox-3/themerc
openbox --reconfigure
echo "> Openbox is reconfigured!"
# Copy new wallpaper path to wally's directory
cp ~/.cache/wal/wal ~/.wally/path_to_wallpaper
WALLPAPER="$(cat ~/.wally/path_to_wallpaper)"
# Display new colors with a color script
# (other good scripts: spectrum, colortest)
~/Scripts/Color/colortest
echo "> Current wallpaper: $WALLPAPER"
echo "> All done :)"