On Mon, Oct 17, 2016 at 04:37:37PM -0500, Daniel Diaz wrote: > As it has been discussed in the past [1], running Weston > without any input device at launch might be beneficial for > some use cases. > > Certainly, it's best for the vast majority of users (and > the project) to require an input device to be present, as > to avoid frustration and hassle, but for those brave souls > that so prefer, this patch lets them run without any input > device at all. > > This introduces a simple configuration in weston.ini: > [libinput] > require_input=true
I don't think you need a "libinput" section here, this isn't specific to libinput and a compositor decision of whether to proceed or not. > > True is the default, so no behavioral change is introduced. > > [1] > https://lists.freedesktop.org/archives/wayland-devel/2015-November/025193.html > > Signed-off-by: Daniel Díaz <daniel.d...@linaro.org> > --- > libweston/compositor-drm.c | 11 ++++++++++- > libweston/libinput-seat.c | 8 +++++++- > man/weston.ini.man | 3 +++ > 3 files changed, 20 insertions(+), 2 deletions(-) > > diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c > index f61e3d9..86cfa67 100644 > --- a/libweston/compositor-drm.c > +++ b/libweston/compositor-drm.c > @@ -3156,6 +3156,8 @@ drm_backend_create(struct weston_compositor *compositor, > const char *path; > const char *seat_id = default_seat; > int ret; > + struct weston_config_section *s; > + int require_input; > > weston_log("initializing drm backend\n"); > > @@ -3236,11 +3238,18 @@ drm_backend_create(struct weston_compositor > *compositor, > wl_list_init(&b->sprite_list); > create_sprites(b); > > + s = weston_config_get_section(compositor->config, > + "libinput", NULL, NULL); > + weston_config_section_get_bool(s, "require_input", > + &require_input, 1); > + > if (udev_input_init(&b->input, > compositor, b->udev, seat_id, > config->configure_device) < 0) { > weston_log("failed to create input devices\n"); > - goto err_sprite; > + if (require_input == 1) { > + goto err_sprite; > + } indentation, but aside from that: you're not differing between an actual error (input init failed, that's a problem) and the case where there are no input devices. I understand why the latter may be interesting, I don't think you should paper over the former. Cheers, Peter > } > > if (create_outputs(b, config->connector, drm_device) < 0) { > diff --git a/libweston/libinput-seat.c b/libweston/libinput-seat.c > index 78a5fc4..db3ae82 100644 > --- a/libweston/libinput-seat.c > +++ b/libweston/libinput-seat.c > @@ -232,6 +232,8 @@ udev_input_enable(struct udev_input *input) > int fd; > struct udev_seat *seat; > int devices_found = 0; > + struct weston_config_section *s; > + int require_input; > > loop = wl_display_get_event_loop(c->wl_display); > fd = libinput_get_fd(input->libinput); > @@ -259,7 +261,11 @@ udev_input_enable(struct udev_input *input) > devices_found = 1; > } > > - if (devices_found == 0) { > + s = weston_config_get_section(c->config, "libinput", NULL, NULL); > + weston_config_section_get_bool(s, "require_input", > + &require_input, 1); > + > + if (devices_found == 0 && require_input == 1) { > weston_log( > "warning: no input devices on entering Weston. " > "Possible causes:\n" > diff --git a/man/weston.ini.man b/man/weston.ini.man > index 7aa7810..6e860d2 100644 > --- a/man/weston.ini.man > +++ b/man/weston.ini.man > @@ -179,6 +179,9 @@ Available configuration are: > .TP 7 > .BI "enable_tap=" true > enables tap to click on touchpad devices > +.TP 7 > +.BI "require_input=" true > +require an input device for launch > .RS > .PP > > -- > 1.9.1 > _______________________________________________ > 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