summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMarc Cornellà <hello@mcornella.com>2022-01-09 23:06:34 +0100
committerMarc Cornellà <hello@mcornella.com>2022-01-09 23:11:35 +0100
commitfbdc078fa60c2c34a7f5078846902538d162fbee (patch)
tree3ab7a0f0cb02d97eda71762b7274dbe62accbfff /tools
parenta92ee838f3e6b1a8dba548673555ebd514939324 (diff)
downloadzsh-fbdc078fa60c2c34a7f5078846902538d162fbee.tar.gz
zsh-fbdc078fa60c2c34a7f5078846902538d162fbee.tar.bz2
zsh-fbdc078fa60c2c34a7f5078846902538d162fbee.zip
style: use 24bit colors in Oh My Zsh logo if supported
Diffstat (limited to 'tools')
-rwxr-xr-xtools/install.sh62
-rwxr-xr-xtools/upgrade.sh48
2 files changed, 86 insertions, 24 deletions
diff --git a/tools/install.sh b/tools/install.sh
index 731d89a29..5009bd586 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -127,6 +127,24 @@ supports_hyperlinks() {
return 1
}
+# Adapted from code and information by Anton Kochkov (@XVilka)
+# Source: https://gist.github.com/XVilka/8346728
+supports_truecolor() {
+ case "$COLORTERM" in
+ truecolor|24bit) return 0 ;;
+ esac
+
+ case "$TERM" in
+ iterm |\
+ tmux-truecolor |\
+ linux-truecolor |\
+ xterm-truecolor |\
+ screen-truecolor) return 0 ;;
+ esac
+
+ return 1
+}
+
fmt_link() {
# $1: text, $2: url, $3: fallback mode
if supports_hyperlinks; then
@@ -155,7 +173,28 @@ fmt_error() {
setup_color() {
# Only use colors if connected to a terminal
- if is_tty; then
+ if ! is_tty; then
+ RAINBOW=""
+ RED=""
+ GREEN=""
+ YELLOW=""
+ BLUE=""
+ BOLD=""
+ RESET=""
+ return
+ fi
+
+ if supports_truecolor; then
+ RAINBOW="
+ $(printf '\033[38;2;255;0;0m')
+ $(printf '\033[38;2;255;97;0m')
+ $(printf '\033[38;2;247;255;0m')
+ $(printf '\033[38;2;0;255;30m')
+ $(printf '\033[38;2;77;0;255m')
+ $(printf '\033[38;2;168;0;255m')
+ $(printf '\033[38;2;245;0;172m')
+ "
+ else
RAINBOW="
$(printf '\033[38;5;196m')
$(printf '\033[38;5;202m')
@@ -165,21 +204,14 @@ setup_color() {
$(printf '\033[38;5;093m')
$(printf '\033[38;5;163m')
"
- RED=$(printf '\033[31m')
- GREEN=$(printf '\033[32m')
- YELLOW=$(printf '\033[33m')
- BLUE=$(printf '\033[34m')
- BOLD=$(printf '\033[1m')
- RESET=$(printf '\033[m')
- else
- RAINBOW=""
- RED=""
- GREEN=""
- YELLOW=""
- BLUE=""
- BOLD=""
- RESET=""
fi
+
+ RED=$(printf '\033[31m')
+ GREEN=$(printf '\033[32m')
+ YELLOW=$(printf '\033[33m')
+ BLUE=$(printf '\033[34m')
+ BOLD=$(printf '\033[1m')
+ RESET=$(printf '\033[0m')
}
setup_ohmyzsh() {
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index 994ffe9c9..25381de7e 100755
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -86,6 +86,24 @@ supports_hyperlinks() {
return 1
}
+# Adapted from code and information by Anton Kochkov (@XVilka)
+# Source: https://gist.github.com/XVilka/8346728
+supports_truecolor() {
+ case "$COLORTERM" in
+ truecolor|24bit) return 0 ;;
+ esac
+
+ case "$TERM" in
+ iterm |\
+ tmux-truecolor |\
+ linux-truecolor |\
+ xterm-truecolor |\
+ screen-truecolor) return 0 ;;
+ esac
+
+ return 1
+}
+
fmt_link() {
# $1: text, $2: url, $3: fallback mode
if supports_hyperlinks; then
@@ -107,15 +125,27 @@ setopt typeset_silent
typeset -a RAINBOW
if is_tty; then
- RAINBOW=(
- "$(printf '\033[38;5;196m')"
- "$(printf '\033[38;5;202m')"
- "$(printf '\033[38;5;226m')"
- "$(printf '\033[38;5;082m')"
- "$(printf '\033[38;5;021m')"
- "$(printf '\033[38;5;093m')"
- "$(printf '\033[38;5;163m')"
- )
+ if supports_truecolor; then
+ RAINBOW=(
+ "$(printf '\033[38;2;255;0;0m')"
+ "$(printf '\033[38;2;255;97;0m')"
+ "$(printf '\033[38;2;247;255;0m')"
+ "$(printf '\033[38;2;0;255;30m')"
+ "$(printf '\033[38;2;77;0;255m')"
+ "$(printf '\033[38;2;168;0;255m')"
+ "$(printf '\033[38;2;245;0;172m')"
+ )
+ else
+ RAINBOW=(
+ "$(printf '\033[38;5;196m')"
+ "$(printf '\033[38;5;202m')"
+ "$(printf '\033[38;5;226m')"
+ "$(printf '\033[38;5;082m')"
+ "$(printf '\033[38;5;021m')"
+ "$(printf '\033[38;5;093m')"
+ "$(printf '\033[38;5;163m')"
+ )
+ fi
RED=$(printf '\033[31m')
GREEN=$(printf '\033[32m')