[PATCH v6 2/6] libweston: fbdev: support the --seat option, (and XDG_SEAT variable)

Pekka Paalanen ppaalanen at gmail.com
Tue Jun 12 11:31:59 UTC 2018


On Tue, 23 Jan 2018 22:15:44 -0500
nerdopolis <bluescreen_avenger at verizon.net> wrote:

> This allows the fbdev backend to run on, and use devices from the
> specified seat, similar to the drm backend.
> ---
>  compositor/main.c            |  2 ++
>  libweston/compositor-fbdev.c | 10 +++++++++-
>  libweston/compositor-fbdev.h |  1 +
>  3 files changed, 12 insertions(+), 1 deletion(-)

Hi,

we tend to use "compositor-fbdev:" as the subject prefix instead of
"libweston: fbdev:" for the fbdev-backend. It's in libweston, sure, but
consistency is nice. This comment applies to all of the fbdev patches.

> 
> diff --git a/compositor/main.c b/compositor/main.c
> index 72ae14b9..ecd034b9 100644
> --- a/compositor/main.c
> +++ b/compositor/main.c
> @@ -575,6 +575,7 @@ usage(int error_code)
>  		"Options for fbdev-backend.so:\n\n"
>  		"  --tty=TTY\t\tThe tty to use\n"
>  		"  --device=DEVICE\tThe framebuffer device to use\n"
> +		"  --seat=SEAT\t\tThe seat that weston should run on, instead of the seat defined in XDG_SEAT\n"
>  		"\n");
>  #endif
>  
> @@ -1448,6 +1449,7 @@ load_fbdev_backend(struct weston_compositor *c,
>  	const struct weston_option fbdev_options[] = {
>  		{ WESTON_OPTION_INTEGER, "tty", 0, &config.tty },
>  		{ WESTON_OPTION_STRING, "device", 0, &config.device },
> +		{ WESTON_OPTION_STRING, "seat", 0, &config.seat_id },
>  	};
>  
>  	parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv);
> diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
> index fbab634b..ef571339 100644
> --- a/libweston/compositor-fbdev.c
> +++ b/libweston/compositor-fbdev.c
> @@ -710,6 +710,13 @@ fbdev_backend_create(struct weston_compositor *compositor,
>  {
>  	struct fbdev_backend *backend;
>  	const char *seat_id = default_seat;
> +	const char *session_seat;
> +
> +	session_seat = getenv("XDG_SEAT");
> +	if (session_seat)
> +		seat_id = session_seat;
> +	if (param->seat_id)
> +		seat_id = param->seat_id;
>  
>  	weston_log("initializing fbdev backend\n");
>  
> @@ -734,7 +741,7 @@ fbdev_backend_create(struct weston_compositor *compositor,
>  	wl_signal_add(&compositor->session_signal,
>  		      &backend->session_listener);
>  	compositor->launcher =
> -		weston_launcher_connect(compositor, param->tty, "seat0", false);
> +		weston_launcher_connect(compositor, param->tty, seat_id, false);
>  	if (!compositor->launcher) {
>  		weston_log("fatal: fbdev backend should be run using "
>  			   "weston-launch binary, or your system should "
> @@ -780,6 +787,7 @@ config_init_to_defaults(struct weston_fbdev_backend_config *config)
>  	 * udev, rather than passing a device node in as a parameter. */
>  	config->tty = 0; /* default to current tty */
>  	config->device = "/dev/fb0"; /* default frame buffer */
> +	config->seat_id = NULL;
>  }
>  
>  WL_EXPORT int
> diff --git a/libweston/compositor-fbdev.h b/libweston/compositor-fbdev.h
> index 8b7d900e..ca76a902 100644
> --- a/libweston/compositor-fbdev.h
> +++ b/libweston/compositor-fbdev.h
> @@ -52,6 +52,7 @@ struct weston_fbdev_backend_config {
>  	 */
>  	void (*configure_device)(struct weston_compositor *compositor,
>  				 struct libinput_device *device);
> +	char *seat_id;

The new field is at the end, good. It could use similar documentation
to what the same field for the drm-backend config has.

>  };
>  
>  #ifdef  __cplusplus

The patch looks good otherwise.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180612/af8f1d5c/attachment.sig>


More information about the wayland-devel mailing list