Tucking seasonal decorations into the lamps bracketing the garage door would be much easier if the rubber buttons retaining the glass panes were squishy cylinders, rather than fossilized pebbles:

The five tidy buttons on the right are black TPU, hot off the MK4’s printbed:

The flange allows for some, shall we say, dimensional variation in the installation:

They’re just a tube atop a cylinder:
nx = ceil(sqrt(NumButtons));
ny = nx;
union()
for (nx = [0:nx-1], ny = [0:ny-1])
right(nx*(FlangeOD + Gap))
back(ny*(FlangeOD + Gap))
render()
union() {
cyl(FlangeHeight,d=FlangeOD,circum=true,anchor=BOTTOM);
tube(ButtonOA.z,od=ButtonOA[OD],id=ScrewOD,circum=true,anchor=BOTTOM);
}
Feel free to set up your own dimensions, in the unlikely event you have lamps in need of similar buttons.
Each of the three lamps has sixteen buttons and, although PrusaSlicer allows you to set the number of instances, its Arrange tool doesn’t make a tidy / compact layout. Doing the layout in OpenSCAD saves a bunch of hassle, with the overall union() turning the array into a single object.
It might not be the best decoration, but it should suffice:

Now, to make critters for the driveway …
Spam comments get trashed, so don’t bother; you’re not as clever as you think. Comment moderation may cause a delay.