Gallagher’s theorem describes the multiplicative diophantine approximation rate of a typical vector. We establish a fully inhomogeneous version of Gallagher’s theorem, a diophantine fibre refinement, and a sharp and unexpected threshold for Liouville fibres. Along the way, we prove an inhomogeneous version of the Duffin–Schaeffer conjecture for a class of nonmonotonic approximation functions.