Well, the SDL migration is only partway as it should be, the code is still using the old-style way of using software surfaces instead of hardware textures. But I think graphics performance really is not a too big concern here
Getting it to compile and run on linux was actually the easy part, getting it work also on windows was much more tricky. And the older mingw compiler I'm using in my VirtualBox is the main reason why this is still stuck on C++14 instead of 17.
I've cherry-picked some of the small and easy changes over into my master branch. For the fullscreen change, I'm not so sure if this is the right approach. Right now, you are unconditionally ignoring (and overwriting) the settings the user has specified for the theme file. There could be situations where a user has changed a theme file (which is a valid use case e.g. if you want to adjust which columns are shown in the different overview tables for your tastes), and saved that file under another name, so that an update (i.e. unzip over the same folder) does not overwrite the file. Now, I don't know if anybody is actually making use of this feature, but I'd like to avoid breaking a valid use case.
Of course, the crux of the problem is that the theme files are currently mixing the actual handling of theming with handling of different resolutions.
I'm not really sure what the best way of fixing this is, though (aside from fixing the entire mess that is the UI code). In full-screen mode, matching the resolution to the desktop resolution is definitely a good idea.
Btw, I think the forum here isn't really that great in terms of readability, could you maybe enable issues in your repo, then I could write some comments that can include markdown