This commit is contained in:
Alexander Rosenberg 2025-02-05 15:17:43 -08:00
commit 14f63f3099
Signed by: Zander671
GPG Key ID: 5FD0394ADBD72730

View File

@ -84,7 +84,7 @@ pub fn main() anyerror!void {
posix.exit(1);
}
}
const enable_xwayland = !result.flags.@"no-xwayland";
const runtime_xwayland = !result.flags.@"no-xwayland";
const startup_command = blk: {
if (result.flags.c) |command| {
break :blk try util.gpa.dupeZ(u8, command);
@ -95,17 +95,25 @@ pub fn main() anyerror!void {
log.info("river version {s}, initializing server", .{build_options.version});
process.setup();
river_init_wlroots_log(switch (runtime_log_level) {
.debug => .debug,
.info => .info,
.warn, .err => .err,
});
try server.init(enable_xwayland);
try server.init(runtime_xwayland);
defer server.deinit();
// wlroots starts the Xwayland process from an idle event source, the reasoning being that
// this gives the compositor time to set up event listeners before Xwayland is actually
// started. We want Xwayland to be started by wlroots before we modify our rlimits in
// process.setup() since wlroots does not offer a way for us to reset the rlimit post-fork.
if (build_options.xwayland and runtime_xwayland) {
server.wl_server.getEventLoop().dispatchIdle();
}
process.setup();
try server.start();
// Run the child in a new process group so that we can send SIGTERM to all