I have decided to start this thread as a way to keep together all the information regarding this excellent theme for OpenWrt along with a conversation about its issues and how to fix them. The original developer @jerryk maintains the official repo of this theme, a set of two packages that are not yet available in the OpenWrt package database
The theme is really pleasant to the eye, as you can see here:
It has been carefully curated to look great both on PC:
And on mobile browsers:
But the installation process is tricky and still needs some work. While it is fixed by the developer, I will try to summarize in this OP the important issues and how to overcome them in order to have a beautiful Argon theme up and running.
There are two main issues:
- The config package for Argon is not fully updated to the new opkg, and the library required to maintain backward compatibility is not included in the dependencies in the config package.
- The buggy CSSTidy module in the default Luci breaks some portions of the CSS files of this theme, causing undesired visual artifacts when the Argon packages are baked into the firmware. The CSSTidy module simplifies and reduces the size of the CSS files of any theme or additional page. In Argon, CSSTidy reduces these files from 158 KB to 82 KB. However, CSSTidy is buggy and, more often than not, breaks some pages.
And there are three solutions to them:
- The straightforward solution would be to work the code to fix these issues, the same way other packages like bootstrap had to be modified to be compatible with CSSTidy. But that is nothing that you as a user can do, unless you can handle lua, CSS, HTML... code and are willing to contribute to the project.
- Apply workarounds to an existing installation without updating the firmware. Easy patch but not good for devices with reduced resources.
- Build a new image — using imagebuilder, or from sources— removing the problems by including all the patches in the firmware image.
INSTALLATION IN A ROUTER
Ensure your router has internet access. Log into its command line interface (CLI) using this command in your PC (replace the IP address if your router has another IP address):
ssh root@192.168.1.1
Once you are logged into your router's CLI type this:
opkg update
opkg install luci-compat
opkg install luci-lib-ipkg
mkdir -p /tmp/okibcn
cd /tmp/okibcn
URL=$(wget -q https://api.github.com/repos/jerrykuku/luci-theme-argon/releases/latest -O - | awk -F \" -v RS="," '/browser_download_url/ && /-argon/ {print $(NF-1)}')
wget $URL -O $(basename $URL)
opkg install $(basename $URL)
rm -rf /tmp/okibcn/*
URL=$(wget -q https://api.github.com/repos/jerrykuku/luci-app-argon-config/releases/latest -O - | awk -F \" -v RS="," '/browser_download_url/ && /-config/ {print $(NF-1)}')
wget $URL -O $(basename $URL)
opkg install $(basename $URL)
cd
rm -rf /tmp/okibcn
You are all set. If you have a session open in your browser, just logout using the LuCI interface. Then log in again to your router using the web interface and go to System > System > Language and Style
and select Argon in the Design
field. Now click on save & apply
button and logout.
If you want to configure the accent color, the light/dark mode and other settings, go to System > Argon config
in the web interface.
This method will not survive a firmware upgrade and you will have to repeat it every time you upgrade your firmware image. To avoid that you can integrate Argon in the images you build. The next two messages in this thread will illustrate how to do it using the OpenWrt imagebuilder, and building the firmware directly from source.