The `-d ""` check is false on bash and zsh, but there might be some rare shell out there which treats it as "." or similar, so let's guard against that risk by also verifying that `$HOME` is a non-empty string before we check if it's a directory.
- Now uses `sh`-style single-bracket `[]` POSIX syntax instead of the truly old-school `test` syntax. Both are equivalent and equally portable. In fact, `man test` explains everything that `[]` can do.
- We now symlink the user's autostart file to the uBlue image's own file, and we do it in a backwards-compatible way which replaces the user's current legacy script file (if any). The previous system dumped a permanent file in the user's home-directory which never updated again after that, which meant that OS updates could never fix or improve the autostart scripts in the future. That's now possible, thanks to being a symlink.
- If the user uninstalls uBlue, or switches to a flavor without `yafti`, then the leftover "autostart" symlink will simply be a minor nuisance that only causes some soft, invisible syslog warnings about the "broken symlink", which is an improvement over the previous system which kept a full `.desktop` file that attempted to run a binary and failed to find it.
Notable changes:
- The icon is no longer dependent on "GNOME Terminal" being installed. Will now work on any desktop environment, not just GNOME. We only see this icon in "GNOME Tweaks: Startup Applications" or similar autostart-managers, which is even better reason to use a generic, always-existing icon for the shortcut.
- Now runs the new "autostart.sh" yafti GUI launcher.
- Tells the OS to not spawn a terminal window when running this shell script.
Instead of having to use a restrictive command-line in a ".desktop" file, we are now able to use scripting to create more advanced launchers, or if someone wants to easily switch yafti to something else.