summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtools/theme_chooser.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh
new file mode 100755
index 000000000..2413bfee8
--- /dev/null
+++ b/tools/theme_chooser.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Zsh Theme Chooser by fox (fox91 at anche dot no)
+# This program is free software. It comes without any warranty, to
+# the extent permitted by applicable law. You can redistribute it
+# and/or modify it under the terms of the Do What The Fuck You Want
+# To Public License, Version 2, as published by Sam Hocevar. See
+# http://sam.zoy.org/wtfpl/COPYING for more details.
+
+THEMES_DIR="$ZSH/themes"
+FAVLIST="~/.zsh_favlist"
+
+function noyes() {
+ read -p "$1 [y/N]" a
+ if [[ $a == "N" || $a == "n" || $a = "" ]]; then
+ return 0
+ fi
+ return 1
+}
+
+function theme_preview() {
+ THEME=$1
+ export ZDOTDIR="$(mktemp -d)"
+
+cat <<-EOF >"$ZDOTDIR/.zshrc"
+ source ~/.zshrc
+ source "$THEMES_DIR/$THEME"
+EOF
+ zsh
+ rm -rf "$ZDOTDIR"
+
+ echo
+ noyes "Do you want to add it to your favourite list?" && \
+ echo $THEME >> $FAVLIST
+ echo
+}
+
+echo
+echo "╺━┓┏━┓╻ ╻ ╺┳╸╻ ╻┏━╸┏┳┓┏━╸ ┏━╸╻ ╻┏━┓┏━┓┏━┓┏━╸┏━┓"
+echo "┏━┛┗━┓┣━┫ ┃ ┣━┫┣╸ ┃┃┃┣╸ ┃ ┣━┫┃ ┃┃ ┃┗━┓┣╸ ┣┳┛"
+echo "┗━╸┗━┛╹ ╹ ╹ ╹ ╹┗━╸╹ ╹┗━╸ ┗━╸╹ ╹┗━┛┗━┛┗━┛┗━╸╹┗╸"
+echo
+
+for i in $(ls $THEMES_DIR); do
+ echo "Now showing theme $i"
+ theme_preview $i
+done