Bash-it / bash-it

A community Bash framework.
MIT License
14.3k stars 2.29k forks source link

added new theme (lambda) #2235

Closed w453y closed 3 weeks ago

w453y commented 12 months ago

[Pull Request] New Bash Theme: Lambda

Description

I've created a new Bash theme named "Lambda". This theme provides a clean and visually appealing command line prompt. Below, I briefly explain the configuration file and its elements.

Configuration File

function set_prompt {
    local user_color="\[\033[1;31m\]"  # bold red for username
    local at_color="\[\033[1;37m\]"    # bold white for @ symbol
    local host_color="\[\033[1;31m\]"  # bold red for hostname
    local in_color="\[\033[1;37m\]"    # bold white for "in"
    local dir_color="\[\033[1;35m\]"   # bold purple for current working directory
    local git_color="\[\033[1;36m\]"   # bold cyan for Git information
    local time_color="\[\033[1;32m\]"  # bold green for time taken
    local reset_color="\[\033[0m\]"    # reset color
    local prompt_symbol_color="\[\033[1;31m\]"  # bold red for the prompt symbol

    local end_time=$(date +%s%3N)  # current time in milliseconds
    local time_taken=$(( (end_time - start_time) ))  # time in milliseconds

    PS1="${user_color}╭─\\u"  # username
    PS1+="${at_color}@${host_color}\\h"  # @ symbol and hostname
    PS1+="${in_color} in"  # "in" between hostname and current directory
    PS1+="${dir_color} \\w"  # current working directory

    # Git information (status symbol)
    PS1+=" ${git_color}$(__git_ps1 "[%s]")${reset_color}"

    if [ $time_taken -gt 0 ]; then
        PS1+=" ${time_color}took ${time_taken}ms"  # time taken in milliseconds
    fi

    PS1+="\n${prompt_symbol_color}╰─λ${reset_color} "  # red color for the prompt symbol, reset color after
}

PROMPT_COMMAND='start_time=$(date +%s%3N); set_prompt'

Additional Information

Screenshots

I have added a screenshot of the "Lambda" theme in action to the docs/images folder in the gh-pages branch. Please refer to the Themes page for a preview.

Note to Maintainers

Kindly review the changes and provide feedback. I am open to any adjustments or improvements to ensure compatibility and consistency with the Bash-it project. Thank you!