Re: [PATCH v4] Add configuration option for no input device.

2016-10-22 Thread Daniel Stone
On 21 October 2016 at 20:03, 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 
> Reviewed-by: Peter Hutterer 

Reviewed, tested, and pushed - thanks a lot!

To ssh://git.freedesktop.org/git/wayland/weston
   2dae4d0..75b7197  push -> master

Cheers,
Daniel
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH v4] Add configuration option for no input device.

2016-10-21 Thread Daniel Díaz
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 
Reviewed-by: Peter Hutterer 
---
v2: Try different approach
v3: Return 0 on successful init, not 1
v4: Remove a just-introduced warning (bool/int)

 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..080aa61 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;
+   int require_input;
 
const struct weston_option core_options[] = {
{ WESTON_OPTION_STRING, "backend", 'B',  },
@@ -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",
+  _input, true);
+   ec->require_input = require_input;
+
if (load_backend(ec, backend, , 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..8cf5666 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 0;
+   }
+
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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel