[PATCH v4 2/6] libweston: fbdev: support the --seat option, (and XDG_SEAT variable)
nerdopolis
bluescreen_avenger at verizon.net
Sat Nov 18 18:41:30 UTC 2017
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 61bda282..f88608cd 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -573,6 +573,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
@@ -1444,6 +1445,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 4b3605cf..2756d587 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 as root\n");
@@ -779,6 +786,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
More information about the wayland-devel
mailing list