I always have a rc.local script that checks if the theme is installed and installs if it’s not when the router boots.
I had it previously with opkg but I changed to apk just before running owut upgrade. I keep the .ipk files in /etc/custom and now also the .apk files there. They’re saved in a sysupgrade.
Anyway, here’s what I use in /etc/rc.local:
ARGONTHEME="/etc/custom/luci-theme-argon.apk"
ARGONAPP="/etc/custom/luci-app-argon-config.apk"
if [ -f "$ARGONTHEME" ]; then
if [[ -z "$(apk list luci-theme-argon)" ]]; then
logger -p notice -t theme_argon "Argon Theme Not Installed. Installing..."
apk add --allow-untrusted $ARGONTHEME 2>/dev/null
apk add --allow-untrusted $ARGONAPP 2>/dev/null
else
logger -p notice -t theme_argon "Argon Theme already Installed. Proceed..."
fi
fi
Maybe it’s not set up properly, but it works on my two RT3200s and my GF’s Redmi AC2100 and Mi 4A 100M.
Of course, I’ll delete the .ipk files because they’re not needed anymore.
EDIT: I forgot! I have in my owut config (in /etc/config/attendedsysupgrade) to remove luci-theme-argon and luci-app-argon-config every time owut runs:
list remove 'luci-theme-argon'
list remove 'luci-app-argon-config'