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}")"