From b31f471fb40e06915e3cad86a0e107888112e05f Mon Sep 17 00:00:00 2001 From: icefox Date: Sat, 10 Jan 2026 16:24:40 -0300 Subject: [PATCH 1/2] call c.xdg_toplevel_set_title before first commit of surface --- src/core/linux/Wayland.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/linux/Wayland.zig b/src/core/linux/Wayland.zig index 79dd83ec..0106dff2 100644 --- a/src/core/linux/Wayland.zig +++ b/src/core/linux/Wayland.zig @@ -176,6 +176,8 @@ pub fn initWindow( core_window = core.windows.getValue(window_id); wl = &core_window.native.?.wayland; + c.xdg_toplevel_set_title(wl.toplevel, @ptrCast(core_window.title)); + // Commit changes to surface c.wl_surface_commit(wl.surface); @@ -188,8 +190,6 @@ pub fn initWindow( if (result != -1 and wl.configured) break; } - c.xdg_toplevel_set_title(wl.toplevel, @ptrCast(core_window.title)); - const decoration = c.zxdg_decoration_manager_v1_get_toplevel_decoration( wl.interfaces.zxdg_decoration_manager_v1, wl.toplevel, From 0c360e6e231e7431c910712f5442d05845cffce9 Mon Sep 17 00:00:00 2001 From: icefox Date: Sat, 10 Jan 2026 16:32:30 -0300 Subject: [PATCH 2/2] Allow setting XDG application ID on wayland --- src/Core.zig | 3 +++ src/core/linux/Wayland.zig | 1 + 2 files changed, 4 insertions(+) diff --git a/src/Core.zig b/src/Core.zig index b361c407..68810372 100644 --- a/src/Core.zig +++ b/src/Core.zig @@ -24,6 +24,9 @@ windows: mach.Objects( // TODO: allocation/free strategy title: [:0]const u8 = "Mach Window", + // XDG application ID of the window + app_id: [:0]const u8 = "", + /// Texture format of the framebuffer (read-only) framebuffer_format: gpu.Texture.Format = .bgra8_unorm, diff --git a/src/core/linux/Wayland.zig b/src/core/linux/Wayland.zig index 0106dff2..812a96ef 100644 --- a/src/core/linux/Wayland.zig +++ b/src/core/linux/Wayland.zig @@ -177,6 +177,7 @@ pub fn initWindow( wl = &core_window.native.?.wayland; c.xdg_toplevel_set_title(wl.toplevel, @ptrCast(core_window.title)); + c.xdg_toplevel_set_app_id(wl.toplevel, @ptrCast(core_window.app_id)); // Commit changes to surface c.wl_surface_commit(wl.surface);