libweston: set the seat automatically based on the XDG_SEAT environment variable
This will allow the seat to be set by the environment as pam_systemd typically sets the XDG_SEAT variable Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
efdebbc4e8
commit
b16c4ac55b
@ -513,7 +513,7 @@ usage(int error_code)
|
|||||||
#if defined(BUILD_DRM_COMPOSITOR)
|
#if defined(BUILD_DRM_COMPOSITOR)
|
||||||
fprintf(out,
|
fprintf(out,
|
||||||
"Options for drm-backend.so:\n\n"
|
"Options for drm-backend.so:\n\n"
|
||||||
" --seat=SEAT\t\tThe seat that weston should run on\n"
|
" --seat=SEAT\t\tThe seat that weston should run on, instead of the seat defined in XDG_SEAT\n"
|
||||||
" --tty=TTY\t\tThe tty to use\n"
|
" --tty=TTY\t\tThe tty to use\n"
|
||||||
" --drm-device=CARD\tThe DRM device to use, e.g. \"card0\".\n"
|
" --drm-device=CARD\tThe DRM device to use, e.g. \"card0\".\n"
|
||||||
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
||||||
|
@ -6029,8 +6029,16 @@ drm_backend_create(struct weston_compositor *compositor,
|
|||||||
struct udev_device *drm_device;
|
struct udev_device *drm_device;
|
||||||
struct wl_event_loop *loop;
|
struct wl_event_loop *loop;
|
||||||
const char *seat_id = default_seat;
|
const char *seat_id = default_seat;
|
||||||
|
const char *session_seat;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
session_seat = getenv("XDG_SEAT");
|
||||||
|
if (session_seat)
|
||||||
|
seat_id = session_seat;
|
||||||
|
|
||||||
|
if (config->seat_id)
|
||||||
|
seat_id = config->seat_id;
|
||||||
|
|
||||||
weston_log("initializing drm backend\n");
|
weston_log("initializing drm backend\n");
|
||||||
|
|
||||||
b = zalloc(sizeof *b);
|
b = zalloc(sizeof *b);
|
||||||
@ -6062,9 +6070,6 @@ drm_backend_create(struct weston_compositor *compositor,
|
|||||||
if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, &b->gbm_format) < 0)
|
if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, &b->gbm_format) < 0)
|
||||||
goto err_compositor;
|
goto err_compositor;
|
||||||
|
|
||||||
if (config->seat_id)
|
|
||||||
seat_id = config->seat_id;
|
|
||||||
|
|
||||||
/* Check if we run drm-backend using weston-launch */
|
/* Check if we run drm-backend using weston-launch */
|
||||||
compositor->launcher = weston_launcher_connect(compositor, config->tty,
|
compositor->launcher = weston_launcher_connect(compositor, config->tty,
|
||||||
seat_id, true);
|
seat_id, true);
|
||||||
|
@ -106,7 +106,8 @@ struct weston_drm_backend_config {
|
|||||||
|
|
||||||
/** The seat to be used for input and output.
|
/** The seat to be used for input and output.
|
||||||
*
|
*
|
||||||
* If NULL the default "seat0" will be used. The backend will
|
* If seat_id is NULL, the seat is taken from XDG_SEAT environment
|
||||||
|
* variable. If neither is set, "seat0" is used. The backend will
|
||||||
* take ownership of the seat_id pointer and will free it on
|
* take ownership of the seat_id pointer and will free it on
|
||||||
* backend destruction.
|
* backend destruction.
|
||||||
*/
|
*/
|
||||||
|
@ -125,8 +125,8 @@ status. For example, use
|
|||||||
\fB\-\-seat\fR=\fIseatid\fR
|
\fB\-\-seat\fR=\fIseatid\fR
|
||||||
Use graphics and input devices designated for seat
|
Use graphics and input devices designated for seat
|
||||||
.I seatid
|
.I seatid
|
||||||
instead of the default seat
|
instead of the seat defined in the environment variable
|
||||||
.BR seat0 .
|
.BR XDG_SEAT ". If neither is specifed, seat0 will be assumed."
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-tty\fR=\fIx\fR
|
\fB\-\-tty\fR=\fIx\fR
|
||||||
Launch Weston on tty
|
Launch Weston on tty
|
||||||
@ -153,6 +153,9 @@ The file descriptor (integer) where
|
|||||||
.B weston-launch
|
.B weston-launch
|
||||||
is listening. Automatically set by
|
is listening. Automatically set by
|
||||||
.BR weston-launch .
|
.BR weston-launch .
|
||||||
|
.TP
|
||||||
|
.B XDG_SEAT
|
||||||
|
The seat Weston will start on, unless overridden on the command line.
|
||||||
.
|
.
|
||||||
.\" ***************************************************************
|
.\" ***************************************************************
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
Loading…
Reference in New Issue
Block a user