Hi. I’ve been using powerlevel10k for a long time, but a few days ago, I decided I wanted to customize it a bit. I opened the .p10k.zsh file, and I was shocked. It’s really massive, with TONS of options. I’ve been digging through for a few hours already, and it’s absolutely amazing how much you can customize it without actually programming anything. I was wondering what other people are using. So my questions are:
- Do you customize your shell prompt?
- If yes, do you use some framework or pre-made theme, or do you just configure it the vanilla way in your bashrc/zshrc/…
- How is your experiences with it so far?
- Share screenshot of your prompts, please (Sadly, my prompt is currently half done, so I can’t really share it)
I designed this prompt shortly after I switched to Linux, I’ve been using it for a while, it has a few features like putting the exit code if it isn’t 0, changing the hostname color if its detected that you are over ssh, changing the directory color to red if it isn’t writeable, changing the prompt color to red if your euid is 0, and instead of printing
I have no name!
when your user does not have an entry in the passwd file, it will just print your uid in red. I also have a version that I wrote in C that works the same way with a subsitution shell, but it was harder to sync across all my devices when I made a change, so I rewrote it in posix shell that could be synced with just my.bashrc
and work almost anywhere.I don’t know how to post a screenshot, sorry for the long paragraph, but here is the source code, feel free to share or do whatever with it!
#-----PS1-----# BOLDRED="\001\033[1;31m\002" BOLDBLUE="\001\033[1;34m\002" BOLDPURPLE="\001\033[1;35m\002" BOLDCYAN="\001\033[1;36m\002" BOLDGREEN="\001\033[1;32m\002" COLORRESET="\001\033[0m\002" CURSOR_BLINK="\001\033[5 q\002" INFO_COLOR=$BOLDGREEN SUPERUSER_COLOR=$BOLDRED NORMALUSER_COLOR=$BOLDCYAN SSH_COLOR=$BOLDPURPLE __shellprompt () { if [ "$(id -u)" = 0 ]; then PROMPT_COLOR=$SUPERUSER_COLOR PROMPT_EMBLEM='#' else PROMPT_COLOR=$NORMALUSER_COLOR PROMPT_EMBLEM='$' fi # [user@hostname] printf "%b%s%b" "${PROMPT_COLOR}[${INFO_COLOR}" "$(whoami 2>/dev/null || (printf "%b%s" "${BOLDRED}" "UID:$(id -u)"))" "${PROMPT_COLOR}@" if [ -n "${SSH_TTY}" ] || [ -n "${SSH_CLIENT}" ]; then printf "%b" "$SSH_COLOR" else printf "%b" "$INFO_COLOR" fi printf "%s%b" "$(hostname)" "${PROMPT_COLOR}]" # : printf "%b" "${COLORRESET}:" # (/pwd) printf "%b" "${PROMPT_COLOR}(" if [ -w "$PWD" ]; then printf "%b" "${INFO_COLOR}" else printf "%b" "${BOLDRED}" fi if [ -n "$HOME" ] && [ "$HOME" != "/" ] && { [ "$PWD" = "$HOME" ] || [ "$PWD" != "${PWD#"$HOME/"}" ]; }; then printf "%s" "~${PWD#"$HOME"}" else printf "%s" "${PWD}" fi printf "%b" "${PROMPT_COLOR})${COLORRESET}" # :(EXITCODE) if [ "$1" != 0 ]; then printf "%b" "${COLORRESET}:" printf "%b%s%b" "${PROMPT_COLOR}(${BOLDRED}" "${1}" "${PROMPT_COLOR})${COLORRESET}" fi # ->$ # -># printf "%b" "\n${PROMPT_COLOR}->${PROMPT_EMBLEM} ${COLORRESET}${CURSOR_BLINK}" } export PS1='$(__shellprompt $?)' #-----PS1-----#