From 548b54e6333390fb62884423e7d701361c4ba121 Mon Sep 17 00:00:00 2001 From: Dylan Date: Wed, 27 Jan 2016 11:53:12 +1100 Subject: [PATCH] Un-hardcode getgtk formatting and cleanup the function. Added choclatey support for Windows --- README.md | 4 +-- fetch | 98 +++++++++++++++++++++++++++++-------------------------- 2 files changed, 53 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 4dbfc67d..34df6504 100644 --- a/README.md +++ b/README.md @@ -83,11 +83,11 @@ https://github.com/dylanaraps/fetch/wiki/Customizing-Info **Linux / BSD:** -- Display Wallpaper: `feh` or `nitrogen` +- Display Wallpaper: `feh`, `nitrogen` or `gsettings` - Current Song: `mpc` or `cmus` - Resolution Detection: `xorg-xdpyinfo` - Take a screenshot on script finish: `scrot` - - You can change this to another program with a `--scrotcmd` and an in script option. + - You can change this to another program with a `--scrot_cmd` and an in script option. diff --git a/fetch b/fetch index e747c2d8..476597c2 100755 --- a/fetch +++ b/fetch @@ -8,12 +8,11 @@ # Text formatting, dynamic image size and padding: tput # [Linux / BSD / Windows] Uptime detection: procps or procps-ng # -# # Optional Dependencies: (You'll lose these features without them) # Displaying Images: w3m + w3m-img # Image Cropping: ImageMagick # More accurate window manager detection: wmctrl -# [ Linux / BSD ] Wallpaper Display: feh or nitrogen +# [ Linux / BSD ] Wallpaper Display: feh, nitrogen or gsettings # [ Linux / BSD ] Current Song: mpc or cmus # [ Linux / BSD ] Resolution detection: xorg-xdpyinfo # @@ -76,7 +75,7 @@ printinfo () { info "GPU" gpu info "Memory" memory - # info "Font" font + # info "Font" gtkfont # info "Disk" disk # info "Resolution" resolution # info "Song" song @@ -330,13 +329,11 @@ esac case "$os" in "Linux" ) - if type -p crux >/dev/null 2>&1; then - distro="CRUX" - - elif type -p lsb_release >/dev/null 2>&1; then + if type -p lsb_release >/dev/null 2>&1; then distro="$(lsb_release -a 2>/dev/null | awk -F':' '/Description/ {printf $2}')" distro=${distro/[[:space:]]} - + elif type -p crux >/dev/null 2>&1; then + distro="CRUX" else distro="$(grep -h '^NAME=' /etc/*ease)" distro=${distro#NAME\=*} @@ -432,6 +429,7 @@ getuptime () { hours=$((uptime / 3600%24)) days=$((uptime / 86400)) + # Format the output like Linux's "uptime -p" cmd. case "$mins" in 0) ;; 1) uptime="up $mins minute" ;; @@ -462,6 +460,7 @@ getuptime () { esac + # Make the output of uptime smaller. case "$uptime_shorthand" in "on") uptime=${uptime/up} @@ -550,6 +549,12 @@ getpackages () { "Windows"*) packages=$(cygcheck -cd | wc -l) + + # Count chocolatey packages + if [ -d "/cygdrive/c/ProgramData/chocolatey/lib" ]; then + choco_packages=$(ls -1 /cygdrive/c/ProgramData/chocolatey/lib | wc -l) + packages=$((packages + choco_packages)) + fi ;; *) @@ -978,55 +983,54 @@ getgtk () { esac # Check for gtk2 theme - if [ -f "$HOME/.gtkrc-2.0" ]; then - gtk2theme=$(grep "^[^#]*$name" "$HOME/.gtkrc-2.0") + if [ "$gtk2" == "on" ]; then + if [ -f "$HOME/.gtkrc-2.0" ]; then + gtk2theme=$(grep "^[^#]*$name" "$HOME/.gtkrc-2.0") - elif [ -f "/etc/gtk-2.0/gtkrc" ]; then - gtk2theme=$(grep "^[^#]*$name" /etc/gtk-2.0/gtkrc) + elif [ -f "/etc/gtk-2.0/gtkrc" ]; then + gtk2theme=$(grep "^[^#]*$name" /etc/gtk-2.0/gtkrc) + fi + + gtk2theme=${gtk2theme/${name}*=} + gtk2theme=${gtk2theme//\"} fi # Check for gtk3 theme - if type -p gsettings >/dev/null 2>&1; then - gtk3theme="$(gsettings get org.gnome.desktop.interface $gsettings)" - gtk3theme=${gtk3theme//\'} + if [ "$gtk3" == "on" ]; then + if type -p gsettings >/dev/null 2>&1; then + gtk3theme="$(gsettings get org.gnome.desktop.interface $gsettings)" + gtk3theme=${gtk3theme//\'} - elif [ -f "$HOME/.config/gtk-3.0/settings.ini" ]; then - gtk3theme=$(grep "^[^#]*$name" "$HOME/.config/gtk-3.0/settings.ini") + elif [ -f "$HOME/.config/gtk-3.0/settings.ini" ]; then + gtk3theme=$(grep "^[^#]*$name" "$HOME/.config/gtk-3.0/settings.ini") + else + gtk3theme=$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini) + fi + + gtk3theme=${gtk3theme/${name}*=} + gtk3theme=${gtk3theme//\"} + gtk3theme=${gtk3theme/[[:space:]]/ } + fi + + # Format the string based on which themes exist + if [ "$gtk2theme" ] && [ "$gtk2theme" == "$gtk3theme" ]; then + gtk3theme+=" [GTK2/3]" + unset gtk2theme + + elif [ "$gtk2theme" ] && [ "$gtk3theme" ]; then + gtk2theme+=" [GTK2], " + gtk3theme+=" [GTK3] " else - gtk3theme=$(grep "^[^#]*$name" /etc/gtk-3.0/settings.ini) + [ "$gtk2theme" ] && gtk2theme+=" [GTK2] " + [ "$gtk3theme" ] && gtk3theme+=" [GTK3] " fi - # Format the strings - gtk2theme=${gtk2theme/${name}*=} - gtk2theme=${gtk2theme//\"} + # Final string + gtktheme="${gtk2theme}${gtk3theme}" - [ "$gtk2theme" ] && \ - gtk2theme="$gtk2theme [GTK2], " - - # Format the string - gtk3theme=${gtk3theme/${name}*=} - gtk3theme=${gtk3theme//\"} - gtk3theme=${gtk3theme/[[:space:]]/ } - gtktheme="${gtk2theme}${gtk3theme} [GTK3] " - - # Check to see if gtk2 and gtk3 theme are identical - if [ "$gtk2theme" ] && [ "$gtk2theme" == "$gtk3theme" ]; then - gtktheme="$gtk2theme [GTK2/3]" - - elif [ -z "$gtk2theme" ] && [ -z "$gtk3theme" ]; then - gtktheme="None" - fi - - # Hide gtk2 from gtk theme output - if [ "$gtk2" == "off" ]; then - gtktheme=${gtktheme/*'[GTK2], '} - fi - - # Hide gtk3 from gtk theme output - if [ "$gtk3" == "off" ]; then - gtktheme=${gtktheme/'[GTK2],'*/'[GTK2]'} - fi + # If the final string is empty print "None" + [ -z "$gtktheme" ] && gtktheme="None" # Make the output shorter by removing "[GTKX]" from the string if [ "$gtk_shorthand" == "on" ]; then