From f53beb64b8fe8a3f6ad9df09cc42fa5570406def Mon Sep 17 00:00:00 2001 From: "Marco A. Gallegos" Date: Wed, 11 Sep 2024 02:14:18 -0600 Subject: [PATCH] themes: Add a new theme `developer` focusing on devs (#526) * feat(themes): added new theme * fix(themes): screenshot updated * fix(themes): image sizing * chore(themes): updated theme description * style(themes/developer): fix the indentation * refactor(themes/developer): prefix "_omb_theme_developer_" to internal functions * refactor(themes/developer): delimit returned values with newlines "grep -P" is not POSIX. Instead of using PCRE to extract the results separated by "---", we can simply separate the results with newlines and use standard utilities (which assumes line-oriented data) to manipulate the data. * refactor(themes/developer): use "_omb_util_command_exists" * refactor(themes/developer): use awk to pick the activated conda env * fix(themes/developer): remove meaningless forks * fix(themes/developer): use "_omb_util_put" instead of "printf" * style(themes/developer): fix coding styles * chore(themes/developer): clean up codes for debugging * fix(themes/developer): fix wronge uses of arithmetic commands * fix(themes/developer): localize variables used in functions * refactor(themes/developer): use "return_delimited" at the end of functions * fix(themes/developer): fix a problem that it sometimes fails to extract CPU usage * fix(themes/developer): avoid mixing stdout This attempted to run the commands to extract information in parallel, but this may result in interleaved information in some operating system (depending on the way how the C library performs buffering and how the syscall write(2) issued by multiple processes would interfere with one another). There are other parts we can optimize, so we would compensate the overhead with the optimization of other parts. * perf(themes/developer): load prompt information through REPLY * perf(themes/developer): reduce the number of forks * fix(themes/developer): suppress error message of non-existent commands * fix(themes/developer): disable prompt element with unavailable information --------- Co-authored-by: Koichi Murase --- themes/THEMES.md | 4 + themes/developer/developer.theme.sh | 214 ++++++++++++++++++ .../developer/developer_theme_2024_02_09.png | Bin 0 -> 52934 bytes 3 files changed, 218 insertions(+) create mode 100644 themes/developer/developer.theme.sh create mode 100644 themes/developer/developer_theme_2024_02_09.png diff --git a/themes/THEMES.md b/themes/THEMES.md index e003f39..42b62ef 100644 --- a/themes/THEMES.md +++ b/themes/THEMES.md @@ -59,6 +59,10 @@ [![](demula/demula-dark.png)](demula/demula-dark.png) +## `developer` + +[![](developer/developer_theme_2024_02_09.png)](developer/developer_theme_2024_02_09.png) + ## `dos` [![](dos/dos-dark.png)](dos/dos-dark.png) diff --git a/themes/developer/developer.theme.sh b/themes/developer/developer.theme.sh new file mode 100644 index 0000000..6608dfc --- /dev/null +++ b/themes/developer/developer.theme.sh @@ -0,0 +1,214 @@ +#! bash oh-my-bash.module + +SCM_THEME_PROMPT_DIRTY=" ${_omb_prompt_brown}✗" +SCM_THEME_PROMPT_CLEAN=" ${_omb_prompt_bold_green}✓" +SCM_THEME_PROMPT_PREFIX=" $_omb_prompt_green|" +SCM_THEME_PROMPT_SUFFIX="$_omb_prompt_green|" + +GIT_THEME_PROMPT_DIRTY=" ${_omb_prompt_brown}✗" +GIT_THEME_PROMPT_CLEAN=" ${_omb_prompt_bold_green}✓" +GIT_THEME_PROMPT_PREFIX=" $_omb_prompt_green|" +GIT_THEME_PROMPT_SUFFIX="$_omb_prompt_green|" + +RVM_THEME_PROMPT_PREFIX='|' +RVM_THEME_PROMPT_SUFFIX='|' + +function __bobby_clock { + _omb_util_put "$(clock_prompt) " + + if [[ $THEME_SHOW_CLOCK_CHAR == true ]]; then + _omb_util_put "$(clock_char) " + fi +} + +## @var[out] REPLY +function _omb_theme_developer__readNodeVersion { + local val_node=$(node --version 2>/dev/null) + if _omb_util_command_exists nvm; then + val_node="nvm $val_node" + else + # Si nvm no está instalado, utilizar "njs" + val_node="njs $val_node" + fi + REPLY=$val_node +} + +## @var[out] REPLY +function _omb_theme_developer__readGoVersion { + local val_go=$(go version 2>/dev/null | cut -d ' ' -f 3 | cut -d 'o' -f 2) + REPLY="go $val_go" +} + +## @var[out] REPLY +function _omb_theme_developer__read_ruby_version { + local val_rb=$(ruby --version 2>/dev/null | cut -d ' ' -f 2) + if _omb_util_command_exists rvm; then + val_rb="rvm $val_rb" + else + # Si nvm no está instalado, utilizar "njs" + val_rb="rb $val_rb" + fi + REPLY=$val_rb +} + +## @var[out] REPLY +function _omb_theme_developer__readPyVersion { + local val_py=$(python --version 2>/dev/null | cut -d ' ' -f 2) + if _omb_util_command_exists conda; then + local condav=$(conda env list | awk '$2 == "*" {print $1}') + val_py="conda<$condav> $val_py" + else + # Si nvm no está instalado, utilizar "njs" + val_py="py $val_py" + fi + REPLY=$val_py +} + +## @var[out] REPLY +function _omb_theme_developer__readCpuLoad__cpuLoad { + # Ejecutar el comando top en modo batch, filtrar por el nombre de usuario + # actual. Extraer el porcentaje de carga de la CPU excluyendo el estado + # "idle" usando awk + local cpu_load=$(top -b -n 1 -u "$USER" | awk -F ',' '/Cpu\(s\)/ {gsub(/[^.0-9]/,"",$4);printf("%d", 100.0 - $4)}') + + # Almacenar la carga de la CPU en la variable 'REPLY' + REPLY=$cpu_load +} + +## @var[out] REPLY +function _omb_theme_developer__readCpuLoad { + _omb_theme_developer__readCpuLoad__cpuLoad + local current_cpu_load=$REPLY + + local color=$_omb_prompt_reset_color + # Condicional para verificar los rangos + if ((current_cpu_load <= 40)); then + color=$_omb_prompt_teal + elif ((current_cpu_load >= 41 && current_cpu_load <= 50)); then + color=$_omb_prompt_reset_color + elif ((current_cpu_load >= 51 && current_cpu_load <= 60)); then + color=$_omb_prompt_olive + elif ((current_cpu_load >= 61 && current_cpu_load <= 75)); then + color=$_omb_prompt_red + elif ((current_cpu_load >= 76)); then + color=$_omb_prompt_red'!' + fi + REPLY=$color$current_cpu_load +} + +## @var[out] REPLY +function _omb_theme_developer__readCpuTemp_genericLinuxTemp { + local file=${1:-/sys/class/thermal/thermal_zone0/temp} + if [[ ! -e $file ]]; then + REPLY= + return 1 + fi + + local temp_linux=$(< "$file") + local temp_in_c=$((temp_linux / 1000)) + REPLY=$temp_in_c +} + +## @var[out] REPLY +function _omb_theme_developer__readCpuTemp_OPi5pTemp { + _omb_theme_developer__readCpuTemp_genericLinuxTemp /sys/class/thermal/thermal_zone4/temp +} + +# if is a specific platfor use spacific configuration otherwise use default +# linux configuration. +## @var[out] REPLY +function _omb_theme_developer__readCpuTemp_currentPlatform { + # 2 ways to detect the platform 1) use a env var 2) some scrapping from the + # current system info (this is bash so just linux is considered) env var is + # $PROMPT_THEME_PLATFORM + # TODO: this is a first basic implementation this could be better but for now + # is ok + local platform_according_env=$PROMPT_THEME_PLATFORM + + # if opi5 -> search for rk3588 tag in kernel and ... + local opi5p_kernel_tag=$(uname --kernel-release 2>/dev/null | cut -d '-' -f 3) + + if [[ $platform_according_env == OPI5P || $opi5p_kernel_tag == rk3588 ]]; then + REPLY=OPI5P + else + REPLY=linux + fi +} + +## @var[out] REPLY +function _omb_theme_developer__readCpuTemp { + _omb_theme_developer__readCpuTemp_currentPlatform + local currentPlatform=$REPLY + + if [[ $currentPlatform == linux ]]; then + _omb_theme_developer__readCpuTemp_genericLinuxTemp + elif [[ $currentPlatform == OPI5P ]]; then + _omb_theme_developer__readCpuTemp_OPi5pTemp + fi + local temp_in_c=$REPLY + [[ $REPLY ]] || return 0 + + local color + # Condicional para verificar los rangos + if ((temp_in_c >= 1 && temp_in_c <= 40)); then + color=$_omb_prompt_teal + elif ((temp_in_c >= 41 && temp_in_c <= 50)); then + color=$_omb_prompt_reset_color + elif ((temp_in_c >= 51 && temp_in_c <= 60)); then + color=$_omb_prompt_olive + elif ((temp_in_c >= 61 && temp_in_c <= 75)); then + color=$_omb_prompt_red + elif ((temp_in_c >= 76 && temp_in_c)); then + color=$_omb_prompt_red! + fi + REPLY="$color${temp_in_c}°" +} + +## @var[out] REPLY +function _omb_theme_developer__readDefaultIp { + # this should work on every "new" linux distro + + # Obtiene el nombre de la interfaz de red activa + local interface=$(ip -o -4 route show to default 2>/dev/null | awk '{print $5}') + + # Obtiene la dirección IP de la interfaz de red activa + local ip_address=$(ip -o -4 address show dev "$interface" 2>/dev/null | awk '{split($4, a, "/"); print a[1]}') + + REPLY=$ip_address +} + +# prompt constructor +function _omb_theme_PROMPT_COMMAND { + local REPLY + _omb_theme_developer__readCpuTemp + local cputemp=$REPLY + _omb_theme_developer__readCpuLoad # this is very slow + local cpuload=$REPLY + _omb_theme_developer__readPyVersion + local pyversion=$REPLY + _omb_theme_developer__readNodeVersion + local nodeversion=$REPLY + _omb_theme_developer__readGoVersion + local goversion=$REPLY + _omb_theme_developer__readDefaultIp + local defaultip=$REPLY + + local tech_versions=$nodeversion + [[ $pyversion ]] && tech_versions+=${tech_versions:+$RVM_THEME_PROMPT_PREFIX}$pyversion + [[ $goversion ]] && tech_versions+=${tech_versions:+$RVM_THEME_PROMPT_PREFIX}$goversion + [[ $tech_versions ]] && tech_versions=$_omb_prompt_reset_color$tech_versions + + local top_bar="\n$(battery_char)$(__bobby_clock)$tech_versions${cputemp:+ $cputemp}${cpuload:+ $cpuload%} $_omb_prompt_purple\h${defaultip:+ ($defaultip)} ${_omb_prompt_reset_color}in $_omb_prompt_green\w\n" + + local prompt_line="$_omb_prompt_bold_teal$(scm_prompt_char_info) $_omb_prompt_green→$_omb_prompt_reset_color " + + # defining the final prompt + PS1="$top_bar$prompt_line" +} + +THEME_SHOW_CLOCK_CHAR=${THEME_SHOW_CLOCK_CHAR:-"true"} +THEME_CLOCK_CHAR_COLOR=${THEME_CLOCK_CHAR_COLOR:-"$_omb_prompt_brown"} +THEME_CLOCK_COLOR=${THEME_CLOCK_COLOR:-"$_omb_prompt_bold_teal"} +THEME_CLOCK_FORMAT=${THEME_CLOCK_FORMAT:-"%Y-%m-%d %H:%M"} + +_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND diff --git a/themes/developer/developer_theme_2024_02_09.png b/themes/developer/developer_theme_2024_02_09.png new file mode 100644 index 0000000000000000000000000000000000000000..dd67cad965224205cd65b9976dfb6f93503acd63 GIT binary patch literal 52934 zcmc$`RdgM@vNk%+%*@Qp%0DvQ! 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 @N+Pt?!hg_z5aMjKc;aU5MF_S$(8~O|W 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 YP8A(m^54{k!T^6#VsfG-!n)r74R-i}SpWb4 literal 0 HcmV?d00001