aboutsummaryrefslogtreecommitdiff
path: root/desktop/ufetch/wm_detect.diff
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/ufetch/wm_detect.diff')
-rw-r--r--desktop/ufetch/wm_detect.diff43
1 files changed, 43 insertions, 0 deletions
diff --git a/desktop/ufetch/wm_detect.diff b/desktop/ufetch/wm_detect.diff
new file mode 100644
index 0000000000..002164dc7a
--- /dev/null
+++ b/desktop/ufetch/wm_detect.diff
@@ -0,0 +1,43 @@
+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}")"