diff --git a/config.def.h b/config.def.h
index c1ad7d6..2c11fd3 100644
--- a/config.def.h
+++ b/config.def.h
@@ -44,6 +44,7 @@ static const struct xkb_rule_names xkb_rules = {
 
 /* Trackpad */
 int tap_to_click = 1;
+int natural_scrolling = 1;
 
 static const int repeat_rate = 25;
 static const int repeat_delay = 600;
diff --git a/dwl.c b/dwl.c
index 2907c5f..188639e 100644
--- a/dwl.c
+++ b/dwl.c
@@ -974,8 +974,13 @@ createpointer(struct wlr_input_device *device)
 {
 	struct libinput_device *libinput_device =  (struct libinput_device*)
 			wlr_libinput_get_device_handle(device);
+
 	if (tap_to_click && libinput_device_config_tap_get_finger_count(libinput_device))
 		libinput_device_config_tap_set_enabled(libinput_device, LIBINPUT_CONFIG_TAP_ENABLED);
+
+	if (libinput_device_config_scroll_has_natural_scroll(libinput_device))
+		libinput_device_config_scroll_set_natural_scroll_enabled(libinput_device, natural_scrolling);
+
 	/* We don't do anything special with pointers. All of our pointer handling
 	 * is proxied through wlr_cursor. On another compositor, you might take this
 	 * opportunity to do libinput configuration on the device to set