diff options
-rw-r--r-- | man/weston.ini.man | 7 | ||||
-rw-r--r-- | 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 9c22b3f3..79743f0b 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 3228b537..32e04e9f 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: |