From 8b1bfcb34b515af186f016a1099c5308259cdd8a Mon Sep 17 00:00:00 2001 From: Carter Li Date: Thu, 21 Aug 2025 18:35:09 +0800 Subject: [PATCH] WM (Linux): uses the same X11 props as neofetch to query WM name Fixes twin detection --- src/detection/displayserver/linux/xcb.c | 8 ++++---- src/detection/displayserver/linux/xlib.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/detection/displayserver/linux/xcb.c b/src/detection/displayserver/linux/xcb.c index c27672bec..796ef8632 100644 --- a/src/detection/displayserver/linux/xcb.c +++ b/src/detection/displayserver/linux/xcb.c @@ -83,11 +83,11 @@ static void xcbDetectWMfromEWMH(XcbPropertyData* data, xcb_connection_t* connect if(wmWindow == NULL) return; - FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL) - wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "WM_NAME"); + FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "WM_NAME"); + if(!ffStrSet(wmName)) + wmName = (char*) xcbGetProperty(data, connection, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL || *wmName == '\0') + if(!ffStrSet(wmName)) return; ffStrbufSetS(&result->wmProcessName, wmName); diff --git a/src/detection/displayserver/linux/xlib.c b/src/detection/displayserver/linux/xlib.c index 324290b32..c0381231c 100644 --- a/src/detection/displayserver/linux/xlib.c +++ b/src/detection/displayserver/linux/xlib.c @@ -53,9 +53,9 @@ static void x11DetectWMFromEWMH(X11PropertyData* data, Display* display, FFDispl if(wmWindow == NULL) return; - char* wmName = (char*) x11GetProperty(data, display, *wmWindow, "_NET_WM_NAME"); - if(wmName == NULL) - wmName = (char*) x11GetProperty(data, display, *wmWindow, "WM_NAME"); + char* wmName = (char*) x11GetProperty(data, display, *wmWindow, "WM_NAME"); + if(!ffStrSet(wmName)) + wmName = (char*) x11GetProperty(data, display, *wmWindow, "_NET_WM_NAME"); if(ffStrSet(wmName)) ffStrbufSetS(&result->wmProcessName, wmName);