From 8fc70c980186dfe9ee21072de79263b80d65e1d5 Mon Sep 17 00:00:00 2001 From: Aidan Harris Date: Tue, 10 Apr 2018 02:55:08 +0000 Subject: [PATCH] Refactor Code --- neofetch | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/neofetch b/neofetch index 4b101c49..23af5eeb 100755 --- a/neofetch +++ b/neofetch @@ -2179,17 +2179,15 @@ END ;; "st") - if term_font="$(ps -o command= -p "$parent" | grep -E '\-f\s?.*?:?')"; then + term_font="$(ps -o command= -p "$parent" | grep -F -- "-f")" + if [[ "$term_font" ]]; then term_font="${term_font/*-f/}" term_font="${term_font/ -*/}" else - binary="" - # On Linux we can get the exact path to the running binary through the procfs - # on other systems we just have to guess and assume `st` is invoked from somewhere - # in the users $PATH - [[ -L /proc/$parent/exe ]] && binary="/proc/$parent/exe" - [[ -z "$binary" ]] && binary="$(command -v st)" + # (in case `st` is launched from outside of $PATH) on other systems we just + # have to guess and assume `st` is invoked from somewhere in the users $PATH + [[ -L /proc/$parent/exe ]] && binary="/proc/$parent/exe" || binary="$(type -p st)" # Grep the output of strings on the `st` binary for anything that looks vaguely # like a font definition. NOTE: There is a slight limitation in this approach. @@ -2197,7 +2195,7 @@ END # though it is hard to match it correctly amongst the rest of the noise. [[ -n "$binary" ]] && \ term_font="$(strings "$binary" | \ - grep -E '(pixelsize=|size=|antialias=|autohint=)' | head -1)" + grep -F -m 1 -e "pixelsize=" -e "size=" -e "antialias=" -e "autohint=")" fi term_font="${term_font/xft:}"