diff --git a/clean_files.txt b/clean_files.txt index d810bb73..84c904d8 100644 --- a/clean_files.txt +++ b/clean_files.txt @@ -141,6 +141,7 @@ themes/brunton themes/candy themes/command_duration.theme.bash themes/easy +themes/essential themes/modern themes/powerline themes/pure diff --git a/themes/essential/essential.theme.bash b/themes/essential/essential.theme.bash index ae988733..05e84314 100644 --- a/themes/essential/essential.theme.bash +++ b/themes/essential/essential.theme.bash @@ -1,96 +1,93 @@ -#!/usr/bin/env bash - -# https://github.com/koalaman/shellcheck/wiki/Sc2154 -# shellcheck disable=SC2154 +# shellcheck shell=bash function _user-prompt() { - local -r user='\\u' + local -r user='\u' - if [[ "${EUID}" -eq 0 ]]; then - # Privileged users: - local -r user_color="${bold_red}" - else - # Standard users: - local -r user_color="${bold_green}" - fi + if [[ "${EUID}" -eq 0 ]]; then + # Privileged users: + local -r user_color="${bold_red?}" + else + # Standard users: + local -r user_color="${bold_green?}" + fi - # Print the current user's name (colored according to their current EUID): - echo -e "${user_color}${user}${normal}" + # Print the current user's name (colored according to their current EUID): + printf '%b%s%b' "${user_color}" "${user}" "${normal?}" } function _host-prompt() { - local -r host='\\h' + local -r host='\h' - # Check whether or not $SSH_TTY is set: - if [[ -z "${SSH_TTY}" ]]; then - # For local hosts, set the host's prompt color to blue: - local -r host_color="${bold_blue}" - else - # For remote hosts, set the host's prompt color to red: - local -r host_color="${bold_red}" - fi + # Check whether or not $SSH_TTY is set: + if [[ -z "${SSH_TTY:-}" ]]; then + # For local hosts, set the host's prompt color to blue: + local -r host_color="${bold_blue?}" + else + # For remote hosts, set the host's prompt color to red: + local -r host_color="${bold_red?}" + fi - # Print the current hostname (colored according to $SSH_TTY's status): - echo -e "${host_color}${host}${normal}" + # Print the current hostname (colored according to $SSH_TTY's status): + printf '%b%s%b' "${host_color}" "${host}" "${normal?}" } function _user-at-host-prompt() { - # Concatenate the user and host prompts into: user@host: - echo -e "$(_user-prompt)${bold_white}@$(_host-prompt)" + # Concatenate the user and host prompts into: user@host: + _user-prompt + printf '%b@' "${bold_white?}" + _host-prompt } function _exit-status-prompt() { - local -r prompt_string="${1}" - local -r exit_status="${2}" + local -r prompt_string="${1}" + local -r exit_status="${2}" - # Check the exit status of the last command captured by $exit_status: - if [[ "${exit_status}" -eq 0 ]]; then - # For commands that return an exit status of zero, set the exit status's - # notifier to green: - local -r exit_status_color="${bold_green}" - else - # For commands that return a non-zero exit status, set the exit status's - # notifier to red: - local -r exit_status_color="${bold_red}" - fi + # Check the exit status of the last command captured by $exit_status: + if [[ "${exit_status}" -eq 0 ]]; then + # For commands that return an exit status of zero, set the exit status's + # notifier to green: + local -r exit_status_color="${bold_green?}" + else + # For commands that return a non-zero exit status, set the exit status's + # notifier to red: + local -r exit_status_color="${bold_red?}" + fi - echo -ne "${exit_status_color}" - if [[ "${prompt_string}" -eq 1 ]]; then - # $PS1: - echo -e " +${normal} " - elif [[ "${prompt_string}" -eq 2 ]]; then - # $PS2: - echo -e " |${normal} " - else - # Default: - echo -e " ?${normal} " - fi + if [[ "${prompt_string}" -eq 1 ]]; then + # $PS1: + printf '%b +%b' "${exit_status_color}" "${normal?} " + elif [[ "${prompt_string}" -eq 2 ]]; then + # $PS2: + printf '%b |%b' "${exit_status_color}" "${normal?} " + else + # Default: + printf '%b ?%b' "${exit_status_color}" "${normal?} " + fi } function _ps1() { - local -r time='\\t' + local -r time='\t' + local -r pwd='\w' - echo -ne "${bold_white}${time} " - echo -ne "$(_user-at-host-prompt)" - echo -e "${bold_white}:${normal}${PWD}" - echo -e "$(_exit-status-prompt 1 "${exit_status}")" + printf '%b%s ' "${bold_white?}" "${time}" + _user-at-host-prompt + printf '%b:%b%s\n' "${bold_white?}" "${normal?}" "${pwd}" + _exit-status-prompt 1 "${exit_status}" } function _ps2() { - echo -e "$(_exit-status-prompt 2 "${exit_status}")" + _exit-status-prompt 2 "${exit_status}" } function prompt_command() { - # Capture the exit status of the last command: - local -r exit_status="${?}" + # Capture the exit status of the last command: + local -r exit_status="${?}" - # Build the $PS1 prompt: - PS1="$(_ps1)" + # Build the $PS1 prompt: + PS1="$(_ps1)" - # Build the $PS2 prompt: - PS2="$(_ps2)" + # Build the $PS2 prompt: + PS2="$(_ps2)" } safe_append_prompt_command prompt_command - -# vim: sw=2 ts=2 et: