slackbuilds/desktop/ufetch/wm_detect.diff

44 lines
1.3 KiB
Diff

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