Aims: We survey the transmission spectrum of WASP-121 b for line-absorption by metals and molecules at high spectral resolution, and elaborate on existing interpretations of the optical transmission spectrum observed with HST/STIS and WFC3. Methods: We use the cross-correlation technique and direct differential spectroscopy to search for sodium and other neutral and ionised atoms, TiO, VO and SH in high-resolution transit spectra obtained with the HARPS spectrograph. We inject models assuming chemical and hydrostatic equilibrium with varying temperature and composition to enable model comparison, and employ two bootstrap methods to test the robustness of our detections. Results: We detect neutral Mg, Na, Ca, Cr, Fe, Ni and V, which we predict exists in equilibrium with a significant quantity of VO, supporting earlier observations by HST/WFC3. Non-detections of Ti and TiO support the hypothesis that Ti is depleted via a cold-trap mechanism as has been proposed in the literature. Atomic line depths are under-predicted by hydrostatic models by a factor of 1.5 to 8, confirming recent findings that the atmosphere is extended. We predict the existence of significant concentrations of gas-phase TiO$_2$, VO$_2$ and TiS, which could be important absorbers at optical and NIR wavelengths in hot Jupiter atmospheres, but for which accurate line-list data is currently not available. We find no evidence for absorption by SH, and find that inflated atomic lines can plausibly explain the slope of the transmission spectrum observed in the NUV with HST/STIS. The Na D lines are significantly broadened and show a difference in their respective depths of 15 scale heights, which is not expected from isothermal hydrostatic theory.