From b88d77fb2d0d5028a6f5670695dee6bec129501f Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Fri, 5 Apr 2024 11:57:45 -0400 Subject: ahhh sloppy fish, still needs fixing, esp with the vars --- .../tide/configure/choices/all/finish.fish | 46 ++++++++++++++++++++++ .../tide/configure/choices/all/icons.fish | 33 ++++++++++++++++ .../tide/configure/choices/all/prompt_colors.fish | 26 ++++++++++++ .../configure/choices/all/prompt_connection.fish | 31 +++++++++++++++ .../all/prompt_connection_andor_frame_color.fish | 40 +++++++++++++++++++ .../tide/configure/choices/all/prompt_spacing.fish | 22 +++++++++++ .../tide/configure/choices/all/show_time.fish | 33 ++++++++++++++++ .../tide/configure/choices/all/style.fish | 36 +++++++++++++++++ .../tide/configure/choices/all/transient.fish | 22 +++++++++++ 9 files changed, 289 insertions(+) create mode 100644 home-config/fish/functions/tide/configure/choices/all/finish.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/icons.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/prompt_colors.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/prompt_connection.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/prompt_spacing.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/show_time.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/style.fish create mode 100644 home-config/fish/functions/tide/configure/choices/all/transient.fish (limited to 'home-config/fish/functions/tide/configure/choices/all') diff --git a/home-config/fish/functions/tide/configure/choices/all/finish.fish b/home-config/fish/functions/tide/configure/choices/all/finish.fish new file mode 100644 index 0000000..f670b1e --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/finish.fish @@ -0,0 +1,46 @@ +function finish + _tide_title Finish + + echo + set_color red + _tide_option y 'Overwrite your current tide config' + set_color normal + echo + + _tide_option p 'Exit and print the config you just generated' + echo + + _tide_menu (status function) + switch $_tide_selected_option + case 'Overwrite your current tide config' + _tide_finish + command -q clear && clear + set -q _flag_auto || _tide_print_configure_current_options + case 'Exit and print the config you just generated' + _tide_exit_configure + command -q clear && clear + _tide_print_configure_current_options + end +end + +function _tide_finish + _tide_exit_configure + + # Deal with prompt char/vi mode + contains character $fake_tide_left_prompt_items || set -p fake_tide_left_prompt_items vi_mode + + # Set the real variables + for fakeVar in (set --names | string match -r "^fake_tide.*") + set -U (string replace 'fake_' '' $fakeVar) $$fakeVar + end + + # Make sure old prompt won't display + set -e $_tide_prompt_var 2>/dev/null + + # Re-initialize the prompt + tide reload +end + +function _tide_print_configure_current_options + _tide_fish_colorize "tide configure --auto $_tide_configure_current_options" +end diff --git a/home-config/fish/functions/tide/configure/choices/all/icons.fish b/home-config/fish/functions/tide/configure/choices/all/icons.fish new file mode 100644 index 0000000..be167bb --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/icons.fish @@ -0,0 +1,33 @@ +function icons + _tide_title Icons + + _tide_option 1 'Few icons' + _tide_display_prompt + + _tide_option 2 'Many icons' + _enable_icons + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case 'Few icons' + _disable_icons + end + _next_choice all/transient +end + +function _enable_icons + set -p fake_tide_left_prompt_items os + set -g fake_tide_pwd_icon  + set -g fake_tide_pwd_icon_home  + set -g fake_tide_cmd_duration_icon  + set -g fake_tide_git_icon  +end + +function _disable_icons + _tide_find_and_remove os fake_tide_left_prompt_items + set fake_tide_pwd_icon + set fake_tide_pwd_icon_home + set fake_tide_cmd_duration_icon + set fake_tide_git_icon +end diff --git a/home-config/fish/functions/tide/configure/choices/all/prompt_colors.fish b/home-config/fish/functions/tide/configure/choices/all/prompt_colors.fish new file mode 100644 index 0000000..247ef4e --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/prompt_colors.fish @@ -0,0 +1,26 @@ +function prompt_colors + _tide_title 'Prompt Colors' + + _tide_option 1 'True color' + _tide_display_prompt + + _tide_option 2 '16 colors' + _load_config "$_tide_configure_style"_16color + set -g _tide_16color true + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case 'True color' + _load_config "$_tide_configure_style" + set -e _tide_16color + switch $_tide_configure_style + case lean rainbow + _next_choice all/show_time + case classic + _next_choice classic/classic_prompt_color + end + case '16 colors' + _next_choice all/show_time + end +end diff --git a/home-config/fish/functions/tide/configure/choices/all/prompt_connection.fish b/home-config/fish/functions/tide/configure/choices/all/prompt_connection.fish new file mode 100644 index 0000000..ff76546 --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/prompt_connection.fish @@ -0,0 +1,31 @@ +function prompt_connection + _tide_title 'Prompt Connection' + + _tide_option 1 Disconnected + set -g fake_tide_prompt_icon_connection ' ' + _tide_display_prompt + + _tide_option 2 Dotted + set -g fake_tide_prompt_icon_connection '·' + _tide_display_prompt + + _tide_option 3 Solid + set -g fake_tide_prompt_icon_connection '─' + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case Disconnected + set -g fake_tide_prompt_icon_connection ' ' + case Dotted + set -g fake_tide_prompt_icon_connection '·' + case Solid + set -g fake_tide_prompt_icon_connection '─' + end + switch $_tide_configure_style + case lean + _next_choice all/prompt_connection_andor_frame_color + case classic rainbow + _next_choice powerline/powerline_right_prompt_frame + end +end diff --git a/home-config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish b/home-config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish new file mode 100644 index 0000000..cefbf2c --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish @@ -0,0 +1,40 @@ +function prompt_connection_andor_frame_color + if test "$_tide_16color" = true || + test "$fake_tide_left_prompt_frame_enabled" = false -a \ + "$fake_tide_right_prompt_frame_enabled" = false -a \ + "$fake_tide_prompt_icon_connection" = ' ' + _next_choice all/prompt_spacing + return 0 + end + + _tide_title "Connection & Frame Color" + + _tide_option 1 Lightest + set -g fake_tide_prompt_color_frame_and_connection 808080 + _tide_display_prompt + + _tide_option 2 Light + set -g fake_tide_prompt_color_frame_and_connection 6C6C6C + _tide_display_prompt + + _tide_option 3 Dark + set -g fake_tide_prompt_color_frame_and_connection 585858 + _tide_display_prompt + + _tide_option 4 Darkest + set -g fake_tide_prompt_color_frame_and_connection 444444 + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case Lightest + set -g fake_tide_prompt_color_frame_and_connection 808080 + case Light + set -g fake_tide_prompt_color_frame_and_connection 6C6C6C + case Dark + set -g fake_tide_prompt_color_frame_and_connection 585858 + case Darkest + set -g fake_tide_prompt_color_frame_and_connection 444444 + end + _next_choice all/prompt_spacing +end diff --git a/home-config/fish/functions/tide/configure/choices/all/prompt_spacing.fish b/home-config/fish/functions/tide/configure/choices/all/prompt_spacing.fish new file mode 100644 index 0000000..f68be68 --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/prompt_spacing.fish @@ -0,0 +1,22 @@ +function prompt_spacing + _tide_title 'Prompt Spacing' + + _tide_option 1 Compact + set -g fake_tide_prompt_add_newline_before false + _tide_display_prompt + _tide_display_prompt + + _tide_option 2 Sparse + set -g fake_tide_prompt_add_newline_before true + _tide_display_prompt + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case Compact + set -g fake_tide_prompt_add_newline_before false + case Sparse + set -g fake_tide_prompt_add_newline_before true + end + _next_choice all/icons +end diff --git a/home-config/fish/functions/tide/configure/choices/all/show_time.fish b/home-config/fish/functions/tide/configure/choices/all/show_time.fish new file mode 100644 index 0000000..b66c785 --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/show_time.fish @@ -0,0 +1,33 @@ +function show_time + _tide_title 'Show current time?' + + _tide_option 1 No + _tide_display_prompt + + set -a fake_tide_right_prompt_items time + + _tide_option 2 '24-hour format' + set -g fake_tide_time_format %T + _tide_display_prompt + + _tide_option 3 '12-hour format' + set -g fake_tide_time_format %r + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case No + set -g fake_tide_time_format '' + set -e fake_tide_right_prompt_items[-1] + case '24-hour format' + set -g fake_tide_time_format %T + case '12-hour format' + set -g fake_tide_time_format %r + end + switch $_tide_configure_style + case lean + _next_choice "$_tide_configure_style"/"$_tide_configure_style"_prompt_height + case classic rainbow + _next_choice "$_tide_configure_style"/"$_tide_configure_style"_prompt_separators + end +end diff --git a/home-config/fish/functions/tide/configure/choices/all/style.fish b/home-config/fish/functions/tide/configure/choices/all/style.fish new file mode 100644 index 0000000..fe9a58f --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/style.fish @@ -0,0 +1,36 @@ +function style + set -g _tide_configure_current_options + + _tide_title 'Prompt Style' + + _tide_option 1 Lean + _load_config lean + _tide_display_prompt + + _tide_option 2 Classic + _load_config classic + _tide_display_prompt + + _tide_option 3 Rainbow + _load_config rainbow + _tide_display_prompt + + _tide_menu (status function) --no-restart + switch $_tide_selected_option + case Lean + _load_config lean + set -g _tide_configure_style lean + case Classic + _load_config classic + set -g _tide_configure_style classic + case Rainbow + _load_config rainbow + set -g _tide_configure_style rainbow + end + _next_choice all/prompt_colors +end + +function _load_config -a name + string replace -r '^' 'set -g fake_' <(status dirname)/../../icons.fish | source + string replace -r '^' 'set -g fake_' <(status dirname)/../../configs/$name.fish | source +end diff --git a/home-config/fish/functions/tide/configure/choices/all/transient.fish b/home-config/fish/functions/tide/configure/choices/all/transient.fish new file mode 100644 index 0000000..df2b6b6 --- /dev/null +++ b/home-config/fish/functions/tide/configure/choices/all/transient.fish @@ -0,0 +1,22 @@ +function transient + _tide_title 'Enable transient prompt?' + + _tide_option 1 No + _tide_display_prompt + _tide_display_prompt + _tide_display_prompt + + _tide_option 2 Yes + _configure_transient= _tide_display_prompt + _configure_transient= _tide_display_prompt + _tide_display_prompt + + _tide_menu (status function) + switch $_tide_selected_option + case No + set fake_tide_prompt_transient_enabled false + case Yes + set fake_tide_prompt_transient_enabled true + end + _next_choice all/finish +end -- cgit v1.2.3