diff options
Diffstat (limited to 'desktop/ufetch/wm_detect.diff')
-rw-r--r-- | desktop/ufetch/wm_detect.diff | 43 |
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}")" |