mirror of
https://github.com/IlanCosman/tide.git
synced 2024-11-15 01:00:35 +03:00
Alot of work on wizard, add prompt_modules
This commit is contained in:
parent
6c39d874ba
commit
165c8c6977
@ -1,9 +1,22 @@
|
||||
function fish_prompt --description 'Write out the prompt'
|
||||
set -l last_status $status
|
||||
echo
|
||||
|
||||
echo (lean_pwd)(lean_git_prompt)
|
||||
|
||||
if test (math $CMD_DURATION/1000) -gt $lean_timer_duration
|
||||
for i in (seq (math $COLUMNS-(string length (echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"))-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
set_color $lean_timer_color
|
||||
echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"
|
||||
set_color $fish_color_normal
|
||||
else
|
||||
for i in (seq (math $COLUMNS-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
end
|
||||
echo -e "\r"(lean_pwd)(lean_git_prompt)" "
|
||||
# Prompt character
|
||||
if test $last_status -eq 0
|
||||
set_color $lean_green
|
||||
@ -12,4 +25,4 @@ function fish_prompt --description 'Write out the prompt'
|
||||
end
|
||||
echo -n "❯ "
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
end
|
@ -3,29 +3,29 @@ function lean_pwd
|
||||
set -l pwdSplitLength (count $pwdSplit)
|
||||
|
||||
if test $pwdSplit[1] != "~"
|
||||
set_color -o $lean_light_blue
|
||||
set_color -o $lean_color_light_blue
|
||||
echo -n "/"
|
||||
set_color $fish_color_normal
|
||||
else
|
||||
set_color -o $lean_light_blue
|
||||
set_color -o $lean_color_light_blue
|
||||
echo -n $pwdSplit[1]
|
||||
set_color $fish_color_normal
|
||||
|
||||
if test $pwdSplitLength -gt 1
|
||||
set_color $lean_dark_blue
|
||||
set_color $lean_color_dark_blue
|
||||
echo -n "/"
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
end
|
||||
|
||||
set_color $lean_dark_blue
|
||||
set_color $lean_color_dark_blue
|
||||
echo -n (string join "/" $pwdSplit[2..-2])
|
||||
if test $pwdSplitLength -gt 2
|
||||
echo -n "/"
|
||||
end
|
||||
set_color $fish_color_normal
|
||||
|
||||
set_color -o $lean_light_blue
|
||||
set_color -o $lean_color_light_blue
|
||||
if test $pwdSplitLength -gt 1
|
||||
echo -n $pwdSplit[-1]
|
||||
end
|
||||
|
@ -8,7 +8,9 @@ function lean_uninstall
|
||||
|
||||
# ---------------Erase Theme Variables---------------
|
||||
# --------------Colors--------------
|
||||
set -l vars $vars lean_green lean_light_blue lean_dark_blue lean_gold
|
||||
set -l vars $vars lean_color_green lean_color_light_blue lean_color_dark_blue lean_color_gold
|
||||
# --------------Timer--------------
|
||||
set -l vars $vars lean_timer_color lean_timer_decimals lean_timer_duration
|
||||
# ---------------Pwd---------------
|
||||
set -l vars $vars fish_prompt_pwd_dir_length lean_shorten_pwd_margin
|
||||
# ------------Git prompt------------
|
||||
|
@ -2,7 +2,7 @@ function lean_user_ask --argument-names question options
|
||||
set -l optionList (string split "/" $options)
|
||||
|
||||
for option in $optionList
|
||||
set -l upperOption (string upper $option)
|
||||
set -g upperOption (string upper $option)
|
||||
|
||||
if contains $upperOption $optionList
|
||||
set -g default (_indexMinusOne $upperOption $optionList)
|
||||
@ -13,16 +13,19 @@ function lean_user_ask --argument-names question options
|
||||
read -P "$question [$options] " input
|
||||
|
||||
set -l splitInput (string split -m1 '' $input)
|
||||
set -l lowerInput (string join0 (string lower $splitInput[1]) $splitInput[2])
|
||||
set -l upperInput (string join0 (string upper $splitInput[1]) $splitInput[2])
|
||||
set -l lowerInput (string join '' (string lower $splitInput[1]) $splitInput[2])
|
||||
set -l upperInput (string join '' (string upper $splitInput[1]) $splitInput[2])
|
||||
|
||||
if contains $lowerInput $optionList
|
||||
echo $lowerInput
|
||||
return (_indexMinusOne $lowerInput $optionList)
|
||||
end
|
||||
if contains $upperInput $optionList
|
||||
echo $upperInput
|
||||
return (_indexMinusOne $upperInput $optionList)
|
||||
end
|
||||
if test -z $input && set -q default
|
||||
echo $upperOption
|
||||
return $default
|
||||
end
|
||||
end
|
||||
|
212
functions/lean_wizard.fish
Normal file
212
functions/lean_wizard.fish
Normal file
@ -0,0 +1,212 @@
|
||||
function lean_wizard
|
||||
if test $COLUMNS -lt 55 || test $LINES -lt 21
|
||||
echo "Terminal size too small; must be at least 55 x 21"
|
||||
return 1
|
||||
end
|
||||
|
||||
set -g leanTimerDurationSave $lean_timer_duration
|
||||
set -U lean_timer_duration 0
|
||||
set -g tempPrompt "$__fish_config_dir/lean_theme/temp_prompt.fish"
|
||||
set -g moduleDir "$__fish_config_dir/lean_theme/prompt_modules"
|
||||
set -g fishPrompt "$__fish_config_dir/functions/fish_prompt.fish"
|
||||
set -g columns $COLUMNS
|
||||
set -g lines $LINES
|
||||
|
||||
_begin
|
||||
end
|
||||
|
||||
function _begin
|
||||
clear
|
||||
_setDefaults
|
||||
_promptHeight
|
||||
end
|
||||
|
||||
function _setDefaults
|
||||
set -g newline true
|
||||
set -g lean_prompt_connection " "
|
||||
set -g lean_prompt_connection_color 6C6C6C
|
||||
end
|
||||
|
||||
function _promptHeight
|
||||
_title "Prompt Height"
|
||||
|
||||
echo "(1) One line"
|
||||
_displayPrompt prompt_height 1
|
||||
|
||||
echo "(2) Two lines"
|
||||
_displayPrompt prompt_height 2
|
||||
|
||||
_displayRestartAndQuit
|
||||
|
||||
switch (lean_user_ask "Choice" 1/2/r/q)
|
||||
case 1
|
||||
set -g prompt_height 1
|
||||
_finish
|
||||
case 2
|
||||
set -g prompt_height 2
|
||||
_promptConnection
|
||||
case r
|
||||
_begin
|
||||
case q
|
||||
_quit
|
||||
end
|
||||
end
|
||||
|
||||
function _promptConnection
|
||||
clear
|
||||
_title "Prompt Connection"
|
||||
|
||||
echo "(1) Disconnected"
|
||||
_displayPrompt lean_prompt_connection " "
|
||||
|
||||
echo "(2) Dotted"
|
||||
_displayPrompt lean_prompt_connection "·"
|
||||
|
||||
echo "(3) Solid"
|
||||
_displayPrompt lean_prompt_connection "─"
|
||||
|
||||
_displayRestartAndQuit
|
||||
|
||||
switch (lean_user_ask "Choice" 1/2/3/r/q)
|
||||
case 1
|
||||
set -U lean_prompt_connection " "
|
||||
set -g lean_prompt_connection " "
|
||||
_promptConnectionColor
|
||||
case 2
|
||||
set -U lean_prompt_connection "·"
|
||||
set -g lean_prompt_connection "·"
|
||||
_promptConnectionColor
|
||||
case 3
|
||||
set -U lean_prompt_connection "─"
|
||||
set -g lean_prompt_connection "─"
|
||||
_promptConnectionColor
|
||||
case r
|
||||
_begin
|
||||
case q
|
||||
_quit
|
||||
end
|
||||
end
|
||||
|
||||
function _promptConnectionColor
|
||||
clear
|
||||
_title "Connection Color"
|
||||
|
||||
echo "(1) Lightest"
|
||||
_displayPrompt lean_prompt_connection_color 808080
|
||||
|
||||
echo "(2) Light"
|
||||
_displayPrompt lean_prompt_connection_color 6C6C6C
|
||||
|
||||
echo "(3) Dark"
|
||||
_displayPrompt lean_prompt_connection_color 585858
|
||||
|
||||
echo "(4) Darkest"
|
||||
_displayPrompt lean_prompt_connection_color 444444
|
||||
|
||||
_displayRestartAndQuit
|
||||
|
||||
switch (lean_user_ask "Choice" 1/2/3/4/r/q)
|
||||
case 1
|
||||
set -U lean_prompt_connection_color 808080
|
||||
set -g lean_prompt_connection_color 808080
|
||||
_promptSpacing
|
||||
case 2
|
||||
set -U lean_prompt_connection_color 6C6C6C
|
||||
set -g lean_prompt_connection_color 6C6C6C
|
||||
_promptSpacing
|
||||
case 3
|
||||
set -U lean_prompt_connection_color 585858
|
||||
set -g lean_prompt_connection_color 585858
|
||||
_promptSpacing
|
||||
case 4
|
||||
set -U lean_prompt_connection_color 444444
|
||||
set -g lean_prompt_connection_color 444444
|
||||
_promptSpacing
|
||||
case r
|
||||
_begin
|
||||
case q
|
||||
_quit
|
||||
end
|
||||
end
|
||||
|
||||
function _promptSpacing
|
||||
clear
|
||||
_title "Prompt Spacing"
|
||||
|
||||
echo "(1) Compact"
|
||||
_displayPrompt newline false
|
||||
_displayPrompt newline false
|
||||
|
||||
echo "(2) Sparse"
|
||||
_displayPrompt newline true
|
||||
_displayPrompt newline true
|
||||
|
||||
_displayRestartAndQuit
|
||||
|
||||
switch (lean_user_ask "Choice" 1/2/r/q)
|
||||
case 1
|
||||
set -g newline false
|
||||
_finish
|
||||
case 2
|
||||
set -g newline true
|
||||
_finish
|
||||
case r
|
||||
_begin
|
||||
case q
|
||||
_quit
|
||||
end
|
||||
end
|
||||
|
||||
function _assemble_prompt
|
||||
echo -n >$tempPrompt
|
||||
|
||||
_addMod 1_initial
|
||||
if test $newline = "true"
|
||||
_addMod 2_newline
|
||||
end
|
||||
_addMod "3_"$prompt_height"Line"
|
||||
_addMod 4_final
|
||||
end
|
||||
|
||||
function _addMod --argument-names file
|
||||
cat "$moduleDir/$file" >>$tempPrompt
|
||||
end
|
||||
|
||||
function _title --argument-names title
|
||||
set -l midCols (math $columns/2)
|
||||
set -l midTitle (math (string length $title)/2)
|
||||
|
||||
for i in (seq (math $midCols-$midTitle))
|
||||
echo -n " "
|
||||
end
|
||||
echo $title
|
||||
end
|
||||
|
||||
function _displayPrompt --argument-names var_name var_value
|
||||
set -g $var_name $var_value
|
||||
_assemble_prompt
|
||||
source $tempPrompt
|
||||
fish_prompt
|
||||
echo
|
||||
echo
|
||||
end
|
||||
|
||||
function _displayRestartAndQuit
|
||||
echo -e "(r) Restart from the beginning\n"
|
||||
echo -e "(q) Quit and do nothing\n"
|
||||
end
|
||||
|
||||
function _quit
|
||||
set -U lean_timer_duration $leanTimerDurationSave
|
||||
source $fishPrompt
|
||||
fish_prompt
|
||||
clear
|
||||
end
|
||||
|
||||
function _finish
|
||||
set -U lean_timer_duration $leanTimerDurationSave
|
||||
_assemble_prompt
|
||||
cat $tempPrompt >$fishPrompt
|
||||
source $fishPrompt
|
||||
clear
|
||||
end
|
26
install.fish
26
install.fish
@ -20,10 +20,14 @@ rm -rf $tempDir
|
||||
|
||||
# ----------------Set Theme Variables----------------
|
||||
# --------------Colors--------------
|
||||
set -U lean_green 5FD700
|
||||
set -U lean_light_blue 00AFFF
|
||||
set -U lean_dark_blue 0087AF
|
||||
set -U lean_gold D7AF00
|
||||
set -U lean_color_green 5FD700
|
||||
set -U lean_color_light_blue 00AFFF
|
||||
set -U lean_color_dark_blue 0087AF
|
||||
set -U lean_color_gold D7AF00
|
||||
# --------------Timer--------------
|
||||
set -U lean_timer_color 87875F
|
||||
set -U lean_timer_decimals 0
|
||||
set -U lean_timer_duration 3
|
||||
# ---------------Pwd---------------
|
||||
set -U fish_prompt_pwd_dir_length 0
|
||||
set -U lean_shorten_pwd_margin 5
|
||||
@ -40,13 +44,13 @@ set -U __fish_git_prompt_char_dirtystate ' !'
|
||||
set -U __fish_git_prompt_char_untrackedfiles ' ?'
|
||||
set -U __fish_git_prompt_char_stashstate " *"
|
||||
# --------Colors--------
|
||||
set -U __fish_git_prompt_color_branch $lean_green
|
||||
set -U __fish_git_prompt_color_upstream $lean_green
|
||||
set -U __fish_git_prompt_color_stagedstate $lean_gold
|
||||
set -U __fish_git_prompt_color_dirtystate $lean_gold
|
||||
set -U __fish_git_prompt_color_untrackedfiles $lean_light_blue
|
||||
set -U __fish_git_prompt_color_stashstate $lean_green
|
||||
set -U __fish_git_prompt_color_branch $lean_color_green
|
||||
set -U __fish_git_prompt_color_upstream $lean_color_green
|
||||
set -U __fish_git_prompt_color_stagedstate $lean_color_gold
|
||||
set -U __fish_git_prompt_color_dirtystate $lean_color_gold
|
||||
set -U __fish_git_prompt_color_untrackedfiles $lean_color_light_blue
|
||||
set -U __fish_git_prompt_color_stashstate $lean_color_green
|
||||
|
||||
set_color $lean_green
|
||||
set_color $lean_color_green
|
||||
echo "Lean theme installed! Restart fish to see your new prompt."
|
||||
set_color $fish_color_normal
|
2
lean_theme/prompt_modules/1_initial
Normal file
2
lean_theme/prompt_modules/1_initial
Normal file
@ -0,0 +1,2 @@
|
||||
function fish_prompt --description 'Write out the prompt'
|
||||
set -l last_status $status
|
1
lean_theme/prompt_modules/2_newline
Normal file
1
lean_theme/prompt_modules/2_newline
Normal file
@ -0,0 +1 @@
|
||||
echo
|
1
lean_theme/prompt_modules/3_1Line
Normal file
1
lean_theme/prompt_modules/3_1Line
Normal file
@ -0,0 +1 @@
|
||||
echo -n (lean_pwd)(lean_git_prompt)" "
|
17
lean_theme/prompt_modules/3_2Line
Normal file
17
lean_theme/prompt_modules/3_2Line
Normal file
@ -0,0 +1,17 @@
|
||||
if test (math $CMD_DURATION/1000) -gt $lean_timer_duration
|
||||
for i in (seq (math $COLUMNS-(string length (echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"))-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
set_color $lean_timer_color
|
||||
echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"
|
||||
set_color $fish_color_normal
|
||||
else
|
||||
for i in (seq (math $COLUMNS-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
end
|
||||
echo -e "\r"(lean_pwd)(lean_git_prompt)" "
|
9
lean_theme/prompt_modules/4_final
Normal file
9
lean_theme/prompt_modules/4_final
Normal file
@ -0,0 +1,9 @@
|
||||
# Prompt character
|
||||
if test $last_status -eq 0
|
||||
set_color $lean_green
|
||||
else
|
||||
set_color $fish_color_error
|
||||
end
|
||||
echo -n "❯ "
|
||||
set_color $fish_color_normal
|
||||
end
|
29
lean_theme/temp_prompt.fish
Normal file
29
lean_theme/temp_prompt.fish
Normal file
@ -0,0 +1,29 @@
|
||||
function fish_prompt --description 'Write out the prompt'
|
||||
set -l last_status $status
|
||||
echo
|
||||
if test (math $CMD_DURATION/1000) -gt $lean_timer_duration
|
||||
for i in (seq (math $COLUMNS-(string length (echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"))-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
set_color $lean_timer_color
|
||||
echo -n " "(math --scale=$lean_timer_decimals $CMD_DURATION/1000)"s"
|
||||
set_color $fish_color_normal
|
||||
else
|
||||
for i in (seq (math $COLUMNS-1))
|
||||
set_color $lean_prompt_connection_color
|
||||
echo -n $lean_prompt_connection
|
||||
set_color $fish_color_normal
|
||||
end
|
||||
end
|
||||
echo -e "\r"(lean_pwd)(lean_git_prompt)" "
|
||||
# Prompt character
|
||||
if test $last_status -eq 0
|
||||
set_color $lean_green
|
||||
else
|
||||
set_color $fish_color_error
|
||||
end
|
||||
echo -n "❯ "
|
||||
set_color $fish_color_normal
|
||||
end
|
Loading…
Reference in New Issue
Block a user