diff -Naurw ufetch-v0.4-ff21a96c8d6d7f34b77836eeda2cf4b225e25dee/ufetch-slackware ufetch-v0.4-ff21a96c8d6d7f34b77836eeda2cf4b225e25dee.patched/ufetch-slackware
--- ufetch-v0.4-ff21a96c8d6d7f34b77836eeda2cf4b225e25dee/ufetch-slackware	2024-11-23 14:18:28.000000000 -0500
+++ ufetch-v0.4-ff21a96c8d6d7f34b77836eeda2cf4b225e25dee.patched/ufetch-slackware	2025-01-30 01:12:54.278769708 -0500
@@ -16,12 +16,21 @@
 
 parse_rcs() {
 	for f in "${@}"; do
-		wm="$(tail -n 1 "${f}" 2> /dev/null | cut -d ' ' -f 2)"
+		wm="$(sed -n 's/^\s*exec\s\+\(\S\+\).*/\1/p' "$f" 2>/dev/null | head -n 1)"
 		[ -n "${wm}" ] && echo "${wm}" && return
 	done
 }
 
+sys_ui_type() {
+	case "$syswm" in
+		kde|lxde|gnome|xfce)
+			echo 'DE' ;;
+		*) echo 'WM' ;;
+	esac
+}
+
 rcwm="$(parse_rcs "${HOME}/.xinitrc" "${HOME}/.xsession")"
+syswm="$(realpath /etc/X11/xinit/xinitrc 2>/dev/null | rev | cut -d. -f1 | rev)"
 
 ui='unknown'
 uitype='UI'
@@ -37,11 +46,14 @@
 elif [ -n "${DESKTOP_SESSION}" ]; then
 	ui="${DESKTOP_SESSION}"
 	uitype='DE'
+elif [ -n "${XDG_SESSION_TYPE}" ]; then
+	ui="${XDG_SESSION_TYPE}"
 elif [ -n "${rcwm}" ]; then
 	ui="${rcwm}"
 	uitype='WM'
-elif [ -n "${XDG_SESSION_TYPE}" ]; then
-	ui="${XDG_SESSION_TYPE}"
+elif [ -n "${syswm}" ]; then
+	ui="${syswm}"
+	uitype="$(sys_ui_type)"
 fi
 
 ui="$(basename "${ui}")"
