Re: [PATCH] [weston, v4] weston.ini: Add natural scroll support to weston.ini This adds support for enabling/disabling natural scrolling via a boolean in weston.ini:
On Sun, Feb 05, 2017 at 07:30:18PM -0500, Jiayi Zhao wrote: > > Hmmm, after using udev_device_has_tag(udev_device, "ID_INPUT_TOUCHPAD"), > I'm getting linking errors. Quick google of this leads to: libraries on the > command line should be after the object files being compiled. > Is this a bug? come to think of it, tags are a bit different. you need udev_device_get_property_value() instead. and you need to make sure that libudev is linked in - that's where your linking errors come from. Cheers, Peter > > On Sun, Feb 5, 2017 at 7:20 PM, Peter Hutterer > wrote: > > > On Sun, Feb 05, 2017 at 07:13:04PM -0500, Jiayi Zhao wrote: > > > How would ID_INPUT_TOUCHPAD work? > > > I have something like udev_device_has_tag(udev_device, > > ID_INPUT_TOUCHPAD) > > > Unfortunately, I'm not sure where this constant is declared and its > > unable > > > to find the tag. :/ > > > > it's a udev property name, so use it as a string, not a #define. > > value is either 1 or 0, so you do need to check for validity. > > > > Cheers, > >Peter > > > > > On Jan 29, 2017 4:42 PM, "Peter Hutterer" > > wrote: > > > > > > > On Fri, Jan 27, 2017 at 09:46:49PM -0500, Jiayi Zhao wrote: > > > > > [libinput] > > > > > natural_scroll=true > > > > > > > > > > CHANGES: > > > > > - libinput_device_config_scroll_has_natural_scroll() is no longer > > > > compared to != 0 > > > > > - added configuration option to weston.ini man page > > > > > > > > > > Signed-off-by: Jiayi Zhao > > > > > --- > > > > > compositor/main.c | 13 + > > > > > man/weston.ini.man | 3 +++ > > > > > weston.ini.in | 1 + > > > > > 3 files changed, 17 insertions(+) > > > > > > > > > > diff --git a/compositor/main.c b/compositor/main.c > > > > > index 4bd6e68..84bb8dd 100644 > > > > > --- a/compositor/main.c > > > > > +++ b/compositor/main.c > > > > > @@ -1133,6 +1133,8 @@ configure_input_device(struct weston_compositor > > > > *compositor, > > > > > struct weston_config *config = wet_get_config(compositor); > > > > > int enable_tap; > > > > > int enable_tap_default; > > > > > + int natural_scroll; > > > > > + int natural_scroll_default; > > > > > > > > > > s = weston_config_get_section(config, > > > > > "libinput", NULL, NULL); > > > > > @@ -1147,6 +1149,17 @@ configure_input_device(struct > > weston_compositor > > > > *compositor, > > > > > libinput_device_config_tap_set_enabled(device, > > > > > enable_tap); > > > > > } > > > > > + > > > > > + if (libinput_device_config_scroll_has_natural_scroll(device)) > > { > > > > > + natural_scroll_default = > > > > > + libinput_device_config_scroll_ > > get_default_natural_ > > > > scroll_enabled( > > > > > + device); > > > > > + weston_config_section_get_bool(s, "natural_scroll", > > > > > + &natural_scroll, > > > > > + > > natural_scroll_default); > > > > > + libinput_device_config_scroll_set_natural_scroll_ > > > > enabled(device, > > > > > + > > natural_scroll); > > > > > + } > > > > > > > > libinput exposes natural scrolling on mice as well and with this code > > > > you're enabling it on any device that has the option. so your mouse > > > > wheels will be upside down too when you enable this. That's probably > > not > > > > what you intended, but if so, prepare for angry emails :) > > > > > > > > there are two options to work around this: > > > > * check the udev device for ID_INPUT_TOUCHPAD > > > > * assume anything that has tapping is a touchpad > > > > > > > > Cheers, > > > >Peter > > > > > > > > > } > > > > > > > > > > static void > > > > > diff --git a/man/weston.ini.man b/man/weston.ini.man > > > > > index 2edb085..62e0f92 100644 > > > > > --- a/man/weston.ini.man > > > > > +++ b/man/weston.ini.man > > > > > @@ -187,6 +187,9 @@ Available configuration are: > > > > > .TP 7 > > > > > .BI "enable_tap=" true > > > > > enables tap to click on touchpad devices > > > > > +.TP 7 > > > > > +.BI "natural_scroll=" true > > > > > +enables natural scrolling on touchpad devices > > > > > .RS > > > > > .PP > > > > > > > > > > diff --git a/weston.ini.in b/weston.ini.in > > > > > index 257c4ec..f957ec6 100644 > > > > > --- a/weston.ini.in > > > > > +++ b/weston.ini.in > > > > > @@ -61,6 +61,7 @@ path=@libexecdir@/weston-keyboard > > > > > > > > > > #[libinput] > > > > > #enable_tap=true > > > > > +#natural_scroll=false > > > > > > > > > > #[touchpad] > > > > > #constant_accel_factor = 50 > > > > > -- > > > > > 2.10.2 > > > > > > > > > > ___ > > > > > wayland-devel mailing list > > > > > wayland-devel@lists.freedesktop.org > > > > > https://lists.freedesktop.org/mailman/listinfo/wayland-devel > > > > > > > > > > > ___ wayland-de
Re: [PATCH] [weston, v4] weston.ini: Add natural scroll support to weston.ini This adds support for enabling/disabling natural scrolling via a boolean in weston.ini:
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: compositor/weston-main.o: undefined reference to symbol 'udev_device_has_tag@@LIBUDEV_183' /usr/lib/libudev.so.1: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[1]: *** [Makefile:4126: weston] Error 1 On Sun, Feb 5, 2017 at 7:30 PM, Jiayi Zhao wrote: > > Hmmm, after using udev_device_has_tag(udev_device, "ID_INPUT_TOUCHPAD"), > I'm getting linking errors. Quick google of this leads to: libraries on > the command line should be after the object files being compiled. > Is this a bug? > > On Sun, Feb 5, 2017 at 7:20 PM, Peter Hutterer > wrote: > >> On Sun, Feb 05, 2017 at 07:13:04PM -0500, Jiayi Zhao wrote: >> > How would ID_INPUT_TOUCHPAD work? >> > I have something like udev_device_has_tag(udev_device, >> ID_INPUT_TOUCHPAD) >> > Unfortunately, I'm not sure where this constant is declared and its >> unable >> > to find the tag. :/ >> >> it's a udev property name, so use it as a string, not a #define. >> value is either 1 or 0, so you do need to check for validity. >> >> Cheers, >>Peter >> >> > On Jan 29, 2017 4:42 PM, "Peter Hutterer" >> wrote: >> > >> > > On Fri, Jan 27, 2017 at 09:46:49PM -0500, Jiayi Zhao wrote: >> > > > [libinput] >> > > > natural_scroll=true >> > > > >> > > > CHANGES: >> > > > - libinput_device_config_scroll_has_natural_scroll() is no longer >> > > compared to != 0 >> > > > - added configuration option to weston.ini man page >> > > > >> > > > Signed-off-by: Jiayi Zhao >> > > > --- >> > > > compositor/main.c | 13 + >> > > > man/weston.ini.man | 3 +++ >> > > > weston.ini.in | 1 + >> > > > 3 files changed, 17 insertions(+) >> > > > >> > > > diff --git a/compositor/main.c b/compositor/main.c >> > > > index 4bd6e68..84bb8dd 100644 >> > > > --- a/compositor/main.c >> > > > +++ b/compositor/main.c >> > > > @@ -1133,6 +1133,8 @@ configure_input_device(struct >> weston_compositor >> > > *compositor, >> > > > struct weston_config *config = wet_get_config(compositor); >> > > > int enable_tap; >> > > > int enable_tap_default; >> > > > + int natural_scroll; >> > > > + int natural_scroll_default; >> > > > >> > > > s = weston_config_get_section(config, >> > > > "libinput", NULL, NULL); >> > > > @@ -1147,6 +1149,17 @@ configure_input_device(struct >> weston_compositor >> > > *compositor, >> > > > libinput_device_config_tap_set_enabled(device, >> > > > enable_tap); >> > > > } >> > > > + >> > > > + if (libinput_device_config_scroll_has_natural_scroll(device)) >> { >> > > > + natural_scroll_default = >> > > > + libinput_device_config_ >> scroll_get_default_natural_ >> > > scroll_enabled( >> > > > + device); >> > > > + weston_config_section_get_bool(s, "natural_scroll", >> > > > + &natural_scroll, >> > > > + >> natural_scroll_default); >> > > > + libinput_device_config_scroll_set_natural_scroll_ >> > > enabled(device, >> > > > + >> natural_scroll); >> > > > + } >> > > >> > > libinput exposes natural scrolling on mice as well and with this code >> > > you're enabling it on any device that has the option. so your mouse >> > > wheels will be upside down too when you enable this. That's probably >> not >> > > what you intended, but if so, prepare for angry emails :) >> > > >> > > there are two options to work around this: >> > > * check the udev device for ID_INPUT_TOUCHPAD >> > > * assume anything that has tapping is a touchpad >> > > >> > > Cheers, >> > >Peter >> > > >> > > > } >> > > > >> > > > static void >> > > > diff --git a/man/weston.ini.man b/man/weston.ini.man >> > > > index 2edb085..62e0f92 100644 >> > > > --- a/man/weston.ini.man >> > > > +++ b/man/weston.ini.man >> > > > @@ -187,6 +187,9 @@ Available configuration are: >> > > > .TP 7 >> > > > .BI "enable_tap=" true >> > > > enables tap to click on touchpad devices >> > > > +.TP 7 >> > > > +.BI "natural_scroll=" true >> > > > +enables natural scrolling on touchpad devices >> > > > .RS >> > > > .PP >> > > > >> > > > diff --git a/weston.ini.in b/weston.ini.in >> > > > index 257c4ec..f957ec6 100644 >> > > > --- a/weston.ini.in >> > > > +++ b/weston.ini.in >> > > > @@ -61,6 +61,7 @@ path=@libexecdir@/weston-keyboard >> > > > >> > > > #[libinput] >> > > > #enable_tap=true >> > > > +#natural_scroll=false >> > > > >> > > > #[touchpad] >> > > > #constant_accel_factor = 50 >> > > > -- >> > > > 2.10.2 >> > > > >> > > > ___ >> > > > wayland-devel mailing list >> > > > wayland-devel@lists.freedesktop.org >> > > > https://lists.freedesktop.org/mailman/listinfo/wayland-devel >> > > > >> > > >> > > ___ wayland-devel mai
Re: [PATCH] [weston, v4] weston.ini: Add natural scroll support to weston.ini This adds support for enabling/disabling natural scrolling via a boolean in weston.ini:
Hmmm, after using udev_device_has_tag(udev_device, "ID_INPUT_TOUCHPAD"), I'm getting linking errors. Quick google of this leads to: libraries on the command line should be after the object files being compiled. Is this a bug? On Sun, Feb 5, 2017 at 7:20 PM, Peter Hutterer wrote: > On Sun, Feb 05, 2017 at 07:13:04PM -0500, Jiayi Zhao wrote: > > How would ID_INPUT_TOUCHPAD work? > > I have something like udev_device_has_tag(udev_device, > ID_INPUT_TOUCHPAD) > > Unfortunately, I'm not sure where this constant is declared and its > unable > > to find the tag. :/ > > it's a udev property name, so use it as a string, not a #define. > value is either 1 or 0, so you do need to check for validity. > > Cheers, >Peter > > > On Jan 29, 2017 4:42 PM, "Peter Hutterer" > wrote: > > > > > On Fri, Jan 27, 2017 at 09:46:49PM -0500, Jiayi Zhao wrote: > > > > [libinput] > > > > natural_scroll=true > > > > > > > > CHANGES: > > > > - libinput_device_config_scroll_has_natural_scroll() is no longer > > > compared to != 0 > > > > - added configuration option to weston.ini man page > > > > > > > > Signed-off-by: Jiayi Zhao > > > > --- > > > > compositor/main.c | 13 + > > > > man/weston.ini.man | 3 +++ > > > > weston.ini.in | 1 + > > > > 3 files changed, 17 insertions(+) > > > > > > > > diff --git a/compositor/main.c b/compositor/main.c > > > > index 4bd6e68..84bb8dd 100644 > > > > --- a/compositor/main.c > > > > +++ b/compositor/main.c > > > > @@ -1133,6 +1133,8 @@ configure_input_device(struct weston_compositor > > > *compositor, > > > > struct weston_config *config = wet_get_config(compositor); > > > > int enable_tap; > > > > int enable_tap_default; > > > > + int natural_scroll; > > > > + int natural_scroll_default; > > > > > > > > s = weston_config_get_section(config, > > > > "libinput", NULL, NULL); > > > > @@ -1147,6 +1149,17 @@ configure_input_device(struct > weston_compositor > > > *compositor, > > > > libinput_device_config_tap_set_enabled(device, > > > > enable_tap); > > > > } > > > > + > > > > + if (libinput_device_config_scroll_has_natural_scroll(device)) > { > > > > + natural_scroll_default = > > > > + libinput_device_config_scroll_ > get_default_natural_ > > > scroll_enabled( > > > > + device); > > > > + weston_config_section_get_bool(s, "natural_scroll", > > > > + &natural_scroll, > > > > + > natural_scroll_default); > > > > + libinput_device_config_scroll_set_natural_scroll_ > > > enabled(device, > > > > + > natural_scroll); > > > > + } > > > > > > libinput exposes natural scrolling on mice as well and with this code > > > you're enabling it on any device that has the option. so your mouse > > > wheels will be upside down too when you enable this. That's probably > not > > > what you intended, but if so, prepare for angry emails :) > > > > > > there are two options to work around this: > > > * check the udev device for ID_INPUT_TOUCHPAD > > > * assume anything that has tapping is a touchpad > > > > > > Cheers, > > >Peter > > > > > > > } > > > > > > > > static void > > > > diff --git a/man/weston.ini.man b/man/weston.ini.man > > > > index 2edb085..62e0f92 100644 > > > > --- a/man/weston.ini.man > > > > +++ b/man/weston.ini.man > > > > @@ -187,6 +187,9 @@ Available configuration are: > > > > .TP 7 > > > > .BI "enable_tap=" true > > > > enables tap to click on touchpad devices > > > > +.TP 7 > > > > +.BI "natural_scroll=" true > > > > +enables natural scrolling on touchpad devices > > > > .RS > > > > .PP > > > > > > > > diff --git a/weston.ini.in b/weston.ini.in > > > > index 257c4ec..f957ec6 100644 > > > > --- a/weston.ini.in > > > > +++ b/weston.ini.in > > > > @@ -61,6 +61,7 @@ path=@libexecdir@/weston-keyboard > > > > > > > > #[libinput] > > > > #enable_tap=true > > > > +#natural_scroll=false > > > > > > > > #[touchpad] > > > > #constant_accel_factor = 50 > > > > -- > > > > 2.10.2 > > > > > > > > ___ > > > > wayland-devel mailing list > > > > wayland-devel@lists.freedesktop.org > > > > https://lists.freedesktop.org/mailman/listinfo/wayland-devel > > > > > > > > ___ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel