How GNOME Shell extensions can extend desktop functionality