[PATCH v2] Add configuration option for no input device.
Peter Hutterer
peter.hutterer at who-t.net
Thu Oct 20 21:56:35 UTC 2016
On Wed, Oct 19, 2016 at 08:10:03PM -0500, Daniel Díaz 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:
> [core]
> require-input=true
>
> 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.diaz at linaro.org>
> ---
> v2: Try different approach
>
> compositor/main.c | 5 +++++
> libweston/compositor.h | 4 ++++
> libweston/libinput-seat.c | 6 ++++++
> man/weston.ini.man | 5 +++++
> weston.ini.in | 1 +
> 5 files changed, 21 insertions(+)
>
> diff --git a/compositor/main.c b/compositor/main.c
> index 8028ec3..c42b901 100644
> --- a/compositor/main.c
> +++ b/compositor/main.c
> @@ -1738,6 +1738,7 @@ int main(int argc, char *argv[])
> struct wl_listener primary_client_destroyed;
> struct weston_seat *seat;
> struct wet_compositor user_data;
> + bool require_input;
>
> const struct weston_option core_options[] = {
> { WESTON_OPTION_STRING, "backend", 'B', &backend },
> @@ -1822,6 +1823,10 @@ int main(int argc, char *argv[])
> if (weston_compositor_init_config(ec, config) < 0)
> goto out;
>
> + weston_config_section_get_bool(section, "require-input",
> + &require_input, true);
> + ec->require_input = require_input;
> +
> if (load_backend(ec, backend, &argc, argv, config) < 0) {
> weston_log("fatal: failed to create compositor backend\n");
> goto out;
> diff --git a/libweston/compositor.h b/libweston/compositor.h
> index 3e486d5..e00d285 100644
> --- a/libweston/compositor.h
> +++ b/libweston/compositor.h
> @@ -830,6 +830,10 @@ struct weston_compositor {
>
> void *user_data;
> void (*exit)(struct weston_compositor *c);
> +
> + /* Whether to let the compositor run without any input device. */
> + bool require_input;
> +
> };
>
> struct weston_buffer {
> diff --git a/libweston/libinput-seat.c b/libweston/libinput-seat.c
> index 78a5fc4..5782462 100644
> --- a/libweston/libinput-seat.c
> +++ b/libweston/libinput-seat.c
> @@ -259,6 +259,12 @@ udev_input_enable(struct udev_input *input)
> devices_found = 1;
> }
>
> + if (devices_found == 0 && !c->require_input) {
> + weston_log("warning: no input devices found, but none required "
> + "as per configuration.\n");
> + return 1;
did you mean to return 1 here instead of 0? 0 signals success, I think you
should use the same here.
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net> otherwise
Cheers,
Peter
> + }
> +
> if (devices_found == 0) {
> weston_log(
> "warning: no input devices on entering Weston. "
> diff --git a/man/weston.ini.man b/man/weston.ini.man
> index 7aa7810..2eac098 100644
> --- a/man/weston.ini.man
> +++ b/man/weston.ini.man
> @@ -168,6 +168,11 @@ time, the one specified in the command-line will be used. On the other
> hand, if none of these sets the value, default idle timeout will be
> set to 300 seconds.
> .RS
> +.PP
> +.RE
> +.TP 7
> +.BI "require-input=" true
> +require an input device for launch
>
> .SH "LIBINPUT SECTION"
> The
> diff --git a/weston.ini.in b/weston.ini.in
> index 14a4c0c..d837fb5 100644
> --- a/weston.ini.in
> +++ b/weston.ini.in
> @@ -2,6 +2,7 @@
> #modules=xwayland.so,cms-colord.so
> #shell=desktop-shell.so
> #gbm-format=xrgb2101010
> +#require-input=true
>
> [shell]
> background-image=/usr/share/backgrounds/gnome/Aqua.jpg
> --
> 1.9.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
More information about the wayland-devel
mailing list