How do I add a custom hook to any hvPlot or HoloViews plot?

I would like my hvPlot and HoloView plots to always autohide the toolbar and reset zoom on double click.

I can achieve this manually

import hvplot.pandas
from bokeh.sampledata.autompg import autompg_clean as df

from bokeh.events import DoubleTap
from bokeh.models import CustomJS


def hook(plot, element):
    plot = plot.handles["plot"]
    plot.toolbar.autohide = True
    plot.js_on_event(DoubleTap, CustomJS(args=dict(p=plot), code="p.reset.emit()"))

df.hvplot.bivariate("accel", "mpg", cut=False).opts(hooks=[hook]).opts(active_tools=["box_zoom"])

But how do I configure hvPlot and HoloViews to always automatically apply these .opts for the bokeh backend?

I’ve tried

from holoviews import opts
opts.defaults(active_tools=["box_zoom"])
opts.defaults(hooks=[hook])

But it does not work.

The below seems to do it for the specific plot

from holoviews import opts
opts.defaults(opts.Bivariate(active_tools=["box_zoom"]))
opts.defaults(opts.Bivariate(hooks=[hook]))

But is there a nice way to apply this to all plots. And to make sure this hook is applied even though the user applies some other hooks?