#!/bin/sh

# Set system color scheme to light

# requires neovim-remote and a custom function `LightTheme` that changes the
# vim color scheme to a light one
update_vim() {
	instances=$(nvr --serverlist)
	for instance in $instances; do
		nvr -s --nostart --servername $instance \
			--remote-send "<Esc>:call LightTheme()<CR>" &
	done
}

# Set light mode bg
# $HOME/.config/scheme/feh-light-bg &

# Set light mode lockscreen background, you will need your lockscreen background
# to point to `$HOME/.config/scheme/lockscreen-bg`
# ln -sf $HOME/.config/scheme/lockscreen-light-bg\
# 	$HOME/.config/scheme/lockscreen-bg

# Update file flag. This file allows the scripts and other programs to keep
# track in which color scheme the system is currenlty in.
[ ! -d $HOME/.config/scheme ] && mkdir $HOME/.config/scheme &
rm -rf $HOME/.config/scheme/dark ||: &
touch $HOME/.config/scheme/light &

# Set gnome applications to light scheme
gsettings set org.gnome.desktop.interface color-scheme prefer-light &

# Requires st patched
pidof st | xargs kill -USR2 > /dev/null 2>&1 &

# requires a theme named default-light in kitty schemes folder
kitty +kitten themes --reload-in=all default-light &

update_vim &

# gtk and kde config files
gtk_conf="$HOME/.config/gtk-3.0/settings.ini"
kde_conf="$HOME/.config/qt5ct/qt5ct.conf"

sed -i 's/^gtk-theme-name=Adwaita-dark$/gtk-theme-name=Adwaita/' "$gtk_conf" &
sed -i \
	's/^gtk-icon-theme-name=Papirus-Dark$/gtk-icon-theme-name=Papirus-Light/' \
	"$gtk_conf" &

sed -i 's/^icon_theme=Papirus-Dark$/icon_theme=Papirus-Light/' $kde_conf &
sed -i 's/^style=Adwaita-Dark$/style=Adwaita/' $kde_conf &
perl -i -0 -pe\
	's/(?<=\[Colors:View\])([\s\S]*?\K)BackgroundNormal=([\s\S]*?)(?=\n)/BackgroundNormal=#FFFFFF/gm'\
	"$HOME/.config/kdeglobals" &

# Requires xsettingsd
perl -i -pe 's/(?<=Net\/ThemeName ")Adwaita-dark(?=")/Adwaita/'\
	"$HOME/.config/xsettingsd/xsettingsd.conf"
kill -HUP $(pidof xsettingsd)

wait
