Instead of getting the primary monitor from xrandr we can use the output
of polybars `--list-monitors` that we get already. This results in a
slight performance boost.
Replace all occurrences of [ with [[ in bash and zsh scripts and
configs.
Performance wise it makes sense to use the builtin instead of calling an
external command also when from a functionality stand point `test` would
suffice.
Instead of hardcoding the paths of all the scripts, use env variables
that are set in launch.sh. This way the config also works with
XDG_CONFIG_HOME not set to ~/.config.
Sadly polybar only accepts references that stand on their own.
(So something like ${env:XDG_CONFIG_HOME:~/.config}/polybar/<script>
does not work.) Hence the mess with the associative array and the
variables for every module.
When restarting i3 check for connected second monitor: scale it and
restart polybar if there is one.
Put polybar tray on the main monitor.
Do not kill polybar and relaunch it when restarting i3, but restart it
using ipc (much faster).