mirror of
https://github.com/RetroPie/RetroPie-Setup.git
synced 2025-04-02 10:51:41 -04:00
On RasPI OS 11/12 (bullseye/bookworm) the `vcgencmd` command has moved completely to `/usr/bin`, while on Buster it's just a symlink from `/usr/bin/` to `/opt/vc/bin`. Remove the full path to the command and just check whether is't in our `$PATH` before running.
167 lines
5.2 KiB
Bash
167 lines
5.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# This file is part of The RetroPie Project
|
|
#
|
|
# The RetroPie Project is the legal property of its developers, whose names are
|
|
# too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
|
|
#
|
|
# See the LICENSE.md file at the top-level directory of this distribution and
|
|
# at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
|
|
#
|
|
|
|
rp_module_id="bashwelcometweak"
|
|
rp_module_desc="Bash Welcome Tweak (shows additional system info on login)"
|
|
rp_module_section="config"
|
|
|
|
function install_bashwelcometweak() {
|
|
remove_bashwelcometweak
|
|
cat >> "$home/.bashrc" <<\_EOF_
|
|
# RETROPIE PROFILE START
|
|
|
|
function getIPAddress() {
|
|
local ip_route
|
|
ip_route=$(ip -4 route get 8.8.8.8 2>/dev/null)
|
|
if [[ -z "$ip_route" ]]; then
|
|
ip_route=$(ip -6 route get 2001:4860:4860::8888 2>/dev/null)
|
|
fi
|
|
[[ -n "$ip_route" ]] && grep -oP "src \K[^\s]+" <<< "$ip_route"
|
|
}
|
|
|
|
function retropie_welcome() {
|
|
local upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
|
|
local secs=$((upSeconds%60))
|
|
local mins=$((upSeconds/60%60))
|
|
local hours=$((upSeconds/3600%24))
|
|
local days=$((upSeconds/86400))
|
|
local UPTIME=$(printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs")
|
|
|
|
# calculate rough CPU and GPU temperatures:
|
|
local cpuTempC
|
|
local cpuTempF
|
|
local gpuTempC
|
|
local gpuTempF
|
|
if [[ -f "/sys/class/thermal/thermal_zone0/temp" ]]; then
|
|
cpuTempC=$(($(cat /sys/class/thermal/thermal_zone0/temp)/1000)) && cpuTempF=$((cpuTempC*9/5+32))
|
|
fi
|
|
|
|
if [[ -n $(command -v vcgencmd) ]]; then
|
|
if gpuTempC=$(vcgencmd measure_temp); then
|
|
gpuTempC=${gpuTempC:5:2}
|
|
gpuTempF=$((gpuTempC*9/5+32))
|
|
else
|
|
gpuTempC=""
|
|
fi
|
|
fi
|
|
|
|
local df_out=()
|
|
local line
|
|
while read line; do
|
|
df_out+=("$line")
|
|
done < <(df -h /)
|
|
|
|
local rst="$(tput sgr0)"
|
|
local fgblk="${rst}$(tput setaf 0)" # Black - Regular
|
|
local fgred="${rst}$(tput setaf 1)" # Red
|
|
local fggrn="${rst}$(tput setaf 2)" # Green
|
|
local fgylw="${rst}$(tput setaf 3)" # Yellow
|
|
local fgblu="${rst}$(tput setaf 4)" # Blue
|
|
local fgpur="${rst}$(tput setaf 5)" # Purple
|
|
local fgcyn="${rst}$(tput setaf 6)" # Cyan
|
|
local fgwht="${rst}$(tput setaf 7)" # White
|
|
|
|
local bld="$(tput bold)"
|
|
local bfgblk="${bld}$(tput setaf 0)"
|
|
local bfgred="${bld}$(tput setaf 1)"
|
|
local bfggrn="${bld}$(tput setaf 2)"
|
|
local bfgylw="${bld}$(tput setaf 3)"
|
|
local bfgblu="${bld}$(tput setaf 4)"
|
|
local bfgpur="${bld}$(tput setaf 5)"
|
|
local bfgcyn="${bld}$(tput setaf 6)"
|
|
local bfgwht="${bld}$(tput setaf 7)"
|
|
|
|
local logo=(
|
|
"${fgred} .***. "
|
|
"${fgred} ***${bfgwht}*${fgred}* "
|
|
"${fgred} \`***' "
|
|
"${bfgwht} |*| "
|
|
"${bfgwht} |*| "
|
|
"${bfgred} ..${bfgwht}|*|${bfgred}.. "
|
|
"${bfgred}.*** ${bfgwht}*${bfgred} ***."
|
|
"${bfgred}*******${fggrn}@@${bfgred}**"
|
|
"${fgred}\`*${bfgred}****${bfgylw}@@${bfgred}*${fgred}*'"
|
|
"${fgred} \`*******'${fgrst} "
|
|
"${fgred} \`\"\"\"'${fgrst} "
|
|
)
|
|
|
|
local out
|
|
local i
|
|
for i in "${!logo[@]}"; do
|
|
out+=" ${logo[$i]} "
|
|
case "$i" in
|
|
0)
|
|
out+="${fggrn}$(date +"%A, %e %B %Y, %X")"
|
|
;;
|
|
1)
|
|
out+="${fggrn}$(uname -srmo)"
|
|
;;
|
|
3)
|
|
out+="${fgylw}${df_out[0]}"
|
|
;;
|
|
4)
|
|
out+="${fgwht}${df_out[1]}"
|
|
;;
|
|
5)
|
|
out+="${fgred}Uptime.............: ${UPTIME}"
|
|
;;
|
|
6)
|
|
out+="${fgred}Memory.............: $(free -h | awk 'NR==2 {printf("%s (Free) / %s (Total)", $4, $2)}')"
|
|
;;
|
|
7)
|
|
out+="${fgred}Running Processes..: $(ps ax | wc -l | tr -d " ")"
|
|
;;
|
|
8)
|
|
out+="${fgred}IP Address.........: $(getIPAddress)"
|
|
;;
|
|
9)
|
|
out+="Temperature........: CPU: ${cpuTempC}°C/${cpuTempF}°F GPU: ${gpuTempC}°C/${gpuTempF}°F"
|
|
;;
|
|
10)
|
|
out+="${fgwht}The RetroPie Project, https://retropie.org.uk"
|
|
;;
|
|
esac
|
|
out+="${rst}\n"
|
|
done
|
|
echo -e "\n$out"
|
|
}
|
|
|
|
retropie_welcome
|
|
# RETROPIE PROFILE END
|
|
_EOF_
|
|
|
|
|
|
}
|
|
|
|
function remove_bashwelcometweak() {
|
|
sed -i '/RETROPIE PROFILE START/,/RETROPIE PROFILE END/d' "$home/.bashrc"
|
|
}
|
|
|
|
function gui_bashwelcometweak() {
|
|
local cmd=(dialog --backtitle "$__backtitle" --menu "Bash Welcome Tweak Configuration" 22 86 16)
|
|
local options=(
|
|
1 "Install Bash Welcome Tweak"
|
|
2 "Remove Bash Welcome Tweak"
|
|
)
|
|
local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
|
|
if [[ -n "$choice" ]]; then
|
|
case "$choice" in
|
|
1)
|
|
rp_callModule bashwelcometweak install
|
|
printMsgs "dialog" "Installed Bash Welcome Tweak."
|
|
;;
|
|
2)
|
|
rp_callModule bashwelcometweak remove
|
|
printMsgs "dialog" "Removed Bash Welcome Tweak."
|
|
;;
|
|
esac
|
|
fi
|
|
}
|