diff --git a/neofetch b/neofetch index 5e36617c..13c6f84e 100755 --- a/neofetch +++ b/neofetch @@ -57,7 +57,8 @@ get_distro() { case "$os" in "Linux" | "BSD" | "MINIX") - if [[ "$(< /proc/version)" == *"Microsoft"* || "$kernel_version" == *"Microsoft"* ]]; then + if [[ "$(< /proc/version)" == *"Microsoft"* || + "$kernel_version" == *"Microsoft"* ]]; then case "$distro_shorthand" in "on") distro="$(lsb_release -sir) [Windows 10]" ;; "tiny") distro="Windows 10" ;; @@ -114,8 +115,10 @@ get_distro() { distro="Android $(getprop ro.build.version.release)" elif [[ -f "/etc/os-release" || -f "/usr/lib/os-release" ]]; then + files=("/etc/os-release" "/usr/lib/os-release") + # Source the os-release file - for file in /etc/os-release /usr/lib/os-release; do + for file in "${files[@]}"; do source "$file" && break done @@ -127,8 +130,8 @@ get_distro() { esac # Workarounds for distros that go against the os-release standard. - [[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}' /etc/os-release /usr/lib/os-release)" - [[ -z "${distro// }" ]] && distro="$(awk -F'=' '{print $2; exit}' /etc/os-release /usr/lib/os-release)" + [[ -z "${distro// }" ]] && distro="$(awk '/BLAG/ {print $1; exit}')" "${files[@]}" + [[ -z "${distro// }" ]] && distro="$(awk -F'=' '{print $2; exit}')" "${files[@]}" else for release_file in /etc/*-release; do @@ -145,7 +148,9 @@ get_distro() { # Workarounds for FreeBSD based distros. [[ -f "/etc/pcbsd-lang" ]] && distro="PCBSD" [[ -f "/etc/rc.conf.trueos" ]] && distro="TrueOS" - [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" # /etc/pacbsd-release is an empty file + + # /etc/pacbsd-release is an empty file + [[ -f "/etc/pacbsd-release" ]] && distro="PacBSD" fi fi distro="$(trim_quotes "$distro")" @@ -493,9 +498,6 @@ get_packages() { type -p pacman-g2 >/dev/null && \ packages="$((packages+=$(pacman-g2 -Q | wc -l)))" - type -p cave >/dev/null && \ - packages="$((packages+=$(ls -d -1 /var/db/paludis/repositories/cross-installed/*/data/* /var/db/paludis/repositories/installed/data/* | wc -l)))" - type -p lvu >/dev/null && \ packages="$((packages+=$(lvu installed | wc -l)))" @@ -523,6 +525,11 @@ get_packages() { type -p alps >/dev/null && \ packages="$((packages+=$(alps showinstalled | wc -l)))" + if type -p cave >/dev/null; then + package_dir=(/var/db/paludis/repositories/{cross-installed,installed}/*/data/*) + packages="$((packages+=$(ls -d -1 "${package_dir[@]}" | wc -l)))" + fi + if type -p pkg >/dev/null; then case "$kernel_name" in "FreeBSD") packages="$((packages+=$(pkg info | wc -l)))" ;; @@ -697,7 +704,11 @@ get_wm() { ;; "Windows") - wm="$(tasklist | grep -m 1 -o -F -e "bugn" -e "Windawesome" -e "blackbox" -e "emerge" -e "litestep")" + wm="$(tasklist | grep -m 1 -o -F -e "bugn" \ + -e "Windawesome" \ + -e "blackbox" \ + -e "emerge" \ + -e "litestep")" [[ "$wm" == "blackbox" ]] && wm="bbLean (Blackbox)" wm="${wm:+$wm, }Explorer" ;; @@ -713,8 +724,14 @@ get_wm_theme() { ((de_run != 1)) && get_de case "$wm" in - "E16") wm_theme="$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")";; - "Sawfish") wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' "${HOME}/.sawfish/custom")" ;; + "E16") + wm_theme="$(awk -F "= " '/theme.name/ {print $2}' "${HOME}/.e16/e_config--0.0.cfg")" + ;; + + "Sawfish") + wm_theme="$(awk -F ")" '/\(quote default-frame-style/ {print $2}' \ + "${HOME}/.sawfish/custom")" + ;; "Cinnamon" | "Muffin" | "Mutter (Muffin)") detheme="$(gsettings get org.cinnamon.theme name)" @@ -748,7 +765,8 @@ get_wm_theme() { "E17" | "Enlightenment") if type -p eet >/dev/null; then - wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config | awk '/value \"file\" string.*.edj/ {print $4}')" + wm_theme="$(eet -d "${HOME}/.e/e/config/standard/e.cfg" config | \ + awk '/value \"file\" string.*.edj/ {print $4}')" wm_theme="${wm_theme##*/}" wm_theme="${wm_theme%.*}" fi @@ -772,7 +790,8 @@ get_wm_theme() { ob_file="rc" fi - wm_theme="$(awk -F "[<,>]" '/]" '//dev/null 2>&1 && song="$(mpc current)" - ;; + *) mpc >/dev/null 2>&1 && song="$(mpc current)" ;; esac [[ "$(trim "$song")" == "-" ]] && unset -v song @@ -1457,10 +1507,12 @@ get_resolution() { resolution="${resolution//x??@/ @ }" else - resolution="$(system_profiler SPDisplaysDataType | awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" + resolution="$(system_profiler SPDisplaysDataType |\ + awk '/Resolution:/ {printf $2"x"$4" @ "$6"Hz, "}')" fi - scale_factor="$(/usr/libexec/PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" /Library/Preferences/com.apple.windowserver.plist)" + scale_factor="$(/usr/libexec/PlistBuddy -c "Print DisplayAnyUserSets:0:0:Resolution" \ + /Library/Preferences/com.apple.windowserver.plist)" # If no refresh rate is empty. [[ "$resolution" == *"@ Hz"* ]] && \ @@ -1499,9 +1551,15 @@ get_resolution() { *) if type -p xrandr >/dev/null; then case "$refresh_rate" in - "on") resolution="$(xrandr --nograb --current | awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')" ;; + "on") + resolution="$(xrandr --nograb --current |\ + awk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " + substr($0,RSTART,RLENGTH) "Hz, "}')" + ;; + "off") - resolution="$(xrandr --nograb --current | awk -F 'connected |\\+' '/ connected/ {printf $2 ", "}')" + resolution="$(xrandr --nograb --current | \ + awk -F 'connected |\\+' '/ connected/ {printf $2 ", "}')" resolution="${resolution/primary }" ;; esac