diff options
-rw-r--r-- | desktop/ufetch/ufetch.SlackBuild | 11 | ||||
-rw-r--r-- | desktop/ufetch/wm_detect.diff | 43 |
2 files changed, 53 insertions, 1 deletions
diff --git a/desktop/ufetch/ufetch.SlackBuild b/desktop/ufetch/ufetch.SlackBuild index 115b50038c..46fcd8fbae 100644 --- a/desktop/ufetch/ufetch.SlackBuild +++ b/desktop/ufetch/ufetch.SlackBuild @@ -7,6 +7,13 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# 20250129 bkw: BUILD=2. +# - improve window manager detection for non-desktop WMs. Received +# a report and a patch from Ricardson via email, but I patched +# the code myself to cover all the cases Ricardson's patch +# covered, plus a couple more (commented-out #exec icewm in .xinitrc, +# runlevel 3 with no ~/.xinitrc at all). + # 20241205 bkw: update for v0.4. # - This is a *completely meaningless* version update. # The ufetch-slackware script in 0.4 is identical to the one from 0.3. @@ -25,7 +32,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=ufetch VERSION=${VERSION:-0.4} COMMIT=${COMMIT:-ff21a96c8d6d7f34b77836eeda2cf4b225e25dee} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} ARCH="noarch" @@ -51,6 +58,8 @@ cd $PRGNAM-v$VERSION-$COMMIT chown -R root:root . chmod 644 * +patch -p1 < $CWD/wm_detect.diff + install -D -m0755 "$PRGNAM-slackware" $PKG/usr/bin/$PRGNAM PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION 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}")" |