https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605
It's already too complex, and will get more complex in future, split it out. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/605