The hms(4) driver works great for both one-finger cursor movement and two-finger scrolling, but there's a slight, yet annoying difference compared to Macbooks regarding what happens when the number of fingers changes. On my FreeBSD laptop, when I scroll with two fingers and then lift one up, the scrolling stops, but the cursor doesn't start moving. I need to lift my other finger up and then touch the touchpad again. Correspondingly, when I'm moving the cursor with a single finger and then put the other finger down, the cursor stops moving, but scrolling never stops. I need to take both fingers off the touchpad first. It's a small difference, but can be quite annoying when you switch between laptops - and also somewhat hard to nail down.
hms knows nothing of two-finger scrolling. It is a driver for mices. It transfers cursor movement, button actions and scroll wheels state. I think that your touchpad is not supported by any driver in native mode and have to use relative mouse emulation mode with mapping of two-finger scrolling to scroll wheel rotation. In that case gestures are processed by touchpad firmware rather than by libinput and you can do nothing with them except writing of driver which utilizes native mode. What model of touchpad do you use?
Hm, you're probably right in that's hardware's fault; I've never used this touchpad under any other operating system so I don't know how it'd behave there. As for the model - this is Latitude 7280; the touchpad claims to be: hms0: <DLL079F:00 044E:120B Mouse> on hidbus0 hms0: 3 buttons and [XYWH] coordinates ID=1