Skip to content

Commit 24b05bb

Browse files
authored
Wayland: start gnome-session-x11-services-ready.target (#2140)
1 parent 869996c commit 24b05bb

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/WindowManager.vala

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,38 @@ namespace Gala {
148148
display.gl_video_memory_purged.connect (() => {
149149
Meta.Background.refresh_all ();
150150
});
151+
152+
#if WITH_SYSTEMD
153+
if (Meta.Util.is_wayland_compositor ()) {
154+
display.init_xserver.connect ((task) => {
155+
start_x11_services.begin (task);
156+
return true;
157+
});
158+
}
159+
#endif
160+
}
161+
162+
#if WITH_SYSTEMD
163+
private async void start_x11_services (GLib.Task task) {
164+
try {
165+
var session_bus = yield GLib.Bus.@get (GLib.BusType.SESSION);
166+
yield session_bus.call (
167+
"org.freedesktop.systemd1",
168+
"/org/freedesktop/systemd1",
169+
"org.freedesktop.systemd1.Manager",
170+
"StartUnit",
171+
new GLib.Variant ("(ss)", "gnome-session-x11-services-ready.target", "fail"),
172+
new GLib.VariantType ("(o)"),
173+
GLib.DBusCallFlags.NONE,
174+
-1
175+
);
176+
} catch (Error e) {
177+
critical (e.message);
178+
} finally {
179+
task.return_boolean (true);
180+
}
151181
}
182+
#endif
152183

153184
private void show_stage () {
154185
unowned Meta.Display display = get_display ();

0 commit comments

Comments
 (0)