Add config option to disable Xwayland
This commit is contained in:
parent
b2d478a418
commit
decd87043f
|
@ -27,6 +27,7 @@ struct binding_config {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct roots_config {
|
struct roots_config {
|
||||||
|
bool xwayland;
|
||||||
// TODO: Multiple cursors, multiseat
|
// TODO: Multiple cursors, multiseat
|
||||||
struct {
|
struct {
|
||||||
char *mapped_output;
|
char *mapped_output;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <strings.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <wlr/util/log.h>
|
#include <wlr/util/log.h>
|
||||||
|
@ -114,7 +115,19 @@ static const char *device_prefix = "device:";
|
||||||
static int config_ini_handler(void *user, const char *section, const char *name,
|
static int config_ini_handler(void *user, const char *section, const char *name,
|
||||||
const char *value) {
|
const char *value) {
|
||||||
struct roots_config *config = user;
|
struct roots_config *config = user;
|
||||||
if (strncmp(output_prefix, section, strlen(output_prefix)) == 0) {
|
if (strcmp(section, "core") == 0) {
|
||||||
|
if (strcmp(name, "xwayland") == 0) {
|
||||||
|
if (strcasecmp(value, "true") == 0) {
|
||||||
|
config->xwayland = true;
|
||||||
|
} else if (strcasecmp(value, "false") == 0) {
|
||||||
|
config->xwayland = false;
|
||||||
|
} else {
|
||||||
|
wlr_log(L_ERROR, "got unknown xwayland value: %s", value);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
wlr_log(L_ERROR, "got unknown core config: %s", name);
|
||||||
|
}
|
||||||
|
} else if (strncmp(output_prefix, section, strlen(output_prefix)) == 0) {
|
||||||
const char *output_name = section + strlen(output_prefix);
|
const char *output_name = section + strlen(output_prefix);
|
||||||
struct output_config *oc;
|
struct output_config *oc;
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
@ -251,6 +264,7 @@ static int config_ini_handler(void *user, const char *section, const char *name,
|
||||||
|
|
||||||
struct roots_config *parse_args(int argc, char *argv[]) {
|
struct roots_config *parse_args(int argc, char *argv[]) {
|
||||||
struct roots_config *config = calloc(1, sizeof(struct roots_config));
|
struct roots_config *config = calloc(1, sizeof(struct roots_config));
|
||||||
|
config->xwayland = true;
|
||||||
wl_list_init(&config->outputs);
|
wl_list_init(&config->outputs);
|
||||||
wl_list_init(&config->devices);
|
wl_list_init(&config->devices);
|
||||||
wl_list_init(&config->bindings);
|
wl_list_init(&config->bindings);
|
||||||
|
|
|
@ -159,11 +159,13 @@ struct roots_desktop *desktop_create(struct roots_server *server,
|
||||||
&desktop->wl_shell_surface);
|
&desktop->wl_shell_surface);
|
||||||
desktop->wl_shell_surface.notify = handle_wl_shell_surface;
|
desktop->wl_shell_surface.notify = handle_wl_shell_surface;
|
||||||
|
|
||||||
|
if (config->xwayland) {
|
||||||
desktop->xwayland = wlr_xwayland_create(server->wl_display,
|
desktop->xwayland = wlr_xwayland_create(server->wl_display,
|
||||||
desktop->compositor);
|
desktop->compositor);
|
||||||
wl_signal_add(&desktop->xwayland->events.new_surface,
|
wl_signal_add(&desktop->xwayland->events.new_surface,
|
||||||
&desktop->xwayland_surface);
|
&desktop->xwayland_surface);
|
||||||
desktop->xwayland_surface.notify = handle_xwayland_surface;
|
desktop->xwayland_surface.notify = handle_xwayland_surface;
|
||||||
|
}
|
||||||
|
|
||||||
desktop->gamma_control_manager = wlr_gamma_control_manager_create(
|
desktop->gamma_control_manager = wlr_gamma_control_manager_create(
|
||||||
server->wl_display);
|
server->wl_display);
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
[core]
|
||||||
|
# Disable X11 support. Enabled by default.
|
||||||
|
xwayland=false
|
||||||
|
|
||||||
# Single output configuration. String after semicolon must match output's name.
|
# Single output configuration. String after semicolon must match output's name.
|
||||||
[output:VGA-1]
|
[output:VGA-1]
|
||||||
# Set logical (layout) coordinates for this screen
|
# Set logical (layout) coordinates for this screen
|
||||||
|
|
Loading…
Reference in New Issue