From ecd62ea65c180f7151412beb93052889348d2603 Mon Sep 17 00:00:00 2001 From: Maksim Melnikau Date: Wed, 14 Aug 2013 09:21:22 +0300 Subject: [PATCH] add [xwayland] path weston.ini option It sets the path to the xserver to run. Signed-off-by: Maksim Melnikau --- man/weston.ini.man | 7 +++++++ src/xwayland/launcher.c | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/man/weston.ini.man b/man/weston.ini.man index 9c22b3f..79743f0 100644 --- a/man/weston.ini.man +++ b/man/weston.ini.man @@ -77,6 +77,7 @@ The section headers are: .BR "input-method " "Onscreen keyboard input" .BR "keyboard " "Keyboard layouts" .BR "terminal " "Terminal application options" +.BR "xwayland " "XWayland options" .fi .RE .PP @@ -357,6 +358,12 @@ sets the size of the terminal font (unsigned integer). The terminal shell (string). Sets the $TERM variable. .RE .RE +.SH "XWAYLAND SECTION" +.TP 7 +.BI "path=" "/usr/bin/Xorg" +sets the path to the xserver to run (string). +.RE +.RE .SH "SEE ALSO" .BR weston (1), .BR weston-launch (1), diff --git a/src/xwayland/launcher.c b/src/xwayland/launcher.c index b639479..8d8e060 100644 --- a/src/xwayland/launcher.c +++ b/src/xwayland/launcher.c @@ -42,6 +42,8 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data) struct weston_xserver *wxs = data; char display[8], s[8]; int sv[2], client_fd; + char *xserver = NULL; + struct weston_config_section *section; if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sv) < 0) { weston_log("socketpair failed\n"); @@ -62,8 +64,11 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data) snprintf(display, sizeof display, ":%d", wxs->display); - if (execl(XSERVER_PATH, - XSERVER_PATH, + section = weston_config_get_section(wxs->compositor->config, "xwayland", NULL, NULL); + weston_config_section_get_string(section, "path", &xserver, XSERVER_PATH); + + if (execl(xserver, + xserver, display, "-wayland", "-rootless", @@ -72,6 +77,7 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data) "-terminate", NULL) < 0) weston_log("exec failed: %m\n"); + free(xserver); _exit(EXIT_FAILURE); default: -- 1.8.3.2