[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