Categorise arguments to ensure user-specified ones take precedence
over values set by the launcher.
When any positional arg is set, exclude all positional ones from being
set at all, to prevent strange interactions.
This simplifies the launcher's rendering since the widget-based
code is gone, various things get hooked up as a result. Styling
fixes everywhere as well.
Menubar on Linux/Windows needs to be re-added.