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(-)
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; }; #ifdef __cplusplus -- 2.14.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel