Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
You can now use ANY bash syntax when customizing what gets displayed,…
Browse files Browse the repository at this point in the history
… for example you could use an if statment to only show info when condition is true!
  • Loading branch information
Dylan committed Jan 20, 2016
1 parent c5c3463 commit 9daacdd
Showing 1 changed file with 94 additions and 109 deletions.
203 changes: 94 additions & 109 deletions fetch
Original file line number Diff line number Diff line change
Expand Up @@ -28,39 +28,47 @@ export LANGUAGE=C

# Info
# What to display and in what order.
# You can use ANY bash syntax in the function below!
# For example you could use if statments to only print info
# when a condition is true!
#
# Format is: "Subtitle: function name"
# Additional lines you can use include:
# "underline" "linebreak" "echo: msg here" "title: title here"
# The script comes with two helper functions:
# info:
# info "subtitle" funcname
# prin:
# prin "Custom message to print"
# prin "Subtitle: Custom message to print"
# prin "Subtitle: $(date)"
#
# You can also include your own custom lines by using:
# "echo: subtitlehere: $(custom cmd here)"
# "echo: Custom string to print"
# You can also just use printf / echo to add lines but you'll
# need to prefix your msg with "${padding}", for example:
# echo "${padding} My custom message here"
#
# Optional info lines that are disabled by default are:
# "getresolution" "getsong" "getvisualstyle" "getgpu"
# Info functions enabled by default are:
# "title" "distro" "kernel" "uptime" "packages"
# "shell" "resolution" "windowmanager" "gtktheme"
# "gtkicons" "cpu" "memory" "cols"
#
# Info lines enabled by default are:
# "gettitle" "getdistro" "getkernel" "getuptime" "getpackages"
# "getshell" "getresolution" "getwindowmanager" "getgtktheme"
# "getgtkicons" "getcpu" "getmemory" "getcols"
info=(
"gettitle"
"underline"
"OS: getdistro"
"Kernel: getkernel"
"Uptime: getuptime"
"Packages: getpackages"
"Shell: getshell"
"Resolution: getresolution"
"Window Manager: getwindowmanager"
"GTK Theme: getgtktheme"
"Icons: getgtkicons"
"CPU: getcpu"
"Memory: getmemory"
"linebreak"
"getcols"
)
# Info functions that are disabled by default are:
# "resolution" "song" "visualstyle" "gpu"
printinfo () {
info title
info underline

info "OS" distro
info "Kernel" kernel
info "Uptime" uptime
info "Packages" packages
info "Shell" shell
info "Window Manager" windowmanager
info "GTK Theme" gtktheme
info "Icons" gtkicons
info "CPU" cpu
info "Memory" memory

info linebreak
info cols
}


# Window Manager
Expand Down Expand Up @@ -688,6 +696,7 @@ getgpu () {
nvidia*)
gpu=${gpu/'NVIDIA Corporation' }
gpu=${gpu/'nVidia Corporation' }
gpu=${gpu/G????M }
gpu=${gpu/G???? }
gpu=${gpu/'['}
gpu=${gpu/']'}
Expand Down Expand Up @@ -1103,7 +1112,62 @@ takescrot () {
# Text Formatting {{{


underline () {
info () {
# Call the function and update variable
if [ -z "$2" ]; then
get$1 2>/dev/null
eval output="\$${1}"
else
get$2 2>/dev/null
eval output="\$${2}"
fi

case "$1" in
title)
string="${bold}${title_color}${output}"
string="${string/@/${at_color}@${title_color}}"
length=${#output}
;;

underline)
string="${underline_color}${output}"
;;

linebreak | cols)
string=""
;;

*)
string="${bold}${subtitle_color}${1}${clear}"
string+="${colon_color}: ${info_color}${output}"
length=$((${#subtitle} + ${#output} + 2))
;;
esac

printf "%b%s\n" "${padding}${string}${clear}"
}

prin () {
case "$1" in
*:*)
subtitle=${1%%:*}
output=${1#*: }

string="${bold}${subtitle_color}${subtitle}${clear}"
string+="${colon_color}: ${info_color}${output}"
length=$((${#subtitle} + ${#output} + 1))
;;

*)
string="${info_color}${1}"
length=${#1}
;;
esac

printf "%b%s\n" "${padding}${string}${clear}"
}

getunderline () {
underline=$(printf %"$length"s)
underline=${underline// /$underline_char}
}
Expand Down Expand Up @@ -1307,85 +1371,6 @@ done
# }}}


# Print Info {{{


printinfo () {
for info in "${info[@]}"; do
function=${info#*: }
subtitle=${info%:*}

case "$function" in
"get"*)
# Call the function
$function 2>/dev/null

# Update the variable
eval output="\$${function/get/}"
;;
esac

case "$info" in
echo:*:*)
info=${function#*: }
subtitle=${function/:*/}
string="${bold}${subtitle_color}${subtitle}${clear}"
string+="${colon_color}: ${info_color}${info}"
length=${#function}
;;

echo:*)
string="${info_color}${function}"
length=${#function}
;;

title:*)
string="${bold}${title_color}${function}"
length=${#function}
;;

linebreak)
string=""
;;

underline)
if [ "$underline" == "on" ]; then
underline
string="${underline_color}${underline}"
fi
;;

"")
continue
;;

gettitle)
string="${bold}${title_color}${output}"
string="${string/@/${at_color}@${title_color}}"
length=${#output}
;;

*:*)
string="${bold}${subtitle_color}${subtitle}${clear}"
string+="${colon_color}: ${info_color}${output}"
length=$((${#subtitle} + ${#output} + 2))
;;

*)
string="$output"
length=${#output}
;;

esac

printf "%b%s\n" "${padding}${string}${clear}"
done
}


# }}}


# Call Functions and Finish Up {{{


Expand Down

0 comments on commit 9daacdd

Please sign in to comment.