summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Gonzalez <roger@rogs.me>2023-03-18 16:40:57 -0300
committerRoger Gonzalez <roger@rogs.me>2023-03-18 16:40:57 -0300
commit8600374371f91843064441113f4023cda1730877 (patch)
treebb4677ec186dd5c323f1f010207076b7df285606
parentc95dd49df12f4f8dc13cf3bdc4dad70a060bd5eb (diff)
General fish fixes and updates
-rw-r--r--.config/fish/abbreviations.fish9
-rw-r--r--.config/fish/completions/docker-compose.fish279
-rw-r--r--.config/fish/completions/docker.fish602
-rw-r--r--.config/fish/completions/fisher.fish8
-rw-r--r--.config/fish/completions/fzf_configure_bindings.fish7
-rw-r--r--.config/fish/completions/mm.fish4
-rw-r--r--.config/fish/completions/spark.fish4
-rw-r--r--.config/fish/completions/tide.fish12
-rw-r--r--.config/fish/conf.d/_tide_init.fish41
-rw-r--r--.config/fish/conf.d/abbr_tips.fish155
-rw-r--r--.config/fish/conf.d/fzf.fish28
-rw-r--r--.config/fish/conf.d/halostatue_fish_docker.fish31
-rw-r--r--.config/fish/config.fish2
-rw-r--r--.config/fish/fish_plugins7
-rw-r--r--.config/fish/fish_variables179
-rw-r--r--.config/fish/fishd.tmp.8rOSmX0
-rw-r--r--.config/fish/functions/__abbr_tips_bind_newline.fish10
-rw-r--r--.config/fish/functions/__abbr_tips_bind_space.fish11
-rw-r--r--.config/fish/functions/__abbr_tips_init.fish24
-rw-r--r--.config/fish/functions/__mm_dependencies.fish78
-rw-r--r--.config/fish/functions/_fzf_configure_bindings_help.fish43
-rw-r--r--.config/fish/functions/_fzf_extract_var_info.fish15
-rw-r--r--.config/fish/functions/_fzf_preview_changed_file.fish30
-rw-r--r--.config/fish/functions/_fzf_preview_file.fish43
-rw-r--r--.config/fish/functions/_fzf_report_diff_type.fish16
-rw-r--r--.config/fish/functions/_fzf_report_file_type.fish6
-rw-r--r--.config/fish/functions/_fzf_search_directory.fish44
-rw-r--r--.config/fish/functions/_fzf_search_git_log.fish28
-rw-r--r--.config/fish/functions/_fzf_search_git_status.fish34
-rw-r--r--.config/fish/functions/_fzf_search_history.fish30
-rw-r--r--.config/fish/functions/_fzf_search_processes.fish28
-rw-r--r--.config/fish/functions/_fzf_search_variables.fish46
-rw-r--r--.config/fish/functions/_fzf_wrapper.fish20
-rw-r--r--.config/fish/functions/_tide_1_line_prompt.fish19
-rw-r--r--.config/fish/functions/_tide_2_line_prompt.fish31
-rw-r--r--.config/fish/functions/_tide_cache_variables.fish17
-rw-r--r--.config/fish/functions/_tide_detect_os.fish75
-rw-r--r--.config/fish/functions/_tide_find_and_remove.fish3
-rw-r--r--.config/fish/functions/_tide_item_aws.fish11
-rw-r--r--.config/fish/functions/_tide_item_character.fish17
-rw-r--r--.config/fish/functions/_tide_item_chruby.fish3
-rw-r--r--.config/fish/functions/_tide_item_cmd_duration.fish11
-rw-r--r--.config/fish/functions/_tide_item_context.fish9
-rw-r--r--.config/fish/functions/_tide_item_docker.fish5
-rw-r--r--.config/fish/functions/_tide_item_git.fish67
-rw-r--r--.config/fish/functions/_tide_item_go.fish3
-rw-r--r--.config/fish/functions/_tide_item_java.fish3
-rw-r--r--.config/fish/functions/_tide_item_jobs.fish3
-rw-r--r--.config/fish/functions/_tide_item_kubectl.fish4
-rw-r--r--.config/fish/functions/_tide_item_nix_shell.fish3
-rw-r--r--.config/fish/functions/_tide_item_node.fish3
-rw-r--r--.config/fish/functions/_tide_item_os.fish3
-rw-r--r--.config/fish/functions/_tide_item_php.fish3
-rw-r--r--.config/fish/functions/_tide_item_private_mode.fish3
-rw-r--r--.config/fish/functions/_tide_item_rustc.fish3
-rw-r--r--.config/fish/functions/_tide_item_shlvl.fish4
-rw-r--r--.config/fish/functions/_tide_item_status.fish15
-rw-r--r--.config/fish/functions/_tide_item_terraform.fish6
-rw-r--r--.config/fish/functions/_tide_item_time.fish3
-rw-r--r--.config/fish/functions/_tide_item_toolbox.fish3
-rw-r--r--.config/fish/functions/_tide_item_vi_mode.fish16
-rw-r--r--.config/fish/functions/_tide_item_virtual_env.fish11
-rw-r--r--.config/fish/functions/_tide_print_item.fish22
-rw-r--r--.config/fish/functions/_tide_pwd.fish37
-rw-r--r--.config/fish/functions/_tide_remove_unusable_items.fish21
-rw-r--r--.config/fish/functions/_tide_sub_bug-report.fish73
-rw-r--r--.config/fish/functions/_tide_sub_configure.fish95
-rw-r--r--.config/fish/functions/fish_mode_prompt.fish1
-rw-r--r--.config/fish/functions/fish_prompt.fish87
-rw-r--r--.config/fish/functions/fisher.fish578
-rw-r--r--.config/fish/functions/fzf_configure_bindings.fish46
-rw-r--r--.config/fish/functions/git_pull_all.fish7
-rw-r--r--.config/fish/functions/git_sync_all.fish6
-rw-r--r--.config/fish/functions/mm.fish153
-rw-r--r--.config/fish/functions/prometeo-jenkins.fish3
-rw-r--r--.config/fish/functions/prometeo.fish2
-rw-r--r--.config/fish/functions/spark.fish33
-rw-r--r--.config/fish/functions/tide.fish27
-rw-r--r--.config/fish/functions/tide/configure/choices/all/finish.fish33
-rw-r--r--.config/fish/functions/tide/configure/choices/all/icons.fish33
-rw-r--r--.config/fish/functions/tide/configure/choices/all/prompt_colors.fish26
-rw-r--r--.config/fish/functions/tide/configure/choices/all/prompt_connection.fish28
-rw-r--r--.config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish36
-rw-r--r--.config/fish/functions/tide/configure/choices/all/prompt_spacing.fish21
-rw-r--r--.config/fish/functions/tide/configure/choices/all/show_time.fish31
-rw-r--r--.config/fish/functions/tide/configure/choices/all/style.fish57
-rw-r--r--.config/fish/functions/tide/configure/choices/classic/classic_prompt_color.fish38
-rw-r--r--.config/fish/functions/tide/configure/choices/classic/classic_prompt_separators.fish40
-rw-r--r--.config/fish/functions/tide/configure/choices/lean/lean_prompt_height.fish26
-rw-r--r--.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_frame.fish46
-rw-r--r--.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_heads.fish40
-rw-r--r--.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_height.fish30
-rw-r--r--.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_tails.fish48
-rw-r--r--.config/fish/functions/tide/configure/choices/rainbow/rainbow_prompt_separators.fish40
-rw-r--r--.config/fish/functions/tide/configure/configs/classic.fish129
-rw-r--r--.config/fish/functions/tide/configure/configs/classic_16color.fish73
-rw-r--r--.config/fish/functions/tide/configure/configs/lean.fish129
-rw-r--r--.config/fish/functions/tide/configure/configs/lean_16color.fish73
-rw-r--r--.config/fish/functions/tide/configure/configs/rainbow.fish129
-rw-r--r--.config/fish/functions/tide/configure/configs/rainbow_16color.fish77
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_cache_variables.fish41
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_character.fish5
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_cmd_duration.fish3
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_git.fish3
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_newline.fish5
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_os.fish3
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_item_time.fish3
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_print_item.fish22
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_prompt.fish42
-rw-r--r--.config/fish/functions/tide/configure/functions/_fake_tide_pwd.fish11
110 files changed, 4351 insertions, 392 deletions
diff --git a/.config/fish/abbreviations.fish b/.config/fish/abbreviations.fish
index e02ed354..033138bf 100644
--- a/.config/fish/abbreviations.fish
+++ b/.config/fish/abbreviations.fish
@@ -25,6 +25,8 @@ abbr gcd 'git checkout develop'
abbr gpd 'git pull origin develop'
abbr gst 'git stash'
abbr gsta 'git stash apply'
+abbr gpa 'git remote | xargs -I % git push % --all'
+abbr gcr 'ssh git@rogs.me git init --bare'
# <a href="https://github.com/petervanderdoes/gitflow-avh">Git Flow AVH</a>
abbr gf 'git flow'
@@ -81,8 +83,5 @@ abbr rmrf 'rm -rf'
abbr tc 'tar czvf'
abbr tx 'tar xzvf'
-# SSH
-abbr cloud 'ssh root@cloud.rogs.me'
-abbr coca-prod 'ssh -i ~/.ssh/keys/pincodes-api.pem ubuntu@api-pincodes.destapp.com'
-abbr coca-dev 'ssh -i ~/.ssh/keys/pincodes-api.pem ubuntu@dev-api-pincodes.destapp.com'
-abbr coca-admin 'ssh -i ~/.ssh/keys/pincodes-api.pem ubuntu@admin-coupon.destapp.com'
+# Hugo
+abbr hss 'hugo serve --noHTTPCache'
diff --git a/.config/fish/completions/docker-compose.fish b/.config/fish/completions/docker-compose.fish
new file mode 100644
index 00000000..9073724b
--- /dev/null
+++ b/.config/fish/completions/docker-compose.fish
@@ -0,0 +1,279 @@
+# docker-compose completions for fish shell
+#
+# This file is generated by `gen_completions.rb` from
+# https://github.com/halostatue/fish-docker
+
+complete -e -c docker-compose
+
+# Completions currently supported:
+# - parameters
+# - commands
+# - services
+
+function _halostatue_fish_docker_compose_no_subcommand
+ for i in (commandline -opc)
+ contains -- $i build convert cp create down events exec images kill logs ls pause port ps pull push restart rm run start stop top unpause up version; and return 1
+ end
+ return 0
+end
+
+# common options
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition _halostatue_fish_docker_compose_no_subcommand --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition _halostatue_fish_docker_compose_no_subcommand --exclusive --short-option p --long-option project-name
+
+
+# subcommands
+# build
+complete --command docker-compose --description "Build or rebuild services" --condition _halostatue_fish_docker_compose_no_subcommand --arguments build
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from build' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from build' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from build' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from build' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from build' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from build' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from build' --exclusive --short-option p --long-option project-name
+
+# convert
+complete --command docker-compose --description "Converts the compose file to platform's canonical format" --condition _halostatue_fish_docker_compose_no_subcommand --arguments convert
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from convert' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from convert' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from convert' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from convert' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from convert' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from convert' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from convert' --exclusive --short-option p --long-option project-name
+
+# cp
+complete --command docker-compose --description "Copy files/folders between a service container and the local filesystem" --condition _halostatue_fish_docker_compose_no_subcommand --arguments cp
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from cp' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from cp' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from cp' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from cp' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from cp' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from cp' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from cp' --exclusive --short-option p --long-option project-name
+
+# create
+complete --command docker-compose --description "Creates containers for a service." --condition _halostatue_fish_docker_compose_no_subcommand --arguments create
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from create' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from create' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from create' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from create' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from create' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from create' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from create' --exclusive --short-option p --long-option project-name
+
+# down
+complete --command docker-compose --description "Stop and remove containers, networks" --condition _halostatue_fish_docker_compose_no_subcommand --arguments down
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from down' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from down' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from down' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from down' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from down' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from down' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from down' --exclusive --short-option p --long-option project-name
+
+# events
+complete --command docker-compose --description "Receive real time events from containers." --condition _halostatue_fish_docker_compose_no_subcommand --arguments events
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from events' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from events' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from events' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from events' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from events' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from events' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from events' --exclusive --short-option p --long-option project-name
+
+# exec
+complete --command docker-compose --description "Execute a command in a running container." --condition _halostatue_fish_docker_compose_no_subcommand --arguments exec
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from exec' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from exec' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from exec' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from exec' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from exec' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from exec' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from exec' --exclusive --short-option p --long-option project-name
+
+# images
+complete --command docker-compose --description "List images used by the created containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments images
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from images' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from images' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from images' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from images' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from images' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from images' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from images' --exclusive --short-option p --long-option project-name
+
+# kill
+complete --command docker-compose --description "Force stop service containers." --condition _halostatue_fish_docker_compose_no_subcommand --arguments kill
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from kill' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from kill' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from kill' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from kill' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from kill' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from kill' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from kill' --exclusive --short-option p --long-option project-name
+
+# logs
+complete --command docker-compose --description "View output from containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments logs
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from logs' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from logs' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from logs' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from logs' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from logs' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from logs' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from logs' --exclusive --short-option p --long-option project-name
+
+# ls
+complete --command docker-compose --description "List running compose projects" --condition _halostatue_fish_docker_compose_no_subcommand --arguments ls
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from ls' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from ls' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from ls' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from ls' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from ls' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from ls' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from ls' --exclusive --short-option p --long-option project-name
+
+# pause
+complete --command docker-compose --description "Pause services" --condition _halostatue_fish_docker_compose_no_subcommand --arguments pause
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from pause' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from pause' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from pause' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from pause' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from pause' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from pause' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from pause' --exclusive --short-option p --long-option project-name
+
+# port
+complete --command docker-compose --description "Print the public port for a port binding." --condition _halostatue_fish_docker_compose_no_subcommand --arguments port
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from port' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from port' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from port' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from port' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from port' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from port' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from port' --exclusive --short-option p --long-option project-name
+
+# ps
+complete --command docker-compose --description "List containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments ps
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from ps' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from ps' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from ps' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from ps' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from ps' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from ps' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from ps' --exclusive --short-option p --long-option project-name
+
+# pull
+complete --command docker-compose --description "Pull service images" --condition _halostatue_fish_docker_compose_no_subcommand --arguments pull
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from pull' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from pull' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from pull' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from pull' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from pull' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from pull' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from pull' --exclusive --short-option p --long-option project-name
+
+# push
+complete --command docker-compose --description "Push service images" --condition _halostatue_fish_docker_compose_no_subcommand --arguments push
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from push' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from push' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from push' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from push' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from push' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from push' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from push' --exclusive --short-option p --long-option project-name
+
+# restart
+complete --command docker-compose --description "Restart containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments restart
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from restart' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from restart' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from restart' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from restart' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from restart' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from restart' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from restart' --exclusive --short-option p --long-option project-name
+
+# rm
+complete --command docker-compose --description "Removes stopped service containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments rm
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from rm' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from rm' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from rm' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from rm' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from rm' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from rm' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from rm' --exclusive --short-option p --long-option project-name
+
+# run
+complete --command docker-compose --description "Run a one-off command on a service." --condition _halostatue_fish_docker_compose_no_subcommand --arguments run
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from run' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from run' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from run' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from run' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from run' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from run' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from run' --exclusive --short-option p --long-option project-name
+
+# start
+complete --command docker-compose --description "Start services" --condition _halostatue_fish_docker_compose_no_subcommand --arguments start
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from start' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from start' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from start' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from start' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from start' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from start' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from start' --exclusive --short-option p --long-option project-name
+
+# stop
+complete --command docker-compose --description "Stop services" --condition _halostatue_fish_docker_compose_no_subcommand --arguments stop
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from stop' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from stop' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from stop' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from stop' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from stop' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from stop' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from stop' --exclusive --short-option p --long-option project-name
+
+# top
+complete --command docker-compose --description "Display the running processes" --condition _halostatue_fish_docker_compose_no_subcommand --arguments top
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from top' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from top' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from top' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from top' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from top' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from top' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from top' --exclusive --short-option p --long-option project-name
+
+# unpause
+complete --command docker-compose --description "Unpause services" --condition _halostatue_fish_docker_compose_no_subcommand --arguments unpause
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from unpause' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from unpause' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from unpause' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from unpause' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from unpause' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from unpause' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from unpause' --exclusive --short-option p --long-option project-name
+
+# up
+complete --command docker-compose --description "Create and start containers" --condition _halostatue_fish_docker_compose_no_subcommand --arguments up
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from up' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from up' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from up' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from up' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from up' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from up' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from up' --exclusive --short-option p --long-option project-name
+
+# version
+complete --command docker-compose --description "Show the Docker Compose version information" --condition _halostatue_fish_docker_compose_no_subcommand --arguments version
+complete --command docker-compose --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from version' --exclusive --long-option ansi
+complete --command docker-compose --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from version' --long-option compatibility
+complete --command docker-compose --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from version' --exclusive --long-option env-file
+complete --command docker-compose --description "Compose configuration files" --condition '__fish_seen_subcommand_from version' --exclusive --short-option f --long-option file
+complete --command docker-compose --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from version' --exclusive --long-option profile
+complete --command docker-compose --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from version' --exclusive --long-option project-directory
+complete --command docker-compose --description "Project name" --condition '__fish_seen_subcommand_from version' --exclusive --short-option p --long-option project-name
diff --git a/.config/fish/completions/docker.fish b/.config/fish/completions/docker.fish
new file mode 100644
index 00000000..99d61d38
--- /dev/null
+++ b/.config/fish/completions/docker.fish
@@ -0,0 +1,602 @@
+# docker completions for fish shell
+#
+# This file is generated by `gen_completions.rb` from
+# https://github.com/halostatue/fish-docker
+
+complete -e -c docker
+
+# Completions currently supported:
+# - parameters
+# - commands
+# - containers
+# - images
+# - repositories
+#
+# Management commands (commands with subcommands) are not yet supported.
+
+function _halostatue_fish_docker_no_subcommand
+ for i in (commandline -opc)
+ contains -- $i attach build builder commit compose config container context cp create diff events exec export history image images import info inspect kill load login logout logs manifest network node pause plugin port ps pull push rename restart rm rmi run save search secret service stack start stats stop swarm system tag top trust unpause update version volume wait; and return 1
+ end
+ return 0
+end
+
+# common options
+complete --command docker --description "Location of client config files (default \"~/.docker\")" --condition _halostatue_fish_docker_no_subcommand --require-parameter --long-option config
+complete --command docker --description "Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var" --condition _halostatue_fish_docker_no_subcommand --exclusive --short-option c --long-option context
+complete --command docker --description "Enable debug mode" --condition _halostatue_fish_docker_no_subcommand --short-option D --long-option debug
+complete --command docker --description "Daemon socket(s) to connect to" --condition _halostatue_fish_docker_no_subcommand --exclusive --short-option H --long-option host
+complete --command docker --description "Set the logging level (\"debug\"|\"info\"|\"warn\"|\"error\"|\"fatal\") (default \"info\")" --condition _halostatue_fish_docker_no_subcommand --exclusive --short-option l --long-option log-level
+complete --command docker --description "Use TLS; implied by --tlsverify" --condition _halostatue_fish_docker_no_subcommand --long-option tls
+complete --command docker --description "Trust certs signed only by this CA (default \"~/.docker/ca.pem\")" --condition _halostatue_fish_docker_no_subcommand --require-parameter --long-option tlscacert
+complete --command docker --description "Path to TLS certificate file (default \"~/.docker/cert.pem\")" --condition _halostatue_fish_docker_no_subcommand --require-parameter --long-option tlscert
+complete --command docker --description "Path to TLS key file (default \"~/.docker/key.pem\")" --condition _halostatue_fish_docker_no_subcommand --require-parameter --long-option tlskey
+complete --command docker --description "Use TLS and verify the remote" --condition _halostatue_fish_docker_no_subcommand --long-option tlsverify
+complete --command docker --description "Print version information and quit" --condition _halostatue_fish_docker_no_subcommand --short-option v --long-option version
+
+
+# subcommands
+# attach
+complete --command docker --description "Attach local standard input, output, and error streams to a running container" --condition _halostatue_fish_docker_no_subcommand --arguments attach
+complete --command docker --description "Override the key sequence for detaching a container" --condition '__fish_seen_subcommand_from attach' --exclusive --long-option detach-keys
+complete --command docker --description "Do not attach STDIN" --condition '__fish_seen_subcommand_from attach' --long-option no-stdin
+complete --command docker --description "Proxy all received signals to the process (default true)" --condition '__fish_seen_subcommand_from attach' --long-option sig-proxy
+complete --command docker --description Container --condition '__fish_seen_subcommand_from attach' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# build
+complete --command docker --description "Build an image from a Dockerfile" --condition _halostatue_fish_docker_no_subcommand --arguments build
+complete --command docker --description "Add a custom host-to-IP mapping (host:ip)" --condition '__fish_seen_subcommand_from build' --exclusive --long-option add-host
+complete --command docker --description "Set build-time variables" --condition '__fish_seen_subcommand_from build' --exclusive --long-option build-arg
+complete --command docker --description "Images to consider as cache sources" --condition '__fish_seen_subcommand_from build' --exclusive --long-option cache-from
+complete --command docker --description "Skip image verification (default true)" --condition '__fish_seen_subcommand_from build' --long-option disable-content-trust
+complete --command docker --description "Name of the Dockerfile (Default is 'PATH/Dockerfile')" --condition '__fish_seen_subcommand_from build' --exclusive --short-option f --long-option file
+complete --command docker --description "Write the image ID to the file" --condition '__fish_seen_subcommand_from build' --exclusive --long-option iidfile
+complete --command docker --description "Container isolation technology" --condition '__fish_seen_subcommand_from build' --exclusive --long-option isolation
+complete --command docker --description "Set metadata for an image" --condition '__fish_seen_subcommand_from build' --exclusive --long-option label
+complete --command docker --description "Set the networking mode for the RUN instructions during build (default \"default\")" --condition '__fish_seen_subcommand_from build' --exclusive --long-option network
+complete --command docker --description "Do not use cache when building the image" --condition '__fish_seen_subcommand_from build' --long-option no-cache
+complete --command docker --description "Output destination (format: type=local,dest=path)" --condition '__fish_seen_subcommand_from build' --exclusive --short-option o --long-option output
+complete --command docker --description "Set platform if server is multi-platform capable" --condition '__fish_seen_subcommand_from build' --exclusive --long-option platform
+complete --command docker --description "Set type of progress output (auto, plain, tty). Use plain to show container" --condition '__fish_seen_subcommand_from build' --exclusive --long-option progress
+complete --command docker --description "Always attempt to pull a newer version of the image" --condition '__fish_seen_subcommand_from build' --long-option pull
+complete --command docker --description "Suppress the build output and print image ID on success" --condition '__fish_seen_subcommand_from build' --short-option q --long-option quiet
+complete --command docker --description PATH --condition '__fish_seen_subcommand_from build' --force-files --require-parameter
+complete --command docker --description URL --condition '__fish_seen_subcommand_from build' --exclusive
+complete --command docker --description STDIN --condition '__fish_seen_subcommand_from build' --arguments - --exclusive
+
+# commit
+complete --command docker --description "Create a new image from a container's changes" --condition _halostatue_fish_docker_no_subcommand --arguments commit
+complete --command docker --description "Author (e.g., \"John Hannibal Smith <hannibal@a-team.com>\")" --condition '__fish_seen_subcommand_from commit' --exclusive --short-option a --long-option author
+complete --command docker --description "Apply Dockerfile instruction to the created image" --condition '__fish_seen_subcommand_from commit' --exclusive --short-option c --long-option change
+complete --command docker --description "Commit message" --condition '__fish_seen_subcommand_from commit' --exclusive --short-option m --long-option message
+complete --command docker --description "Pause container during commit (default true)" --condition '__fish_seen_subcommand_from commit' --short-option p --long-option pause
+complete --command docker --description Container --condition '__fish_seen_subcommand_from commit' --arguments '(_halostatue_fish_docker_print_containers all)' --exclusive
+complete --command docker --description Repository --condition '__fish_seen_subcommand_from commit' --arguments '(_halostatue_fish_docker_print_repositories )' --exclusive
+
+# cp
+complete --command docker --description "Copy files/folders between a container and the local filesystem" --condition _halostatue_fish_docker_no_subcommand --arguments cp
+complete --command docker --description "Archive mode (copy all uid/gid information)" --condition '__fish_seen_subcommand_from cp' --short-option a --long-option archive
+complete --command docker --description "Always follow symbol link in SRC_PATH" --condition '__fish_seen_subcommand_from cp' --short-option L --long-option follow-link
+complete --command docker --description "CONTAINER:SRC_PATH" --condition '__fish_seen_subcommand_from cp' --arguments '(_halostatue_fish_docker_print_containers all :)' --exclusive
+complete --command docker --description DEST_PATH --condition '__fish_seen_subcommand_from cp' --force-files --require-parameter
+complete --command docker --description STDIN --condition '__fish_seen_subcommand_from cp' --arguments - --exclusive
+
+# create
+complete --command docker --description "Create a new container" --condition _halostatue_fish_docker_no_subcommand --arguments create
+complete --command docker --description "Add a custom host-to-IP mapping (host:ip)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option add-host
+complete --command docker --description "Attach to STDIN, STDOUT or STDERR" --condition '__fish_seen_subcommand_from create' --exclusive --short-option a --long-option attach
+complete --command docker --description "Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option blkio-weight
+complete --command docker --description "Block IO weight (relative device weight) (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option blkio-weight-device
+complete --command docker --description "Add Linux capabilities" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cap-add
+complete --command docker --description "Drop Linux capabilities" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cap-drop
+complete --command docker --description "Optional parent cgroup for the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cgroup-parent
+complete --command docker --description "Cgroup namespace to use (host|private)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cgroupns
+complete --command docker --description "Run the container in the Docker host's cgroup namespace" --condition '__fish_seen_subcommand_from create' --short-option 'host':
+complete --command docker --description "Use the cgroup namespace as configured by the" --condition '__fish_seen_subcommand_from create' --short-option '':
+complete --command docker --description "Write the container ID to the file" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cidfile
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) period" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpu-period
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) quota" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpu-quota
+complete --command docker --description "Limit CPU real-time period in microseconds" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpu-rt-period
+complete --command docker --description "Limit CPU real-time runtime in microseconds" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpu-rt-runtime
+complete --command docker --description "CPU shares (relative weight)" --condition '__fish_seen_subcommand_from create' --exclusive --short-option c --long-option cpu-shares
+complete --command docker --description "Number of CPUs" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpus
+complete --command docker --description "CPUs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpuset-cpus
+complete --command docker --description "MEMs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option cpuset-mems
+complete --command docker --description "Add a host device to the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device
+complete --command docker --description "Add a rule to the cgroup allowed devices list" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device-cgroup-rule
+complete --command docker --description "Limit read rate (bytes per second) from a device (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device-read-bps
+complete --command docker --description "Limit read rate (IO per second) from a device (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device-read-iops
+complete --command docker --description "Limit write rate (bytes per second) to a device (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device-write-bps
+complete --command docker --description "Limit write rate (IO per second) to a device (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option device-write-iops
+complete --command docker --description "Skip image verification (default true)" --condition '__fish_seen_subcommand_from create' --long-option disable-content-trust
+complete --command docker --description "Set custom DNS servers" --condition '__fish_seen_subcommand_from create' --exclusive --long-option dns
+complete --command docker --description "Set DNS options" --condition '__fish_seen_subcommand_from create' --exclusive --long-option dns-option
+complete --command docker --description "Set custom DNS search domains" --condition '__fish_seen_subcommand_from create' --exclusive --long-option dns-search
+complete --command docker --description "Container NIS domain name" --condition '__fish_seen_subcommand_from create' --exclusive --long-option domainname
+complete --command docker --description "Overwrite the default ENTRYPOINT of the image" --condition '__fish_seen_subcommand_from create' --exclusive --long-option entrypoint
+complete --command docker --description "Set environment variables" --condition '__fish_seen_subcommand_from create' --exclusive --short-option e --long-option env
+complete --command docker --description "Read in a file of environment variables" --condition '__fish_seen_subcommand_from create' --exclusive --long-option env-file
+complete --command docker --description "Expose a port or a range of ports" --condition '__fish_seen_subcommand_from create' --exclusive --long-option expose
+complete --command docker --description "GPU devices to add to the container ('all' to pass all GPUs)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option gpus
+complete --command docker --description "Add additional groups to join" --condition '__fish_seen_subcommand_from create' --exclusive --long-option group-add
+complete --command docker --description "Command to run to check health" --condition '__fish_seen_subcommand_from create' --exclusive --long-option health-cmd
+complete --command docker --description "Time between running the check (ms|s|m|h) (default 0s)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option health-interval
+complete --command docker --description "Consecutive failures needed to report unhealthy" --condition '__fish_seen_subcommand_from create' --exclusive --long-option health-retries
+complete --command docker --description "Start period for the container to initialize before starting" --condition '__fish_seen_subcommand_from create' --exclusive --long-option health-start-period
+complete --command docker --description "Maximum time to allow one check to run (ms|s|m|h) (default 0s)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option health-timeout
+complete --command docker --description "Print usage" --condition '__fish_seen_subcommand_from create' --long-option help
+complete --command docker --description "Container host name" --condition '__fish_seen_subcommand_from create' --exclusive --short-option h --long-option hostname
+complete --command docker --description "Run an init inside the container that forwards signals and reaps processes" --condition '__fish_seen_subcommand_from create' --long-option init
+complete --command docker --description "Keep STDIN open even if not attached" --condition '__fish_seen_subcommand_from create' --short-option i --long-option interactive
+complete --command docker --description "IPv4 address (e.g., 172.30.100.104)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option ip
+complete --command docker --description "IPv6 address (e.g., 2001:db8::33)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option ip6
+complete --command docker --description "IPC mode to use" --condition '__fish_seen_subcommand_from create' --exclusive --long-option ipc
+complete --command docker --description "Container isolation technology" --condition '__fish_seen_subcommand_from create' --exclusive --long-option isolation
+complete --command docker --description "Kernel memory limit" --condition '__fish_seen_subcommand_from create' --exclusive --long-option kernel-memory
+complete --command docker --description "Set meta data on a container" --condition '__fish_seen_subcommand_from create' --exclusive --short-option l --long-option label
+complete --command docker --description "Read in a line delimited file of labels" --condition '__fish_seen_subcommand_from create' --exclusive --long-option label-file
+complete --command docker --description "Add link to another container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option link
+complete --command docker --description "Container IPv4/IPv6 link-local addresses" --condition '__fish_seen_subcommand_from create' --exclusive --long-option link-local-ip
+complete --command docker --description "Logging driver for the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option log-driver
+complete --command docker --description "Log driver options" --condition '__fish_seen_subcommand_from create' --exclusive --long-option log-opt
+complete --command docker --description "Container MAC address (e.g., 92:d0:c6:0a:29:33)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option mac-address
+complete --command docker --description "Memory limit" --condition '__fish_seen_subcommand_from create' --exclusive --short-option m --long-option memory
+complete --command docker --description "Memory soft limit" --condition '__fish_seen_subcommand_from create' --exclusive --long-option memory-reservation
+complete --command docker --description "Swap limit equal to memory plus swap: '-1' to enable unlimited swap" --condition '__fish_seen_subcommand_from create' --exclusive --long-option memory-swap
+complete --command docker --description "Tune container memory swappiness (0 to 100) (default -1)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option memory-swappiness
+complete --command docker --description "Attach a filesystem mount to the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option mount
+complete --command docker --description "Assign a name to the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option name
+complete --command docker --description "Connect a container to a network" --condition '__fish_seen_subcommand_from create' --exclusive --long-option network
+complete --command docker --description "Add network-scoped alias for the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option network-alias
+complete --command docker --description "Disable any container-specified HEALTHCHECK" --condition '__fish_seen_subcommand_from create' --long-option no-healthcheck
+complete --command docker --description "Disable OOM Killer" --condition '__fish_seen_subcommand_from create' --long-option oom-kill-disable
+complete --command docker --description "Tune host's OOM preferences (-1000 to 1000)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option oom-score-adj
+complete --command docker --description "PID namespace to use" --condition '__fish_seen_subcommand_from create' --exclusive --long-option pid
+complete --command docker --description "Tune container pids limit (set -1 for unlimited)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option pids-limit
+complete --command docker --description "Set platform if server is multi-platform capable" --condition '__fish_seen_subcommand_from create' --exclusive --long-option platform
+complete --command docker --description "Give extended privileges to this container" --condition '__fish_seen_subcommand_from create' --long-option privileged
+complete --command docker --description "Publish a container's port(s) to the host" --condition '__fish_seen_subcommand_from create' --exclusive --short-option p --long-option publish
+complete --command docker --description "Publish all exposed ports to random ports" --condition '__fish_seen_subcommand_from create' --short-option P --long-option publish-all
+complete --command docker --description "Pull image before creating (\"always\"|\"missing\"|\"never\") (default \"missing\")" --condition '__fish_seen_subcommand_from create' --exclusive --long-option pull
+complete --command docker --description "Mount the container's root filesystem as read only" --condition '__fish_seen_subcommand_from create' --long-option read-only
+complete --command docker --description "Restart policy to apply when a container exits (default \"no\")" --condition '__fish_seen_subcommand_from create' --exclusive --long-option restart
+complete --command docker --description "Automatically remove the container when it exits" --condition '__fish_seen_subcommand_from create' --long-option rm
+complete --command docker --description "Runtime to use for this container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option runtime
+complete --command docker --description "Security Options" --condition '__fish_seen_subcommand_from create' --exclusive --long-option security-opt
+complete --command docker --description "Size of /dev/shm" --condition '__fish_seen_subcommand_from create' --exclusive --long-option shm-size
+complete --command docker --description "Signal to stop a container (default \"SIGTERM\")" --condition '__fish_seen_subcommand_from create' --exclusive --long-option stop-signal
+complete --command docker --description "Timeout (in seconds) to stop a container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option stop-timeout
+complete --command docker --description "Storage driver options for the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option storage-opt
+complete --command docker --description "Sysctl options (default map[])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option sysctl
+complete --command docker --description "Mount a tmpfs directory" --condition '__fish_seen_subcommand_from create' --exclusive --long-option tmpfs
+complete --command docker --description "Allocate a pseudo-TTY" --condition '__fish_seen_subcommand_from create' --short-option t --long-option tty
+complete --command docker --description "Ulimit options (default [])" --condition '__fish_seen_subcommand_from create' --exclusive --long-option ulimit
+complete --command docker --description "Username or UID (format: <name|uid>[:<group|gid>])" --condition '__fish_seen_subcommand_from create' --exclusive --short-option u --long-option user
+complete --command docker --description "User namespace to use" --condition '__fish_seen_subcommand_from create' --exclusive --long-option userns
+complete --command docker --description "UTS namespace to use" --condition '__fish_seen_subcommand_from create' --exclusive --long-option uts
+complete --command docker --description "Bind mount a volume" --condition '__fish_seen_subcommand_from create' --exclusive --short-option v --long-option volume
+complete --command docker --description "Optional volume driver for the container" --condition '__fish_seen_subcommand_from create' --exclusive --long-option volume-driver
+complete --command docker --description "Mount volumes from the specified container(s)" --condition '__fish_seen_subcommand_from create' --exclusive --long-option volumes-from
+complete --command docker --description "Working directory inside the container" --condition '__fish_seen_subcommand_from create' --exclusive --short-option w --long-option workdir
+complete --command docker --description Image --condition '__fish_seen_subcommand_from create' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+complete --command docker --description "[COMMAND]" --condition '__fish_seen_subcommand_from create' --exclusive
+complete --command docker --description ARG --condition '__fish_seen_subcommand_from create' --exclusive
+
+# diff
+complete --command docker --description "Inspect changes to files or directories on a container's filesystem" --condition _halostatue_fish_docker_no_subcommand --arguments diff
+complete --command docker --description Container --condition '__fish_seen_subcommand_from diff' --arguments '(_halostatue_fish_docker_print_containers all)' --exclusive
+
+# events
+complete --command docker --description "Get real time events from the server" --condition _halostatue_fish_docker_no_subcommand --arguments events
+complete --command docker --description "Filter output based on conditions provided" --condition '__fish_seen_subcommand_from events' --exclusive --short-option f --long-option filter
+complete --command docker --description "Format the output using the given Go template" --condition '__fish_seen_subcommand_from events' --exclusive --long-option format
+complete --command docker --description "Show all events created since timestamp" --condition '__fish_seen_subcommand_from events' --exclusive --long-option since
+complete --command docker --description "Stream events until this timestamp" --condition '__fish_seen_subcommand_from events' --exclusive --long-option until
+
+# exec
+complete --command docker --description "Run a command in a running container" --condition _halostatue_fish_docker_no_subcommand --arguments exec
+complete --command docker --description "Detached mode: run command in the background" --condition '__fish_seen_subcommand_from exec' --short-option d --long-option detach
+complete --command docker --description "Override the key sequence for detaching a container" --condition '__fish_seen_subcommand_from exec' --exclusive --long-option detach-keys
+complete --command docker --description "Set environment variables" --condition '__fish_seen_subcommand_from exec' --exclusive --short-option e --long-option env
+complete --command docker --description "Read in a file of environment variables" --condition '__fish_seen_subcommand_from exec' --exclusive --long-option env-file
+complete --command docker --description "Keep STDIN open even if not attached" --condition '__fish_seen_subcommand_from exec' --short-option i --long-option interactive
+complete --command docker --description "Give extended privileges to the command" --condition '__fish_seen_subcommand_from exec' --long-option privileged
+complete --command docker --description "Allocate a pseudo-TTY" --condition '__fish_seen_subcommand_from exec' --short-option t --long-option tty
+complete --command docker --description "Username or UID (format: <name|uid>[:<group|gid>])" --condition '__fish_seen_subcommand_from exec' --exclusive --short-option u --long-option user
+complete --command docker --description "Working directory inside the container" --condition '__fish_seen_subcommand_from exec' --exclusive --short-option w --long-option workdir
+complete --command docker --description Container --condition '__fish_seen_subcommand_from exec' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from exec' --exclusive
+complete --command docker --description ARG --condition '__fish_seen_subcommand_from exec' --exclusive
+
+# export
+complete --command docker --description "Export a container's filesystem as a tar archive" --condition _halostatue_fish_docker_no_subcommand --arguments export
+complete --command docker --description "Write to a file, instead of STDOUT" --condition '__fish_seen_subcommand_from export' --exclusive --short-option o --long-option output
+complete --command docker --description Container --condition '__fish_seen_subcommand_from export' --arguments '(_halostatue_fish_docker_print_containers all)' --exclusive
+
+# history
+complete --command docker --description "Show the history of an image" --condition _halostatue_fish_docker_no_subcommand --arguments history
+complete --command docker --description "Pretty-print images using a Go template" --condition '__fish_seen_subcommand_from history' --exclusive --long-option format
+complete --command docker --description "Print sizes and dates in human readable format (default true)" --condition '__fish_seen_subcommand_from history' --short-option H --long-option human
+complete --command docker --description "Don't truncate output" --condition '__fish_seen_subcommand_from history' --long-option no-trunc
+complete --command docker --description "Only show image IDs" --condition '__fish_seen_subcommand_from history' --short-option q --long-option quiet
+complete --command docker --description Image --condition '__fish_seen_subcommand_from history' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+
+# images
+complete --command docker --description "List images" --condition _halostatue_fish_docker_no_subcommand --arguments images
+complete --command docker --description "Show all images (default hides intermediate images)" --condition '__fish_seen_subcommand_from images' --short-option a --long-option all
+complete --command docker --description "Show digests" --condition '__fish_seen_subcommand_from images' --long-option digests
+complete --command docker --description "Filter output based on conditions provided" --condition '__fish_seen_subcommand_from images' --exclusive --short-option f --long-option filter
+complete --command docker --description "Pretty-print images using a Go template" --condition '__fish_seen_subcommand_from images' --exclusive --long-option format
+complete --command docker --description "Don't truncate output" --condition '__fish_seen_subcommand_from images' --long-option no-trunc
+complete --command docker --description "Only show image IDs" --condition '__fish_seen_subcommand_from images' --short-option q --long-option quiet
+complete --command docker --description Repository --condition '__fish_seen_subcommand_from images' --arguments '(_halostatue_fish_docker_print_repositories )' --exclusive
+
+# import
+complete --command docker --description "Import the contents from a tarball to create a filesystem image" --condition _halostatue_fish_docker_no_subcommand --arguments import
+complete --command docker --description "Apply Dockerfile instruction to the created image" --condition '__fish_seen_subcommand_from import' --exclusive --short-option c --long-option change
+complete --command docker --description "Set commit message for imported image" --condition '__fish_seen_subcommand_from import' --exclusive --short-option m --long-option message
+complete --command docker --description "Set platform if server is multi-platform capable" --condition '__fish_seen_subcommand_from import' --exclusive --long-option platform
+complete --command docker --description file --condition '__fish_seen_subcommand_from import' --force-files --require-parameter
+complete --command docker --description URL --condition '__fish_seen_subcommand_from import' --exclusive
+complete --command docker --description STDIN --condition '__fish_seen_subcommand_from import' --arguments - --exclusive
+complete --command docker --description Repository --condition '__fish_seen_subcommand_from import' --arguments '(_halostatue_fish_docker_print_repositories )' --exclusive
+
+# info
+complete --command docker --description "Display system-wide information" --condition _halostatue_fish_docker_no_subcommand --arguments info
+complete --command docker --description "Format the output using the given Go template" --condition '__fish_seen_subcommand_from info' --exclusive --short-option f --long-option format
+
+# inspect
+complete --command docker --description "Return low-level information on Docker objects" --condition _halostatue_fish_docker_no_subcommand --arguments inspect
+complete --command docker --description "Format the output using the given Go template" --condition '__fish_seen_subcommand_from inspect' --exclusive --short-option f --long-option format
+complete --command docker --description "Display total file sizes if the type is container" --condition '__fish_seen_subcommand_from inspect' --short-option s --long-option size
+complete --command docker --description "Return JSON for specified type" --condition '__fish_seen_subcommand_from inspect' --exclusive --long-option type
+complete --command docker --description NAME --condition '__fish_seen_subcommand_from inspect' --exclusive
+complete --command docker --description ID --condition '__fish_seen_subcommand_from inspect' --exclusive
+
+# kill
+complete --command docker --description "Kill one or more running containers" --condition _halostatue_fish_docker_no_subcommand --arguments kill
+complete --command docker --description "Signal to send to the container (default \"KILL\")" --condition '__fish_seen_subcommand_from kill' --exclusive --short-option s --long-option signal
+complete --command docker --description Container --condition '__fish_seen_subcommand_from kill' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# load
+complete --command docker --description "Load an image from a tar archive or STDIN" --condition _halostatue_fish_docker_no_subcommand --arguments load
+complete --command docker --description "Read from tar archive file, instead of STDIN" --condition '__fish_seen_subcommand_from load' --exclusive --short-option i --long-option input
+complete --command docker --description "Suppress the load output" --condition '__fish_seen_subcommand_from load' --short-option q --long-option quiet
+
+# login
+complete --command docker --description "Log in to a Docker registry" --condition _halostatue_fish_docker_no_subcommand --arguments login
+complete --command docker --description Password --condition '__fish_seen_subcommand_from login' --exclusive --short-option p --long-option password
+complete --command docker --description "Take the password from stdin" --condition '__fish_seen_subcommand_from login' --long-option password-stdin
+complete --command docker --description Username --condition '__fish_seen_subcommand_from login' --exclusive --short-option u --long-option username
+complete --command docker --description "[SERVER]" --condition '__fish_seen_subcommand_from login' --exclusive
+
+# logout
+complete --command docker --description "Log out from a Docker registry" --condition _halostatue_fish_docker_no_subcommand --arguments logout
+complete --command docker --description "[SERVER]" --condition '__fish_seen_subcommand_from logout' --exclusive
+
+# logs
+complete --command docker --description "Fetch the logs of a container" --condition _halostatue_fish_docker_no_subcommand --arguments logs
+complete --command docker --description "Show extra details provided to logs" --condition '__fish_seen_subcommand_from logs' --long-option details
+complete --command docker --description "Follow log output" --condition '__fish_seen_subcommand_from logs' --short-option f --long-option follow
+complete --command docker --description "Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)" --condition '__fish_seen_subcommand_from logs' --exclusive --long-option since
+complete --command docker --description "Number of lines to show from the end of the logs (default \"all\")" --condition '__fish_seen_subcommand_from logs' --exclusive --short-option n --long-option tail
+complete --command docker --description "Show timestamps" --condition '__fish_seen_subcommand_from logs' --short-option t --long-option timestamps
+complete --command docker --description "Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42" --condition '__fish_seen_subcommand_from logs' --exclusive --long-option until
+complete --command docker --description Container --condition '__fish_seen_subcommand_from logs' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# pause
+complete --command docker --description "Pause all processes within one or more containers" --condition _halostatue_fish_docker_no_subcommand --arguments pause
+complete --command docker --description Container --condition '__fish_seen_subcommand_from pause' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# port
+complete --command docker --description "List port mappings or a specific mapping for the container" --condition _halostatue_fish_docker_no_subcommand --arguments port
+complete --command docker --description Container --condition '__fish_seen_subcommand_from port' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+complete --command docker --description "[PRIVATE_PORT[/PROTO]]" --condition '__fish_seen_subcommand_from port' --exclusive
+
+# ps
+complete --command docker --description "List containers" --condition _halostatue_fish_docker_no_subcommand --arguments ps
+complete --command docker --description "Show all containers (default shows just running)" --condition '__fish_seen_subcommand_from ps' --short-option a --long-option all
+complete --command docker --description "Filter output based on conditions provided" --condition '__fish_seen_subcommand_from ps' --exclusive --short-option f --long-option filter
+complete --command docker --description "Pretty-print containers using a Go template" --condition '__fish_seen_subcommand_from ps' --exclusive --long-option format
+complete --command docker --description "Show n last created containers (includes all states) (default -1)" --condition '__fish_seen_subcommand_from ps' --exclusive --short-option n --long-option last
+complete --command docker --description "Show the latest created container (includes all states)" --condition '__fish_seen_subcommand_from ps' --short-option l --long-option latest
+complete --command docker --description "Don't truncate output" --condition '__fish_seen_subcommand_from ps' --long-option no-trunc
+complete --command docker --description "Only display container IDs" --condition '__fish_seen_subcommand_from ps' --short-option q --long-option quiet
+complete --command docker --description "Display total file sizes" --condition '__fish_seen_subcommand_from ps' --short-option s --long-option size
+
+# pull
+complete --command docker --description "Pull an image or a repository from a registry" --condition _halostatue_fish_docker_no_subcommand --arguments pull
+complete --command docker --description "Download all tagged images in the repository" --condition '__fish_seen_subcommand_from pull' --short-option a --long-option all-tags
+complete --command docker --description "Skip image verification (default true)" --condition '__fish_seen_subcommand_from pull' --long-option disable-content-trust
+complete --command docker --description "Set platform if server is multi-platform capable" --condition '__fish_seen_subcommand_from pull' --exclusive --long-option platform
+complete --command docker --description "Suppress verbose output" --condition '__fish_seen_subcommand_from pull' --short-option q --long-option quiet
+complete --command docker --description Repository --condition '__fish_seen_subcommand_from pull' --arguments '(_halostatue_fish_docker_print_repositories )' --exclusive
+complete --command docker --description Image --condition '__fish_seen_subcommand_from pull' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+
+# push
+complete --command docker --description "Push an image or a repository to a registry" --condition _halostatue_fish_docker_no_subcommand --arguments push
+complete --command docker --description "Push all tagged images in the repository" --condition '__fish_seen_subcommand_from push' --short-option a --long-option all-tags
+complete --command docker --description "Skip image signing (default true)" --condition '__fish_seen_subcommand_from push' --long-option disable-content-trust
+complete --command docker --description "Suppress verbose output" --condition '__fish_seen_subcommand_from push' --short-option q --long-option quiet
+complete --command docker --description Repository --condition '__fish_seen_subcommand_from push' --arguments '(_halostatue_fish_docker_print_repositories )' --exclusive
+complete --command docker --description Image --condition '__fish_seen_subcommand_from push' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+
+# rename
+complete --command docker --description "Rename a container" --condition _halostatue_fish_docker_no_subcommand --arguments rename
+complete --command docker --description Container --condition '__fish_seen_subcommand_from rename' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+complete --command docker --description NEW_NAME --condition '__fish_seen_subcommand_from rename' --exclusive
+
+# restart
+complete --command docker --description "Restart one or more containers" --condition _halostatue_fish_docker_no_subcommand --arguments restart
+complete --command docker --description "Seconds to wait for stop before killing the container (default 10)" --condition '__fish_seen_subcommand_from restart' --exclusive --short-option t --long-option time
+complete --command docker --description Container --condition '__fish_seen_subcommand_from restart' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# rm
+complete --command docker --description "Remove one or more containers" --condition _halostatue_fish_docker_no_subcommand --arguments rm
+complete --command docker --description "Force the removal of a running container (uses SIGKILL)" --condition '__fish_seen_subcommand_from rm' --short-option f --long-option force
+complete --command docker --description "Remove the specified link" --condition '__fish_seen_subcommand_from rm' --short-option l --long-option link
+complete --command docker --description "Remove anonymous volumes associated with the container" --condition '__fish_seen_subcommand_from rm' --short-option v --long-option volumes
+complete --command docker --description Container --condition '__fish_seen_subcommand_from rm' --arguments '(_halostatue_fish_docker_print_containers stopped)' --exclusive
+
+# rmi
+complete --command docker --description "Remove one or more images" --condition _halostatue_fish_docker_no_subcommand --arguments rmi
+complete --command docker --description "Force removal of the image" --condition '__fish_seen_subcommand_from rmi' --short-option f --long-option force
+complete --command docker --description "Do not delete untagged parents" --condition '__fish_seen_subcommand_from rmi' --long-option no-prune
+complete --command docker --description Image --condition '__fish_seen_subcommand_from rmi' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+
+# run
+complete --command docker --description "Run a command in a new container" --condition _halostatue_fish_docker_no_subcommand --arguments run
+complete --command docker --description "Add a custom host-to-IP mapping (host:ip)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option add-host
+complete --command docker --description "Attach to STDIN, STDOUT or STDERR" --condition '__fish_seen_subcommand_from run' --exclusive --short-option a --long-option attach
+complete --command docker --description "Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option blkio-weight
+complete --command docker --description "Block IO weight (relative device weight) (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option blkio-weight-device
+complete --command docker --description "Add Linux capabilities" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cap-add
+complete --command docker --description "Drop Linux capabilities" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cap-drop
+complete --command docker --description "Optional parent cgroup for the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cgroup-parent
+complete --command docker --description "Cgroup namespace to use (host|private)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cgroupns
+complete --command docker --description "Run the container in the Docker host's cgroup namespace" --condition '__fish_seen_subcommand_from run' --short-option 'host':
+complete --command docker --description "Use the cgroup namespace as configured by the" --condition '__fish_seen_subcommand_from run' --short-option '':
+complete --command docker --description "Write the container ID to the file" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cidfile
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) period" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpu-period
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) quota" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpu-quota
+complete --command docker --description "Limit CPU real-time period in microseconds" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpu-rt-period
+complete --command docker --description "Limit CPU real-time runtime in microseconds" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpu-rt-runtime
+complete --command docker --description "CPU shares (relative weight)" --condition '__fish_seen_subcommand_from run' --exclusive --short-option c --long-option cpu-shares
+complete --command docker --description "Number of CPUs" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpus
+complete --command docker --description "CPUs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpuset-cpus
+complete --command docker --description "MEMs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option cpuset-mems
+complete --command docker --description "Run container in background and print container ID" --condition '__fish_seen_subcommand_from run' --short-option d --long-option detach
+complete --command docker --description "Override the key sequence for detaching a container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option detach-keys
+complete --command docker --description "Add a host device to the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device
+complete --command docker --description "Add a rule to the cgroup allowed devices list" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device-cgroup-rule
+complete --command docker --description "Limit read rate (bytes per second) from a device (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device-read-bps
+complete --command docker --description "Limit read rate (IO per second) from a device (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device-read-iops
+complete --command docker --description "Limit write rate (bytes per second) to a device (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device-write-bps
+complete --command docker --description "Limit write rate (IO per second) to a device (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option device-write-iops
+complete --command docker --description "Skip image verification (default true)" --condition '__fish_seen_subcommand_from run' --long-option disable-content-trust
+complete --command docker --description "Set custom DNS servers" --condition '__fish_seen_subcommand_from run' --exclusive --long-option dns
+complete --command docker --description "Set DNS options" --condition '__fish_seen_subcommand_from run' --exclusive --long-option dns-option
+complete --command docker --description "Set custom DNS search domains" --condition '__fish_seen_subcommand_from run' --exclusive --long-option dns-search
+complete --command docker --description "Container NIS domain name" --condition '__fish_seen_subcommand_from run' --exclusive --long-option domainname
+complete --command docker --description "Overwrite the default ENTRYPOINT of the image" --condition '__fish_seen_subcommand_from run' --exclusive --long-option entrypoint
+complete --command docker --description "Set environment variables" --condition '__fish_seen_subcommand_from run' --exclusive --short-option e --long-option env
+complete --command docker --description "Read in a file of environment variables" --condition '__fish_seen_subcommand_from run' --exclusive --long-option env-file
+complete --command docker --description "Expose a port or a range of ports" --condition '__fish_seen_subcommand_from run' --exclusive --long-option expose
+complete --command docker --description "GPU devices to add to the container ('all' to pass all GPUs)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option gpus
+complete --command docker --description "Add additional groups to join" --condition '__fish_seen_subcommand_from run' --exclusive --long-option group-add
+complete --command docker --description "Command to run to check health" --condition '__fish_seen_subcommand_from run' --exclusive --long-option health-cmd
+complete --command docker --description "Time between running the check (ms|s|m|h) (default 0s)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option health-interval
+complete --command docker --description "Consecutive failures needed to report unhealthy" --condition '__fish_seen_subcommand_from run' --exclusive --long-option health-retries
+complete --command docker --description "Start period for the container to initialize before starting" --condition '__fish_seen_subcommand_from run' --exclusive --long-option health-start-period
+complete --command docker --description "Maximum time to allow one check to run (ms|s|m|h) (default 0s)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option health-timeout
+complete --command docker --description "Print usage" --condition '__fish_seen_subcommand_from run' --long-option help
+complete --command docker --description "Container host name" --condition '__fish_seen_subcommand_from run' --exclusive --short-option h --long-option hostname
+complete --command docker --description "Run an init inside the container that forwards signals and reaps processes" --condition '__fish_seen_subcommand_from run' --long-option init
+complete --command docker --description "Keep STDIN open even if not attached" --condition '__fish_seen_subcommand_from run' --short-option i --long-option interactive
+complete --command docker --description "IPv4 address (e.g., 172.30.100.104)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option ip
+complete --command docker --description "IPv6 address (e.g., 2001:db8::33)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option ip6
+complete --command docker --description "IPC mode to use" --condition '__fish_seen_subcommand_from run' --exclusive --long-option ipc
+complete --command docker --description "Container isolation technology" --condition '__fish_seen_subcommand_from run' --exclusive --long-option isolation
+complete --command docker --description "Kernel memory limit" --condition '__fish_seen_subcommand_from run' --exclusive --long-option kernel-memory
+complete --command docker --description "Set meta data on a container" --condition '__fish_seen_subcommand_from run' --exclusive --short-option l --long-option label
+complete --command docker --description "Read in a line delimited file of labels" --condition '__fish_seen_subcommand_from run' --exclusive --long-option label-file
+complete --command docker --description "Add link to another container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option link
+complete --command docker --description "Container IPv4/IPv6 link-local addresses" --condition '__fish_seen_subcommand_from run' --exclusive --long-option link-local-ip
+complete --command docker --description "Logging driver for the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option log-driver
+complete --command docker --description "Log driver options" --condition '__fish_seen_subcommand_from run' --exclusive --long-option log-opt
+complete --command docker --description "Container MAC address (e.g., 92:d0:c6:0a:29:33)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option mac-address
+complete --command docker --description "Memory limit" --condition '__fish_seen_subcommand_from run' --exclusive --short-option m --long-option memory
+complete --command docker --description "Memory soft limit" --condition '__fish_seen_subcommand_from run' --exclusive --long-option memory-reservation
+complete --command docker --description "Swap limit equal to memory plus swap: '-1' to enable unlimited swap" --condition '__fish_seen_subcommand_from run' --exclusive --long-option memory-swap
+complete --command docker --description "Tune container memory swappiness (0 to 100) (default -1)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option memory-swappiness
+complete --command docker --description "Attach a filesystem mount to the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option mount
+complete --command docker --description "Assign a name to the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option name
+complete --command docker --description "Connect a container to a network" --condition '__fish_seen_subcommand_from run' --exclusive --long-option network
+complete --command docker --description "Add network-scoped alias for the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option network-alias
+complete --command docker --description "Disable any container-specified HEALTHCHECK" --condition '__fish_seen_subcommand_from run' --long-option no-healthcheck
+complete --command docker --description "Disable OOM Killer" --condition '__fish_seen_subcommand_from run' --long-option oom-kill-disable
+complete --command docker --description "Tune host's OOM preferences (-1000 to 1000)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option oom-score-adj
+complete --command docker --description "PID namespace to use" --condition '__fish_seen_subcommand_from run' --exclusive --long-option pid
+complete --command docker --description "Tune container pids limit (set -1 for unlimited)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option pids-limit
+complete --command docker --description "Set platform if server is multi-platform capable" --condition '__fish_seen_subcommand_from run' --exclusive --long-option platform
+complete --command docker --description "Give extended privileges to this container" --condition '__fish_seen_subcommand_from run' --long-option privileged
+complete --command docker --description "Publish a container's port(s) to the host" --condition '__fish_seen_subcommand_from run' --exclusive --short-option p --long-option publish
+complete --command docker --description "Publish all exposed ports to random ports" --condition '__fish_seen_subcommand_from run' --short-option P --long-option publish-all
+complete --command docker --description "Pull image before running (\"always\"|\"missing\"|\"never\") (default \"missing\")" --condition '__fish_seen_subcommand_from run' --exclusive --long-option pull
+complete --command docker --description "Mount the container's root filesystem as read only" --condition '__fish_seen_subcommand_from run' --long-option read-only
+complete --command docker --description "Restart policy to apply when a container exits (default \"no\")" --condition '__fish_seen_subcommand_from run' --exclusive --long-option restart
+complete --command docker --description "Automatically remove the container when it exits" --condition '__fish_seen_subcommand_from run' --long-option rm
+complete --command docker --description "Runtime to use for this container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option runtime
+complete --command docker --description "Security Options" --condition '__fish_seen_subcommand_from run' --exclusive --long-option security-opt
+complete --command docker --description "Size of /dev/shm" --condition '__fish_seen_subcommand_from run' --exclusive --long-option shm-size
+complete --command docker --description "Proxy received signals to the process (default true)" --condition '__fish_seen_subcommand_from run' --long-option sig-proxy
+complete --command docker --description "Signal to stop a container (default \"SIGTERM\")" --condition '__fish_seen_subcommand_from run' --exclusive --long-option stop-signal
+complete --command docker --description "Timeout (in seconds) to stop a container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option stop-timeout
+complete --command docker --description "Storage driver options for the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option storage-opt
+complete --command docker --description "Sysctl options (default map[])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option sysctl
+complete --command docker --description "Mount a tmpfs directory" --condition '__fish_seen_subcommand_from run' --exclusive --long-option tmpfs
+complete --command docker --description "Allocate a pseudo-TTY" --condition '__fish_seen_subcommand_from run' --short-option t --long-option tty
+complete --command docker --description "Ulimit options (default [])" --condition '__fish_seen_subcommand_from run' --exclusive --long-option ulimit
+complete --command docker --description "Username or UID (format: <name|uid>[:<group|gid>])" --condition '__fish_seen_subcommand_from run' --exclusive --short-option u --long-option user
+complete --command docker --description "User namespace to use" --condition '__fish_seen_subcommand_from run' --exclusive --long-option userns
+complete --command docker --description "UTS namespace to use" --condition '__fish_seen_subcommand_from run' --exclusive --long-option uts
+complete --command docker --description "Bind mount a volume" --condition '__fish_seen_subcommand_from run' --exclusive --short-option v --long-option volume
+complete --command docker --description "Optional volume driver for the container" --condition '__fish_seen_subcommand_from run' --exclusive --long-option volume-driver
+complete --command docker --description "Mount volumes from the specified container(s)" --condition '__fish_seen_subcommand_from run' --exclusive --long-option volumes-from
+complete --command docker --description "Working directory inside the container" --condition '__fish_seen_subcommand_from run' --exclusive --short-option w --long-option workdir
+complete --command docker --description Image --condition '__fish_seen_subcommand_from run' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+complete --command docker --description "[COMMAND]" --condition '__fish_seen_subcommand_from run' --exclusive
+complete --command docker --description ARG --condition '__fish_seen_subcommand_from run' --exclusive
+
+# save
+complete --command docker --description "Save one or more images to a tar archive (streamed to STDOUT by default)" --condition _halostatue_fish_docker_no_subcommand --arguments save
+complete --command docker --description "Write to a file, instead of STDOUT" --condition '__fish_seen_subcommand_from save' --exclusive --short-option o --long-option output
+complete --command docker --description Image --condition '__fish_seen_subcommand_from save' --arguments '(_halostatue_fish_docker_print_images )' --exclusive
+
+# search
+complete --command docker --description "Search the Docker Hub for images" --condition _halostatue_fish_docker_no_subcommand --arguments search
+complete --command docker --description "Filter output based on conditions provided" --condition '__fish_seen_subcommand_from search' --exclusive --short-option f --long-option filter
+complete --command docker --description "Pretty-print search using a Go template" --condition '__fish_seen_subcommand_from search' --exclusive --long-option format
+complete --command docker --description "Max number of search results (default 25)" --condition '__fish_seen_subcommand_from search' --exclusive --long-option limit
+complete --command docker --description "Don't truncate output" --condition '__fish_seen_subcommand_from search' --long-option no-trunc
+complete --command docker --description TERM --condition '__fish_seen_subcommand_from search' --exclusive
+
+# start
+complete --command docker --description "Start one or more stopped containers" --condition _halostatue_fish_docker_no_subcommand --arguments start
+complete --command docker --description "Attach STDOUT/STDERR and forward signals" --condition '__fish_seen_subcommand_from start' --short-option a --long-option attach
+complete --command docker --description "Override the key sequence for detaching a container" --condition '__fish_seen_subcommand_from start' --exclusive --long-option detach-keys
+complete --command docker --description "Attach container's STDIN" --condition '__fish_seen_subcommand_from start' --short-option i --long-option interactive
+complete --command docker --description Container --condition '__fish_seen_subcommand_from start' --arguments '(_halostatue_fish_docker_print_containers stopped)' --exclusive
+
+# stats
+complete --command docker --description "Display a live stream of container(s) resource usage statistics" --condition _halostatue_fish_docker_no_subcommand --arguments stats
+complete --command docker --description "Show all containers (default shows just running)" --condition '__fish_seen_subcommand_from stats' --short-option a --long-option all
+complete --command docker --description "Pretty-print images using a Go template" --condition '__fish_seen_subcommand_from stats' --exclusive --long-option format
+complete --command docker --description "Disable streaming stats and only pull the first result" --condition '__fish_seen_subcommand_from stats' --long-option no-stream
+complete --command docker --description "Do not truncate output" --condition '__fish_seen_subcommand_from stats' --long-option no-trunc
+complete --command docker --description Container --condition '__fish_seen_subcommand_from stats' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# stop
+complete --command docker --description "Stop one or more running containers" --condition _halostatue_fish_docker_no_subcommand --arguments stop
+complete --command docker --description "Seconds to wait for stop before killing it (default 10)" --condition '__fish_seen_subcommand_from stop' --exclusive --short-option t --long-option time
+complete --command docker --description Container --condition '__fish_seen_subcommand_from stop' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# tag
+complete --command docker --description "Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE" --condition _halostatue_fish_docker_no_subcommand --arguments tag
+complete --command docker --description "SOURCE_IMAGE[:TAG]" --condition '__fish_seen_subcommand_from tag' --exclusive
+complete --command docker --description "TARGET_IMAGE[:TAG]" --condition '__fish_seen_subcommand_from tag' --exclusive
+
+# top
+complete --command docker --description "Display the running processes of a container" --condition _halostatue_fish_docker_no_subcommand --arguments top
+complete --command docker --description Container --condition '__fish_seen_subcommand_from top' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+complete --command docker --description "[ps" --condition '__fish_seen_subcommand_from top' --exclusive
+complete --command docker --description "OPTIONS]" --condition '__fish_seen_subcommand_from top' --exclusive
+
+# unpause
+complete --command docker --description "Unpause all processes within one or more containers" --condition _halostatue_fish_docker_no_subcommand --arguments unpause
+complete --command docker --description Container --condition '__fish_seen_subcommand_from unpause' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# update
+complete --command docker --description "Update configuration of one or more containers" --condition _halostatue_fish_docker_no_subcommand --arguments update
+complete --command docker --description "Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)" --condition '__fish_seen_subcommand_from update' --exclusive --long-option blkio-weight
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) period" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpu-period
+complete --command docker --description "Limit CPU CFS (Completely Fair Scheduler) quota" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpu-quota
+complete --command docker --description "Limit the CPU real-time period in microseconds" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpu-rt-period
+complete --command docker --description "Limit the CPU real-time runtime in microseconds" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpu-rt-runtime
+complete --command docker --description "CPU shares (relative weight)" --condition '__fish_seen_subcommand_from update' --exclusive --short-option c --long-option cpu-shares
+complete --command docker --description "Number of CPUs" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpus
+complete --command docker --description "CPUs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpuset-cpus
+complete --command docker --description "MEMs in which to allow execution (0-3, 0,1)" --condition '__fish_seen_subcommand_from update' --exclusive --long-option cpuset-mems
+complete --command docker --description "Kernel memory limit" --condition '__fish_seen_subcommand_from update' --exclusive --long-option kernel-memory
+complete --command docker --description "Memory limit" --condition '__fish_seen_subcommand_from update' --exclusive --short-option m --long-option memory
+complete --command docker --description "Memory soft limit" --condition '__fish_seen_subcommand_from update' --exclusive --long-option memory-reservation
+complete --command docker --description "Swap limit equal to memory plus swap: '-1' to enable unlimited swap" --condition '__fish_seen_subcommand_from update' --exclusive --long-option memory-swap
+complete --command docker --description "Tune container pids limit (set -1 for unlimited)" --condition '__fish_seen_subcommand_from update' --exclusive --long-option pids-limit
+complete --command docker --description "Restart policy to apply when a container exits" --condition '__fish_seen_subcommand_from update' --exclusive --long-option restart
+complete --command docker --description Container --condition '__fish_seen_subcommand_from update' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# version
+complete --command docker --description "Show the Docker version information" --condition _halostatue_fish_docker_no_subcommand --arguments version
+complete --command docker --description "Format the output using the given Go template" --condition '__fish_seen_subcommand_from version' --exclusive --short-option f --long-option format
+complete --command docker --description "Kubernetes config file" --condition '__fish_seen_subcommand_from version' --exclusive --long-option kubeconfig
+
+# wait
+complete --command docker --description "Block until one or more containers stop, then print their exit codes" --condition _halostatue_fish_docker_no_subcommand --arguments wait
+complete --command docker --description Container --condition '__fish_seen_subcommand_from wait' --arguments '(_halostatue_fish_docker_print_containers running)' --exclusive
+
+# builder
+complete --command docker --description "Manage builds" --condition _halostatue_fish_docker_no_subcommand --arguments builder
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from builder' --exclusive
+
+# compose
+complete --command docker --description "Docker Compose (Docker Inc., 2.6.0)" --condition _halostatue_fish_docker_no_subcommand --arguments compose
+complete --command docker --description "Control when to print ANSI control characters (\"never\"|\"always\"|\"auto\")" --condition '__fish_seen_subcommand_from compose' --exclusive --long-option ansi
+complete --command docker --description "Run compose in backward compatibility mode" --condition '__fish_seen_subcommand_from compose' --long-option compatibility
+complete --command docker --description "Specify an alternate environment file." --condition '__fish_seen_subcommand_from compose' --exclusive --long-option env-file
+complete --command docker --description "Compose configuration files" --condition '__fish_seen_subcommand_from compose' --exclusive --short-option f --long-option file
+complete --command docker --description "Specify a profile to enable" --condition '__fish_seen_subcommand_from compose' --exclusive --long-option profile
+complete --command docker --description "Specify an alternate working directory" --condition '__fish_seen_subcommand_from compose' --exclusive --long-option project-directory
+complete --command docker --description "Project name" --condition '__fish_seen_subcommand_from compose' --exclusive --short-option p --long-option project-name
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from compose' --exclusive
+
+# config
+complete --command docker --description "Manage Docker configs" --condition _halostatue_fish_docker_no_subcommand --arguments config
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from config' --exclusive
+
+# container
+complete --command docker --description "Manage containers" --condition _halostatue_fish_docker_no_subcommand --arguments container
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from container' --exclusive
+
+# context
+complete --command docker --description "Manage contexts" --condition _halostatue_fish_docker_no_subcommand --arguments context
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from context' --exclusive
+
+# image
+complete --command docker --description "Manage images" --condition _halostatue_fish_docker_no_subcommand --arguments image
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from image' --exclusive
+
+# manifest
+complete --command docker --description "Manage Docker image manifests and manifest lists" --condition _halostatue_fish_docker_no_subcommand --arguments manifest
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from manifest' --exclusive
+
+# network
+complete --command docker --description "Manage networks" --condition _halostatue_fish_docker_no_subcommand --arguments network
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from network' --exclusive
+
+# node
+complete --command docker --description "Manage Swarm nodes" --condition _halostatue_fish_docker_no_subcommand --arguments node
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from node' --exclusive
+
+# plugin
+complete --command docker --description "Manage plugins" --condition _halostatue_fish_docker_no_subcommand --arguments plugin
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from plugin' --exclusive
+
+# secret
+complete --command docker --description "Manage Docker secrets" --condition _halostatue_fish_docker_no_subcommand --arguments secret
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from secret' --exclusive
+
+# service
+complete --command docker --description "Manage services" --condition _halostatue_fish_docker_no_subcommand --arguments service
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from service' --exclusive
+
+# stack
+complete --command docker --description "Manage Docker stacks" --condition _halostatue_fish_docker_no_subcommand --arguments stack
+complete --command docker --description "Kubernetes config file" --condition '__fish_seen_subcommand_from stack' --exclusive --long-option kubeconfig
+complete --command docker --description "Orchestrator to use (swarm|kubernetes|all)" --condition '__fish_seen_subcommand_from stack' --exclusive --long-option orchestrator
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from stack' --exclusive
+
+# swarm
+complete --command docker --description "Manage Swarm" --condition _halostatue_fish_docker_no_subcommand --arguments swarm
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from swarm' --exclusive
+
+# system
+complete --command docker --description "Manage Docker" --condition _halostatue_fish_docker_no_subcommand --arguments system
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from system' --exclusive
+
+# trust
+complete --command docker --description "Manage trust on Docker images" --condition _halostatue_fish_docker_no_subcommand --arguments trust
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from trust' --exclusive
+
+# volume
+complete --command docker --description "Manage volumes" --condition _halostatue_fish_docker_no_subcommand --arguments volume
+complete --command docker --description COMMAND --condition '__fish_seen_subcommand_from volume' --exclusive
diff --git a/.config/fish/completions/fisher.fish b/.config/fish/completions/fisher.fish
index 271e314e..6d23ce49 100644
--- a/.config/fish/completions/fisher.fish
+++ b/.config/fish/completions/fisher.fish
@@ -1 +1,7 @@
-fisher complete
+complete --command fisher --exclusive --long help --description "Print help"
+complete --command fisher --exclusive --long version --description "Print version"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
+complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
diff --git a/.config/fish/completions/fzf_configure_bindings.fish b/.config/fish/completions/fzf_configure_bindings.fish
new file mode 100644
index 00000000..a78fd54d
--- /dev/null
+++ b/.config/fish/completions/fzf_configure_bindings.fish
@@ -0,0 +1,7 @@
+complete fzf_configure_bindings --no-files
+complete fzf_configure_bindings --long help --short h --description "Print help"
+complete fzf_configure_bindings --long directory --description "Change the key binding for searching directory"
+complete fzf_configure_bindings --long git_log --description "Change the key binding for searching git log"
+complete fzf_configure_bindings --long git_status --description "Change the key binding for searching git status"
+complete fzf_configure_bindings --long history --description "Change the key binding for searching history"
+complete fzf_configure_bindings --long variables --description "Change the key binding for searching variables"
diff --git a/.config/fish/completions/mm.fish b/.config/fish/completions/mm.fish
new file mode 100644
index 00000000..322c997d
--- /dev/null
+++ b/.config/fish/completions/mm.fish
@@ -0,0 +1,4 @@
+complete -c mm -s f -r --description 'Usage: mm -f <FileName>'
+complete -c mm -s i -f --description 'Interactive mode'
+complete -c mm -s h -l help -f --description 'Display help'
+# complete -c mm -l install -f --description 'Install guide' Not implemented yet \ No newline at end of file
diff --git a/.config/fish/completions/spark.fish b/.config/fish/completions/spark.fish
new file mode 100644
index 00000000..d8daeedf
--- /dev/null
+++ b/.config/fish/completions/spark.fish
@@ -0,0 +1,4 @@
+complete --command spark --exclusive --long min --description "Minimum range"
+complete --command spark --exclusive --long max --description "Maximum range"
+complete --command spark --exclusive --long version --description "Print version"
+complete --command spark --exclusive --long help --description "Print this help message"
diff --git a/.config/fish/completions/tide.fish b/.config/fish/completions/tide.fish
new file mode 100644
index 00000000..2d3784da
--- /dev/null
+++ b/.config/fish/completions/tide.fish
@@ -0,0 +1,12 @@
+complete tide --no-files
+
+set -l subcommands bug-report configure
+
+complete tide -x -n __fish_use_subcommand -a bug-report -d "Print info for use in bug reports"
+complete tide -x -n __fish_use_subcommand -a configure -d "Run the configuration wizard"
+
+complete tide -x -n "not __fish_seen_subcommand_from $subcommands" -s h -l help -d "Print help message"
+complete tide -x -n "not __fish_seen_subcommand_from $subcommands" -s v -l version -d "Print tide version"
+
+complete tide -x -n '__fish_seen_subcommand_from bug-report' -l clean -d "Run clean Fish instance and install Tide"
+complete tide -x -n '__fish_seen_subcommand_from bug-report' -l verbose -d "Print full Tide configuration"
diff --git a/.config/fish/conf.d/_tide_init.fish b/.config/fish/conf.d/_tide_init.fish
new file mode 100644
index 00000000..939f17c9
--- /dev/null
+++ b/.config/fish/conf.d/_tide_init.fish
@@ -0,0 +1,41 @@
+function _tide_init_install --on-event _tide_init_install
+ set -U VIRTUAL_ENV_DISABLE_PROMPT true
+
+ source (functions --details _tide_sub_configure)
+ _load_config lean
+ _tide_finish
+
+ if status is-interactive
+ tide bug-report --check || sleep 4
+
+ if contains ilancosman/tide (string lower $_fisher_plugins)
+ set_color bryellow
+ echo "ilancosman/tide is a development branch. Please install from a release tag:"
+ echo -ns "fisher install ilancosman/tide@v5" | fish_indent --ansi
+ sleep 3
+ end
+
+ switch (read --prompt-str="Configure tide prompt? [Y/n] " | string lower)
+ case y ye yes ''
+ tide configure
+ case '*'
+ echo -s \n 'Run ' (echo -ns "tide configure" | fish_indent --ansi) ' to customize your prompt.'
+ end
+ end
+end
+
+function _tide_init_update --on-event _tide_init_update
+ # Warn users who install from main branch
+ if contains ilancosman/tide (string lower $_fisher_plugins)
+ set_color bryellow
+ echo "ilancosman/tide is a development branch. Please install from a release tag:"
+ echo -ns "fisher install ilancosman/tide@v5" | fish_indent --ansi
+ sleep 3
+ end
+end
+
+function _tide_init_uninstall --on-event _tide_init_uninstall
+ set -e VIRTUAL_ENV_DISABLE_PROMPT
+ set -e (set -U --names | string match --entire -r '^_?tide')
+ functions --erase (functions --all | string match --entire -r '^_?tide')
+end
diff --git a/.config/fish/conf.d/abbr_tips.fish b/.config/fish/conf.d/abbr_tips.fish
new file mode 100644
index 00000000..848ee6da
--- /dev/null
+++ b/.config/fish/conf.d/abbr_tips.fish
@@ -0,0 +1,155 @@
+for mode in default insert
+ bind --mode $mode " " '__abbr_tips_bind_space'
+ bind --mode $mode \n '__abbr_tips_bind_newline'
+ bind --mode $mode \r '__abbr_tips_bind_newline'
+end
+
+set -g __abbr_tips_used 0
+
+# Trim simple/double quotes from args
+function trim_value
+ echo "$argv" | string trim --left --right --chars '"\'' | string join ' '
+end
+
+function __abbr_tips_install --on-event abbr_tips_install
+ # Regexes used to find abbreviation inside command
+ # Only the first matching group will be tested as an abbr
+ set -Ux ABBR_TIPS_REGEXES
+ set -a ABBR_TIPS_REGEXES '(^(\w+\s+)+(-{1,2})\w+)(\s\S+)'
+ set -a ABBR_TIPS_REGEXES '(^(\s?(\w-?)+){3}).*'
+ set -a ABBR_TIPS_REGEXES '(^(\s?(\w-?)+){2}).*'
+ set -a ABBR_TIPS_REGEXES '(^(\s?(\w-?)+){1}).*'
+
+ set -Ux ABBR_TIPS_PROMPT "\n💡 \e[1m{{ .abbr }}\e[0m => {{ .cmd }}"
+ set -gx ABBR_TIPS_AUTO_UPDATE 'background'
+
+ # Locking mechanism
+ # Prevent this file to spawn more than one subshell
+ if test "$USER" != 'root'
+ fish -c '__abbr_tips_init' &
+ end
+end
+
+function __abbr_tips --on-event fish_postexec -d "Abbreviation reminder for the current command"
+ set -l command (string split ' ' -- "$argv")
+ set -l cmd (string replace -r -a '\\s+' ' ' -- "$argv" )
+
+ # Update abbreviations lists when adding/removing abbreviations
+ if test "$command[1]" = "abbr"
+ # Parse args as abbr options
+ argparse --name 'abbr' --ignore-unknown 'a/add' 'e/erase' 'g/global' 'U/universal' -- $command
+
+ if set -q _flag_a
+ and not contains -- "$argv[2]" $__ABBR_TIPS_KEYS
+ set -a __ABBR_TIPS_KEYS "$argv[2]"
+ set -a __ABBR_TIPS_VALUES (trim_value "$argv[3..-1]")
+ else if set -q _flag_e
+ and set -l abb (contains -i -- "$argv[2]" $__ABBR_TIPS_KEYS)
+ set -e __ABBR_TIPS_KEYS[$abb]
+ set -e __ABBR_TIPS_VALUES[$abb]
+ end
+ else if test "$command[1]" = "alias"
+ # Update abbreviations list when adding aliases
+ set -l alias_key
+ set -l alias_value
+
+ # Parse args as `alias` options
+ argparse --name 'alias' --ignore-unknown 's/save' -- $command
+
+ if string match -q '*=*' -- "$argv[2]"
+ if test (count $argv) = 2
+ set command_split (string split '=' -- $argv[2])
+ set alias_key "a__$command_split[1]"
+ set alias_value $command_split[2]
+ set -a alias_value $command[3..-1]
+ end
+ else
+ set alias_key "a__$argv[2]"
+ set alias_value $argv[3..-1]
+ end
+
+ set alias_value (trim_value "$alias_value")
+
+ if set -l abb (contains -i -- "$argv[3..-1]" $__ABBR_TIPS_KEYS)
+ set __ABBR_TIPS_KEYS[$abb] $alias_key
+ set __ABBR_TIPS_VALUES[$abb] $alias_value
+ else
+ set -a __ABBR_TIPS_KEYS $alias_key
+ set -a __ABBR_TIPS_VALUES $alias_value
+ end
+ else if test "$command[1]" = "functions"
+ # Parse args as `functions` options
+ argparse --name 'functions' 'e/erase' -- $command
+
+ # Update abbreviations list when removing aliases
+ if set -q _flag_e
+ and set -l abb (contains -i -- a__{$argv[2]} $__ABBR_TIPS_KEYS)
+ set -e __ABBR_TIPS_KEYS[$abb]
+ set -e __ABBR_TIPS_VALUES[$abb]
+ end
+ end
+
+ # Exit in the following cases :
+ # - abbreviation has been used
+ # - command is already an abbreviation
+ # - command not found
+ # - or it's a function (alias)
+ if test $__abbr_tips_used = 1
+ set -g __abbr_tips_used 0
+ return
+ else if abbr -q "$cmd"
+ or not type -q "$command[1]"
+ return
+ else if string match -q -- "alias $cmd *" (alias)
+ return
+ else if test (type -t "$command[1]") = 'function'
+ and count $ABBR_TIPS_ALIAS_WHITELIST >/dev/null
+ and not contains "$command[1]" $ABBR_TIPS_ALIAS_WHITELIST
+ return
+ end
+
+ set -l abb
+ if not set abb (contains -i -- "$cmd" $__ABBR_TIPS_VALUES)
+ for r in $ABBR_TIPS_REGEXES
+ if set abb (contains -i -- (string replace -r -a -- "$r" '$1' "$cmd") $__ABBR_TIPS_VALUES)
+ break
+ end
+ end
+ end
+
+ if test -n "$abb"
+ if string match -q "a__*" -- "$__ABBR_TIPS_KEYS[$abb]"
+ set -l alias (string sub -s 4 -- "$__ABBR_TIPS_KEYS[$abb]")
+ if functions -q "$alias"
+ echo -e (string replace -a '{{ .cmd }}' -- "$__ABBR_TIPS_VALUES[$abb]" \
+ (string replace -a '{{ .abbr }}' -- "$alias" "$ABBR_TIPS_PROMPT"))
+ else
+ set -e __ABBR_TIPS_KEYS[$abb]
+ set -e __ABBR_TIPS_VALUES[$abb]
+ end
+ else
+ echo -e (string replace -a '{{ .cmd }}' -- "$__ABBR_TIPS_VALUES[$abb]" \
+ (string replace -a '{{ .abbr }}' -- "$__ABBR_TIPS_KEYS[$abb]" "$ABBR_TIPS_PROMPT"))
+ end
+ end
+
+ return
+end
+
+function __abbr_tips_uninstall --on-event abbr_tips_uninstall
+ bind --erase \n
+ bind --erase \r
+ bind --erase " "
+ set --erase __abbr_tips_used
+ set --erase __abbr_tips_run_once
+ set --erase __ABBR_TIPS_VALUES
+ set --erase __ABBR_TIPS_KEYS
+ set --erase ABBR_TIPS_PROMPT
+ set --erase ABBR_TIPS_AUTO_UPDATE
+ set --erase ABBR_TIPS_ALIAS_WHITELIST
+ set --erase ABBR_TIPS_REGEXES
+ functions --erase __abbr_tips_init
+ functions --erase __abbr_tips_bind_newline
+ functions --erase __abbr_tips_bind_space
+ functions --erase __abbr_tips
+end
diff --git a/.config/fish/conf.d/fzf.fish b/.config/fish/conf.d/fzf.fish
new file mode 100644
index 00000000..8156c11b
--- /dev/null
+++ b/.config/fish/conf.d/fzf.fish
@@ -0,0 +1,28 @@
+# fzf.fish is only meant to be used in interactive mode. If not in interactive mode and not in CI, skip the config to speed up shell startup
+if not status is-interactive && test "$CI" != true
+ exit
+end
+
+# Because of scoping rules, to capture the shell variables exactly as they are, we must read
+# them before even executing _fzf_search_variables. We use psub to store the
+# variables' info in temporary files and pass in the filenames as arguments.
+# This variable is global so that it can be referenced by fzf_configure_bindings and in tests
+set --global _fzf_search_vars_command '_fzf_search_variables (set --show | psub) (set --names | psub)'
+
+
+# Install the default bindings, which are mnemonic and minimally conflict with fish's preset bindings
+fzf_configure_bindings
+
+# Doesn't erase autoloaded _fzf_* functions because they are not easily accessible once key bindings are erased
+function _fzf_uninstall --on-event fzf_uninstall
+ _fzf_uninstall_bindings
+
+ set --erase _fzf_search_vars_command
+ functions --erase _fzf_uninstall _fzf_migration_message _fzf_uninstall_bindings fzf_configure_bindings
+ complete --erase fzf_configure_bindings
+
+ set_color cyan
+ echo "fzf.fish uninstalled."
+ echo "You may need to manually remove fzf_configure_bindings from your config.fish if you were using custom key bindings."
+ set_color normal
+end
diff --git a/.config/fish/conf.d/halostatue_fish_docker.fish b/.config/fish/conf.d/halostatue_fish_docker.fish
new file mode 100644
index 00000000..959da8d1
--- /dev/null
+++ b/.config/fish/conf.d/halostatue_fish_docker.fish
@@ -0,0 +1,31 @@
+function _halostatue_fish_docker_uninstall -e halostatue_fish_docker_uninstall
+ functions -e (functions -a | command awk '/_halostatue_fish_docker_/')
+end
+
+function _halostatue_fish_docker_print_containers --description 'Print a list of docker containers' -a select append
+ set -l filter
+ switch $select
+ case running
+ set filter --filter status=running
+ case stopped
+ set filter --filter status=exited
+ case '*'
+ set filter --all
+ end
+
+ test -z $append; and set append ''
+
+ docker ps --no-trunc $filter --format '{{.ID}}\n{{.Names}}' | tr ',' $append'\n'
+end
+
+function _halostatue_fish_docker_print_images --description 'Print a list of docker images'
+ docker images --format '{{if eq .Repository "<none>"}}{{.ID}}\tUnnamed Image{{else}}{{.Repository}}:{{.Tag}}{{end}}'
+end
+
+function _halostatue_fish_docker_print_repositories --description 'Print a list of docker repositories'
+ docker images --format '{{.Repository}}' | command grep -v '<none>' | command sort | command uniq
+end
+
+function _halostatue_fish_docker_print_compose_services --description 'Print a list of docker-compose services'
+ docker-compose config --services 2>/dev/null | command sort
+end
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
index f5de60b1..b254b8ef 100644
--- a/.config/fish/config.fish
+++ b/.config/fish/config.fish
@@ -16,7 +16,7 @@ alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
alias rm='rm -i'
alias mv='mv -i'
alias ..='cd ..'
-alias doom='$HOME/.emacs.d/bin/doom'
+alias doom='$HOME/.config/emacs/bin/doom'
alias ls='exa -la --color=always --group-directories-first'
alias pr='ping rogs.me'
alias my-ip="curl ifconfig.me"
diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins
new file mode 100644
index 00000000..cecb4a0d
--- /dev/null
+++ b/.config/fish/fish_plugins
@@ -0,0 +1,7 @@
+jorgebucaran/fisher
+ilancosman/tide@v5
+patrickf1/fzf.fish
+jorgebucaran/spark.fish
+gazorby/fish-abbreviation-tips
+oakninja/makemefish
+halostatue/fish-docker@v1.x
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
index 9901f80e..42afc50b 100644
--- a/.config/fish/fish_variables
+++ b/.config/fish/fish_variables
@@ -1,5 +1,10 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
+SETUVAR --export ABBR_TIPS_PROMPT:\x5cn\U0001f4a1\x20\x5ce\x5b1m\x7b\x7b\x20\x2eabbr\x20\x7d\x7d\x5ce\x5b0m\x20\x3d\x3e\x20\x7b\x7b\x20\x2ecmd\x20\x7d\x7d
+SETUVAR --export ABBR_TIPS_REGEXES:\x28\x5e\x28\x5cw\x2b\x5cs\x2b\x29\x2b\x28\x2d\x7b1\x2c2\x7d\x29\x5cw\x2b\x29\x28\x5cs\x5cS\x2b\x29\x1e\x28\x5e\x28\x5cs\x3f\x28\x5cw\x2d\x3f\x29\x2b\x29\x7b3\x7d\x29\x2e\x2a\x1e\x28\x5e\x28\x5cs\x3f\x28\x5cw\x2d\x3f\x29\x2b\x29\x7b2\x7d\x29\x2e\x2a\x1e\x28\x5e\x28\x5cs\x3f\x28\x5cw\x2d\x3f\x29\x2b\x29\x7b1\x7d\x29\x2e\x2a
+SETUVAR --export VIRTUAL_ENV_DISABLE_PROMPT:1
+SETUVAR --export __ABBR_TIPS_KEYS:cdccb\x1ecdccf\x1ecdimb\x1ecloud\x1ecoca\x2dadmin\x1ecoca\x2ddev\x1ecoca\x2dprod\x1eg\x1ega\x1ega\x2e\x1egb\x1egbd\x1egc\x1egcd\x1egcm\x1egco\x1egcob\x1egcod\x1egd\x1egf\x1egfb\x1egfbco\x1egfbf\x1egfbp\x1egfbs\x1egfbt\x1egff\x1egffco\x1egfff\x1egffp\x1egffs\x1egfft\x1egfh\x1egfhco\x1egfhf\x1egfhp\x1egfhs\x1egfht\x1egfi\x1egfr\x1egfrco\x1egfrf\x1egfrp\x1egfrs\x1egfrt\x1egi\x1egm\x1egpd\x1egpl\x1egps\x1egpsu\x1egs\x1egst\x1egsta\x1ei\x1el\x1eni\x1enig\x1enis\x1enisd\x1enl\x1enp\x1enr\x1ens\x1ent\x1enu\x1er\x1ermr\x1ermrf\x1etc\x1etx\x1eu\x1ea__\x2e\x2e\x1ea__config\x1ea__doom\x1ea__emacs\x1ea__ls\x1ea__mv\x1ea__my\x2dip\x1ea__pr\x1ea__rm
+SETUVAR --export __ABBR_TIPS_VALUES:cd\x20\x7e/code/massive/cocacola/new\x2dbackend\x1ecd\x20\x7e/code/massive/cocacola/frontend\x1ecd\x20\x7e/code/personal/identidadMisional/backend\x1essh\x20root\x40cloud\x2erogs\x2eme\x1essh\x20\x2di\x20\x7e/\x2essh/keys/pincodes\x2dapi\x2epem\x20ubuntu\x40admin\x2dcoupon\x2edestapp\x2ecom\x1essh\x20\x2di\x20\x7e/\x2essh/keys/pincodes\x2dapi\x2epem\x20ubuntu\x40dev\x2dapi\x2dpincodes\x2edestapp\x2ecom\x1essh\x20\x2di\x20\x7e/\x2essh/keys/pincodes\x2dapi\x2epem\x20ubuntu\x40api\x2dpincodes\x2edestapp\x2ecom\x1egit\x1egit\x20add\x1egit\x20add\x20\x2e\x1egit\x20branch\x1egit\x20branch\x20\x2dD\x1egit\x20clone\x1egit\x20checkout\x20develop\x1egit\x20commit\x20\x2dm\x1egit\x20checkout\x1egit\x20checkout\x20\x2db\x1egit\x20checkout\x20development\x1egit\x20diff\x1egit\x20flow\x1egit\x20flow\x20bugfix\x1egit\x20flow\x20bugfix\x20checkout\x1egit\x20flow\x20bugfix\x20finish\x1egit\x20flow\x20bugfix\x20publish\x1egit\x20flow\x20bugfix\x20start\x1egit\x20flow\x20bugfix\x20track\x1egit\x20flow\x20feature\x1egit\x20flow\x20feature\x20checkout\x1egit\x20flow\x20feature\x20finish\x1egit\x20flow\x20feature\x20publish\x1egit\x20flow\x20feature\x20start\x1egit\x20flow\x20feature\x20track\x1egit\x20flow\x20hotfix\x1egit\x20flow\x20hotfix\x20checkout\x1egit\x20flow\x20hotfix\x20finish\x1egit\x20flow\x20hotfix\x20publish\x1egit\x20flow\x20hotfix\x20start\x1egit\x20flow\x20hotfix\x20track\x1egit\x20flow\x20init\x20\x2dd\x1egit\x20flow\x20release\x1egit\x20flow\x20release\x20checkout\x1egit\x20flow\x20release\x20finish\x1egit\x20flow\x20release\x20publish\x1egit\x20flow\x20release\x20start\x1egit\x20flow\x20release\x20track\x1egitignore\x1egit\x20merge\x1egit\x20pull\x20origin\x20develop\x1egit\x20pull\x1egit\x20push\x1egit\x20push\x20\x2du\x20origin\x20master\x1egit\x20status\x1egit\x20stash\x1egit\x20stash\x20apply\x1esudo\x20pacman\x20\x2dS\x1els\x1enpm\x20install\x1enpm\x20install\x20\x2dg\x1enpm\x20install\x20\x2d\x2dsave\x1enpm\x20install\x20\x2d\x2dsave\x2ddev\x1enpm\x20list\x1enpm\x20prune\x1enpm\x20remove\x1enpm\x20start\x1enpm\x20test\x1enpm\x20update\x1esudo\x20pacman\x20\x2dRsu\x1erm\x20\x2dr\x1erm\x20\x2drf\x1etar\x20czvf\x1etar\x20xzvf\x1eupdate_all\x1ecd\x20\x2e\x2e\x1e/usr/bin/git\x20\x2d\x2dgit\x2ddir\x3d\x24HOME/\x2ecfg/\x20\x2d\x2dwork\x2dtree\x3d\x24HOME\x1e\x24HOME/\x2eemacs\x2ed/bin/doom\x1eemacsclient\x5c\x5c\x5c\x20\x2dc\x5c\x5c\x5c\x20\x2da\x5c\x5c\x5c\x20\x5c\x5c\x5c\x27emacs\x5c\x5c\x5c\x1eexa\x20\x2dla\x20\x2d\x2dcolor\x3dalways\x20\x2d\x2dgroup\x2ddirectories\x2dfirst\x1emv\x20\x2di\x1ecurl\x20ifconfig\x2eme\x1eping\x20rogs\x2eme\x1erm\x20\x2di
SETUVAR __fish_classic_git_prompt_initialized:\x1d
SETUVAR __fish_init_1_50_0:\x1d
SETUVAR __fish_init_2_39_8:\x1d
@@ -24,6 +29,7 @@ SETUVAR _fish_abbr_gcm:git\x20commit\x20\x2dm
SETUVAR _fish_abbr_gco:git\x20checkout
SETUVAR _fish_abbr_gcob:git\x20checkout\x20\x2db
SETUVAR _fish_abbr_gcod:git\x20checkout\x20development
+SETUVAR _fish_abbr_gcr:ssh\x20git\x40rogs\x2eme\x20git\x20init\x20\x2d\x2dbare
SETUVAR _fish_abbr_gd:git\x20diff
SETUVAR _fish_abbr_gf:git\x20flow
SETUVAR _fish_abbr_gfb:git\x20flow\x20bugfix
@@ -53,6 +59,7 @@ SETUVAR _fish_abbr_gfrs:git\x20flow\x20release\x20start
SETUVAR _fish_abbr_gfrt:git\x20flow\x20release\x20track
SETUVAR _fish_abbr_gi:gitignore
SETUVAR _fish_abbr_gm:git\x20merge
+SETUVAR _fish_abbr_gpa:git\x20remote\x20\x7c\x20xargs\x20\x2dI\x20\x25\x20git\x20push\x20\x25\x20\x2d\x2dall
SETUVAR _fish_abbr_gpd:git\x20pull\x20origin\x20develop
SETUVAR _fish_abbr_gpl:git\x20pull
SETUVAR _fish_abbr_gps:git\x20push
@@ -60,6 +67,7 @@ SETUVAR _fish_abbr_gpsu:git\x20push\x20\x2du\x20origin\x20master
SETUVAR _fish_abbr_gs:git\x20status
SETUVAR _fish_abbr_gst:git\x20stash
SETUVAR _fish_abbr_gsta:git\x20stash\x20apply
+SETUVAR _fish_abbr_hss:hugo\x20serve\x20\x2d\x2dnoHTTPCache
SETUVAR _fish_abbr_i:sudo\x20pacman\x20\x2dS
SETUVAR _fish_abbr_l:ls
SETUVAR _fish_abbr_ni:npm\x20install
@@ -78,6 +86,48 @@ SETUVAR _fish_abbr_rmrf:rm\x20\x2drf
SETUVAR _fish_abbr_tc:tar\x20czvf
SETUVAR _fish_abbr_tx:tar\x20xzvf
SETUVAR _fish_abbr_u:update_all
+SETUVAR _fisher_gazorby_2F_fish_2D_abbreviation_2D_tips_files:\x7e/\x2econfig/fish/functions/__abbr_tips_bind_newline\x2efish\x1e\x7e/\x2econfig/fish/functions/__abbr_tips_bind_space\x2efish\x1e\x7e/\x2econfig/fish/functions/__abbr_tips_init\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/abbr_tips\x2efish
+SETUVAR _fisher_halostatue_2F_fish_2D_docker_40_v1_2E_x_files:\x7e/\x2econfig/fish/conf\x2ed/halostatue_fish_docker\x2efish\x1e\x7e/\x2econfig/fish/completions/docker\x2dcompose\x2efish\x1e\x7e/\x2econfig/fish/completions/docker\x2efish
+SETUVAR _fisher_ilancosman_2F_tide_40_v5_files:\x7e/\x2econfig/fish/functions/_tide_1_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_2_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_cache_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_detect_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_find_and_remove\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_aws\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_character\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_chruby\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_cmd_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_docker\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_go\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_java\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_kubectl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_nix_shell\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_node\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_os\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_php\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_private_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_rustc\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_shlvl\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_terraform\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_toolbox\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_vi_mode\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_item_virtual_env\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_print_item\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_pwd\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_remove_unusable_items\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_bug\x2dreport\x2efish\x1e\x7e/\x2econfig/fish/functions/_tide_sub_configure\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/tide\x1e\x7e/\x2econfig/fish/functions/tide\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_tide_init\x2efish\x1e\x7e/\x2econfig/fish/completions/tide\x2efish
+SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
+SETUVAR _fisher_jorgebucaran_2F_spark_2E_fish_files:\x7e/\x2econfig/fish/functions/spark\x2efish\x1e\x7e/\x2econfig/fish/completions/spark\x2efish
+SETUVAR _fisher_oakninja_2F_makemefish_files:\x7e/\x2econfig/fish/functions/__mm_dependencies\x2efish\x1e\x7e/\x2econfig/fish/functions/mm\x2efish\x1e\x7e/\x2econfig/fish/completions/mm\x2efish
+SETUVAR _fisher_patrickf1_2F_fzf_2E_fish_files:\x7e/\x2econfig/fish/functions/_fzf_configure_bindings_help\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_extract_var_info\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_changed_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_preview_file\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_diff_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_report_file_type\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_log\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_git_status\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_history\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_processes\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_search_variables\x2efish\x1e\x7e/\x2econfig/fish/functions/_fzf_wrapper\x2efish\x1e\x7e/\x2econfig/fish/functions/fzf_configure_bindings\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish\x1e\x7e/\x2econfig/fish/completions/fzf_configure_bindings\x2efish
+SETUVAR _fisher_plugins:jorgebucaran/fisher\x1eilancosman/tide\x40v5\x1epatrickf1/fzf\x2efish\x1ejorgebucaran/spark\x2efish\x1egazorby/fish\x2dabbreviation\x2dtips\x1eoakninja/makemefish\x1ehalostatue/fish\x2ddocker\x40v1\x2ex
+SETUVAR _fisher_upgraded_to_4_4:\x1d
+SETUVAR _tide_left_items:vi_mode\x1eos\x1epwd\x1egit
+SETUVAR _tide_prompt_1204873:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1205411:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1286817:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x212\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1585415:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmain\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x203s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20prometeo\x2dchatbot\x2dchallenge\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1585872:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20PIPE\x7c0\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1758292:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmain\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x20INT\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x2049m\x207s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b68\x3b136\x3b62m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2b22\x2018\x2e8\x2e0\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20prometeo\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_1873979:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mfeature/clean\x2djenkinsfil\u2026\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a1\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x211\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x20255\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_201909:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x212\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x206m\x2021s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2316406:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x211\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x207s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2326417:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x212\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2367609:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x201\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x201h\x2050m\x2047s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2390798:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x207s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_24580:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x201m\x2010s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b50\x3b108\x3b229m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2388\x20us\x2dgreen\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2493349:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x2011s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_274227:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x201\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x2018m\x2050s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2746201:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20poc\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_2800173:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mmaster\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_29286:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b50\x3b108\x3b229m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2388\x20us\x2dgreen\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_3548370:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mfeature/fix\x2dsafety\x2dissue\u2026\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a16\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x20INT\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_3724350:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mdeploy\x2decs\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a1\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x212\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x202m\x2030s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_3790219:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mreenable\x2djson\x2dvalidation\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x213\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f2\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_3996512:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_514093:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_536605:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x2025s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_5376:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mqa\x2dto\x2dstaging\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x20merge\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a16\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x20\x7e1\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x2b6\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x201\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20prometeo\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_664373:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mfeature/improve\x2dlogs\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a2\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x213\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x201m\x2055s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_76445:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mfeature/fix\x2dsecurity\x2diss\u2026\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a2\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_78131:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mdevelop\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x20\x2a3\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b215\x3b0\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2718\x20PIPE\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x2018h\x2023m\x200s\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b0\x3b175\x3b175m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\ue73c\x20prometeo\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_8164:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_8235:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b3\x1b\x5b38\x3b2\x3b135\x3b135\x3b95m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf252\x206s\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_prompt_8969:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\x1b\x5b38\x3b2\x3b238\x3b238\x3b238m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\uf312\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x40PWD\x40\x20\x1b\x5b38\x3b2\x3b148\x3b148\x3b148m\ue0b1\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\uf1d3\x20\x1b\x5b37m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0mfeature/add\x2dtask\x2ddefinit\u2026\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b95\x3b215\x3b0m\x1b\x5b38\x3b2\x3b255\x3b0\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x1b\x5b38\x3b2\x3b215\x3b175\x3b0m\x20\x213\x1b\x5b38\x3b2\x3b0\x3b175\x3b255m\x20\x3f1\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b0\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m\ue0b2\x1b\x5b38\x3b2\x3b95\x3b175\x3b0m\x1b\x5b48\x3b2\x3b28\x3b28\x3b28m\x20\u2714\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b2\x3b28\x3b28\x3b28m
+SETUVAR _tide_right_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1evirtual_env\x1ejava\x1ego\x1ekubectl\x1eterraform\x1eaws
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:005fd7
@@ -109,3 +159,132 @@ SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_user_paths:/home/roger/\x2eserverless/bin
+SETUVAR tide_aws_bg_color:1C1C1C
+SETUVAR tide_aws_color:FF9900
+SETUVAR tide_aws_icon:\uf270
+SETUVAR tide_character_color:5FD700
+SETUVAR tide_character_color_failure:FF0000
+SETUVAR tide_character_icon:\u276f
+SETUVAR tide_character_vi_icon_default:\u276e
+SETUVAR tide_character_vi_icon_replace:\u25b6
+SETUVAR tide_character_vi_icon_visual:V
+SETUVAR tide_chruby_bg_color:1C1C1C
+SETUVAR tide_chruby_color:B31209
+SETUVAR tide_chruby_icon:\ue23e
+SETUVAR tide_cmd_duration_bg_color:1C1C1C
+SETUVAR tide_cmd_duration_color:87875F
+SETUVAR tide_cmd_duration_decimals:0
+SETUVAR tide_cmd_duration_icon:\uf252
+SETUVAR tide_cmd_duration_threshold:3000
+SETUVAR tide_context_always_display:false
+SETUVAR tide_context_bg_color:1C1C1C
+SETUVAR tide_context_color_default:D7AF87
+SETUVAR tide_context_color_root:D7AF00
+SETUVAR tide_context_color_ssh:D7AF87
+SETUVAR tide_docker_bg_color:1C1C1C
+SETUVAR tide_docker_color:2496ED
+SETUVAR tide_docker_default_contexts:default\x1ecolima
+SETUVAR tide_docker_icon:\uf308
+SETUVAR tide_git_bg_color:1C1C1C
+SETUVAR tide_git_bg_color_unstable:1C1C1C
+SETUVAR tide_git_bg_color_urgent:1C1C1C
+SETUVAR tide_git_color_branch:5FD700
+SETUVAR tide_git_color_conflicted:FF0000
+SETUVAR tide_git_color_dirty:D7AF00
+SETUVAR tide_git_color_operation:FF0000
+SETUVAR tide_git_color_staged:D7AF00
+SETUVAR tide_git_color_stash:5FD700
+SETUVAR tide_git_color_untracked:00AFFF
+SETUVAR tide_git_color_upstream:5FD700
+SETUVAR tide_git_icon:\uf1d3
+SETUVAR tide_git_truncation_length:24
+SETUVAR tide_go_bg_color:1C1C1C
+SETUVAR tide_go_color:00ACD7
+SETUVAR tide_go_icon:\ue627
+SETUVAR tide_java_bg_color:1C1C1C
+SETUVAR tide_java_color:ED8B00
+SETUVAR tide_java_icon:\ue256
+SETUVAR tide_jobs_bg_color:1C1C1C
+SETUVAR tide_jobs_color:5FAF00
+SETUVAR tide_jobs_icon:\uf013
+SETUVAR tide_kubectl_bg_color:1C1C1C
+SETUVAR tide_kubectl_color:326CE5
+SETUVAR tide_kubectl_icon:\u2388
+SETUVAR tide_left_prompt_frame_enabled:false
+SETUVAR tide_left_prompt_items:vi_mode\x1eos\x1epwd\x1egit
+SETUVAR tide_left_prompt_prefix:
+SETUVAR tide_left_prompt_separator_diff_color:\ue0b0
+SETUVAR tide_left_prompt_separator_same_color:\ue0b1
+SETUVAR tide_left_prompt_suffix:\ue0b0
+SETUVAR tide_nix_shell_bg_color:1C1C1C
+SETUVAR tide_nix_shell_color:7EBAE4
+SETUVAR tide_nix_shell_icon:\uf313
+SETUVAR tide_node_bg_color:1C1C1C
+SETUVAR tide_node_color:44883E
+SETUVAR tide_node_icon:\u2b22
+SETUVAR tide_os_bg_color:1C1C1C
+SETUVAR tide_os_color:EEEEEE
+SETUVAR tide_os_icon:\uf312
+SETUVAR tide_php_bg_color:1C1C1C
+SETUVAR tide_php_color:617CBE
+SETUVAR tide_php_icon:\ue608
+SETUVAR tide_private_mode_bg_color:1C1C1C
+SETUVAR tide_private_mode_color:FFFFFF
+SETUVAR tide_private_mode_icon:\ufaf8
+SETUVAR tide_prompt_add_newline_before:false
+SETUVAR tide_prompt_color_frame_and_connection:6C6C6C
+SETUVAR tide_prompt_color_separator_same_color:949494
+SETUVAR tide_prompt_icon_connection:\x20
+SETUVAR tide_prompt_min_cols:34
+SETUVAR tide_prompt_pad_items:true
+SETUVAR tide_pwd_bg_color:1C1C1C
+SETUVAR tide_pwd_color_anchors:00AFFF
+SETUVAR tide_pwd_color_dirs:0087AF
+SETUVAR tide_pwd_color_truncated_dirs:8787AF
+SETUVAR tide_pwd_icon:\uf07c
+SETUVAR tide_pwd_icon_home:\uf015
+SETUVAR tide_pwd_icon_unwritable:\uf023
+SETUVAR tide_pwd_markers:\x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson
+SETUVAR tide_right_prompt_frame_enabled:false
+SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1evirtual_env\x1erustc\x1ejava\x1ephp\x1echruby\x1ego\x1ekubectl\x1etoolbox\x1eterraform\x1eaws\x1enix_shell
+SETUVAR tide_right_prompt_prefix:\ue0b2
+SETUVAR tide_right_prompt_separator_diff_color:\ue0b2
+SETUVAR tide_right_prompt_separator_same_color:\ue0b3
+SETUVAR tide_right_prompt_suffix:
+SETUVAR tide_rustc_bg_color:1C1C1C
+SETUVAR tide_rustc_color:F74C00
+SETUVAR tide_rustc_icon:\ue7a8
+SETUVAR tide_shlvl_bg_color:1C1C1C
+SETUVAR tide_shlvl_color:d78700
+SETUVAR tide_shlvl_icon:\uf120
+SETUVAR tide_shlvl_threshold:1
+SETUVAR tide_status_bg_color:1C1C1C
+SETUVAR tide_status_bg_color_failure:1C1C1C
+SETUVAR tide_status_color:5FAF00
+SETUVAR tide_status_color_failure:D70000
+SETUVAR tide_status_icon:\u2714
+SETUVAR tide_status_icon_failure:\u2718
+SETUVAR tide_terraform_bg_color:1C1C1C
+SETUVAR tide_terraform_color:844FBA
+SETUVAR tide_terraform_icon:\x1d
+SETUVAR tide_time_bg_color:1C1C1C
+SETUVAR tide_time_color:5F8787
+SETUVAR tide_time_format:
+SETUVAR tide_toolbox_bg_color:1C1C1C
+SETUVAR tide_toolbox_color:613583
+SETUVAR tide_toolbox_icon:\u2b22
+SETUVAR tide_vi_mode_bg_color_default:1C1C1C
+SETUVAR tide_vi_mode_bg_color_insert:1C1C1C
+SETUVAR tide_vi_mode_bg_color_replace:1C1C1C
+SETUVAR tide_vi_mode_bg_color_visual:1C1C1C
+SETUVAR tide_vi_mode_color_default:949494
+SETUVAR tide_vi_mode_color_insert:87AFAF
+SETUVAR tide_vi_mode_color_replace:87AF87
+SETUVAR tide_vi_mode_color_visual:FF8700
+SETUVAR tide_vi_mode_icon_default:D
+SETUVAR tide_vi_mode_icon_insert:I
+SETUVAR tide_vi_mode_icon_replace:R
+SETUVAR tide_vi_mode_icon_visual:V
+SETUVAR tide_virtual_env_bg_color:1C1C1C
+SETUVAR tide_virtual_env_color:00AFAF
+SETUVAR tide_virtual_env_icon:\ue73c
diff --git a/.config/fish/fishd.tmp.8rOSmX b/.config/fish/fishd.tmp.8rOSmX
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.config/fish/fishd.tmp.8rOSmX
diff --git a/.config/fish/functions/__abbr_tips_bind_newline.fish b/.config/fish/functions/__abbr_tips_bind_newline.fish
new file mode 100644
index 00000000..8cc8992c
--- /dev/null
+++ b/.config/fish/functions/__abbr_tips_bind_newline.fish
@@ -0,0 +1,10 @@
+function __abbr_tips_bind_newline
+ if test $__abbr_tips_used != 1
+ if abbr -q -- (string trim -- (commandline))
+ set -g __abbr_tips_used 1
+ else
+ set -g __abbr_tips_used 0
+ end
+ end
+ commandline -f 'execute'
+end
diff --git a/.config/fish/functions/__abbr_tips_bind_space.fish b/.config/fish/functions/__abbr_tips_bind_space.fish
new file mode 100644
index 00000000..0f371030
--- /dev/null
+++ b/.config/fish/functions/__abbr_tips_bind_space.fish
@@ -0,0 +1,11 @@
+function __abbr_tips_bind_space
+ commandline -i " "
+ if test $__abbr_tips_used != 1
+ if abbr -q -- (string trim -- (commandline))
+ set -g __abbr_tips_used 1
+ else
+ set -g __abbr_tips_used 0
+ end
+ end
+ commandline -f 'expand-abbr'
+end
diff --git a/.config/fish/functions/__abbr_tips_init.fish b/.config/fish/functions/__abbr_tips_init.fish
new file mode 100644
index 00000000..9cda53ad
--- /dev/null
+++ b/.config/fish/functions/__abbr_tips_init.fish
@@ -0,0 +1,24 @@
+function __abbr_tips_init -d "Initialize abbreviations variables for fish-abbr-tips"
+ set -e __ABBR_TIPS_KEYS
+ set -e __ABBR_TIPS_VALUES
+ set -Ux __ABBR_TIPS_KEYS
+ set -Ux __ABBR_TIPS_VALUES
+
+ set -l i 1
+ set -l abb (string replace -r '.*-- ' '' -- (abbr -s))
+ while test $i -le (count $abb)
+ set -l current_abb (string split -m1 -- ' ' "$abb[$i]")
+ set -a __ABBR_TIPS_KEYS "$current_abb[1]"
+ set -a __ABBR_TIPS_VALUES (string trim -c '\'' -- "$current_abb[2]")
+ set i (math $i + 1)
+ end
+
+ set -l i 1
+ set -l abb (string replace -r '.*-- ' '' -- (alias -s))
+ while test $i -le (count $abb)
+ set -l current_abb (string split -m2 -- ' ' "$abb[$i]")
+ set -a __ABBR_TIPS_KEYS "a__$current_abb[2]"
+ set -a __ABBR_TIPS_VALUES (string trim -c '\'' -- "$current_abb[3]")
+ set i (math $i + 1)
+ end
+end
diff --git a/.config/fish/functions/__mm_dependencies.fish b/.config/fish/functions/__mm_dependencies.fish
new file mode 100644
index 00000000..41fd0560
--- /dev/null
+++ b/.config/fish/functions/__mm_dependencies.fish
@@ -0,0 +1,78 @@
+function __mm_confirm --description 'Confirm' --argument prompt
+ if test -z "$prompt"
+ set prompt "Continue?"
+ end
+
+ while true
+ read -p 'echo -ne "$prompt ["; set_color green; echo -ne "y"; set_color normal; echo -ne "/"; set_color red; echo -ne "N"; set_color normal; echo -ne "]: "; ' -l confirm
+
+ switch $confirm
+ case Y y
+ return 0
+ case '' N n
+ return 1
+ end
+ end
+end
+
+function __mm_echo --argument color --argument text --argument no_newline
+ set_color $color;
+ if test -n "$no_newline"
+ echo -ne $text
+ else
+ echo $text
+ end
+ set_color normal;
+end
+
+function __mm_check_dependencies
+ if type -q "fzf"
+ return 0
+ else
+ return 1
+ end
+end
+
+
+function __mm_install_dependencies
+ if __mm_check_dependencies
+ echo ""
+ __mm_echo green "Dependencies already installed"
+ echo ""
+ return 0
+ else
+ echo ""
+ echo "MakeMeFish is dependent of fzf - the command line fuzzy finder."
+ if __mm_confirm "fzf is not installed. Would you like to install fzf?"
+ switch (uname)
+ case Linux Darwin
+ if type -q "brew"
+ if __mm_confirm "You are using brew - would you like to install fzf through brew?"
+ echo (brew install fzf)
+ return 0
+ end
+ end
+ case FreeBSD NetBSD DragonFly
+ echo (pkg install fzf)
+ return 0
+ case '*'
+ echo "Unknown OS"
+ end
+ __mm_echo red "Could not install automatically."
+ end
+ echo -ne "Go to "; __mm_echo blue "https://github.com/junegunn/fzf#installation" 1; echo -ne " and follow the instructions for your environment."
+ return 1
+ end
+end
+
+function __mm_dependencies
+ if __mm_check_dependencies
+ return 0
+ else
+ if __mm_install_dependencies true
+ return 0
+ else
+ return 1
+ end
+ end
+end \ No newline at end of file
diff --git a/.config/fish/functions/_fzf_configure_bindings_help.fish b/.config/fish/functions/_fzf_configure_bindings_help.fish
new file mode 100644
index 00000000..1209e498
--- /dev/null
+++ b/.config/fish/functions/_fzf_configure_bindings_help.fish
@@ -0,0 +1,43 @@
+function _fzf_configure_bindings_help --description "Prints the help message for fzf_configure_bindings."
+ echo "\
+USAGE:
+ fzf_configure_bindings [--FEATURE[=KEY_SEQUENCE]...]
+
+DESCRIPTION
+ By default, fzf_configure_bindings installs mnemonic key bindings for fzf.fish's features. Each
+ feature's binding can be customized through a corresponding namesake option:
+ FEATURE | MNEMONIC KEY SEQUENCE | CORRESPONDING OPTION
+ Search directory | Ctrl+Alt+F (F for file) | --directory
+ Search git log | Ctrl+Alt+L (L for log) | --git_log
+ Search git status | Ctrl+Alt+S (S for status) | --git_status
+ Search history | Ctrl+R (R for reverse) | --history
+ Search variables | Ctrl+V (V for variable) | --variables
+ Search processes | Ctrl+Alt+P (P for process) | --processes
+ An option with a key sequence value overrides the binding for its feature, while an option
+ without a value disables the binding. A feature that is not customized retains its default
+ menomonic binding specified above. Key bindings are installed for default and insert modes.
+
+ In terms of validation, fzf_configure_bindings fails if passed unknown options. Furthermore, it
+ expects an equals sign between an option's name and value. However, it does not validate key
+ sequences. Rather, consider using fish_key_reader to manually validate them.
+
+ In terms of experimentation, fzf_configure_bindings erases any bindings it previously installed
+ before installing new ones so it can be repeatedly executed in the same fish session without
+ problem. Once the desired fzf_configure_bindings command has been found, add it to config.fish
+ in order to persist the bindings.
+
+ The -h and --help options print this help message.
+
+EXAMPLES
+ Install the default mnemonic bindings
+ \$ fzf_configure_bindings
+ Install the default bindings but override git log's binding to Ctrl+G
+ \$ fzf_configure_bindings --git_log=\cg
+ Install the default bindings but leave search history unbound
+ \$ fzf_configure_bindings --history
+ Alternative style of disabling search history
+ \$ fzf_configure_bindings --history=
+ An agglomeration of all the options
+ \$ fzf_configure_bindings --git_status=\cg --history=\ch --variables --directory --git_log
+"
+end
diff --git a/.config/fish/functions/_fzf_extract_var_info.fish b/.config/fish/functions/_fzf_extract_var_info.fish
new file mode 100644
index 00000000..dd4e9523
--- /dev/null
+++ b/.config/fish/functions/_fzf_extract_var_info.fish
@@ -0,0 +1,15 @@
+# helper function for _fzf_search_variables
+function _fzf_extract_var_info --argument-names variable_name set_show_output --description "Extract and reformat lines pertaining to \$variable_name from \$set_show_output."
+ # Extract only the lines about the variable, all of which begin with either
+ # $variable_name: ...or... $variable_name[
+ string match --regex "^\\\$$variable_name(?::|\[).*" <$set_show_output |
+
+ # Strip the variable name prefix, including ": " for scope info lines
+ string replace --regex "^\\\$$variable_name(?:: )?" '' |
+
+ # Distill the lines of values, replacing...
+ # [1]: |value|
+ # ...with...
+ # [1] value
+ string replace --regex ": \|(.*)\|" ' $1'
+end
diff --git a/.config/fish/functions/_fzf_preview_changed_file.fish b/.config/fish/functions/_fzf_preview_changed_file.fish
new file mode 100644
index 00000000..c6e8c3d9
--- /dev/null
+++ b/.config/fish/functions/_fzf_preview_changed_file.fish
@@ -0,0 +1,30 @@
+# helper for _fzf_search_git_status
+# arg should be a line from git status --short, e.g.
+# MM functions/_fzf_preview_changed_file.fish
+# D README.md
+# R LICENSE.md -> LICENSE
+function _fzf_preview_changed_file --description "Show the untracked, staged, and/or unstaged changes in the given file."
+ set -l path (string split ' ' $argv)[-1]
+ # first letter of short format shows index, second letter shows working tree
+ # https://git-scm.com/docs/git-status/2.35.0#_output
+ set -l index_status (string sub --length 1 $argv)
+ set -l working_tree_status (string sub --start 2 --length 1 $argv)
+
+ if test $index_status = '?'
+ _fzf_report_diff_type Untracked
+ _fzf_preview_file $path
+ else
+ # no-prefix because the file is always being compared to itself so is unecessary
+ set diff_opts --color=always --no-prefix
+
+ if test $index_status != ' '
+ _fzf_report_diff_type Staged
+ git diff --staged $diff_opts -- $path
+ end
+
+ if test $working_tree_status != ' '
+ _fzf_report_diff_type Unstaged
+ git diff $diff_opts -- $path
+ end
+ end
+end
diff --git a/.config/fish/functions/_fzf_preview_file.fish b/.config/fish/functions/_fzf_preview_file.fish
new file mode 100644
index 00000000..eaa68d05
--- /dev/null
+++ b/.config/fish/functions/_fzf_preview_file.fish
@@ -0,0 +1,43 @@
+# helper function for _fzf_search_directory and _fzf_search_git_status
+function _fzf_preview_file --description "Print a preview for the given file based on its file type."
+ # because there's no way to guarantee that _fzf_search_directory passes the path to _fzf_preview_file
+ # as one argument, we collect all the arguments into one single variable and treat that as the path
+ set file_path $argv
+
+ if test -L "$file_path" # symlink
+ # notify user and recurse on the target of the symlink, which can be any of these file types
+ set -l target_path (realpath "$file_path")
+
+ set_color yellow
+ echo "'$file_path' is a symlink to '$target_path'."
+ set_color normal
+
+ _fzf_preview_file "$target_path"
+ else if test -f "$file_path" # regular file
+ if set --query fzf_preview_file_cmd
+ # need to escape quotes to make sure eval receives file_path as a single arg
+ eval "$fzf_preview_file_cmd '$file_path'"
+ else
+ bat --style=numbers --color=always "$file_path"
+ end
+ else if test -d "$file_path" # directory
+ if set --query fzf_preview_dir_cmd
+ # see above
+ eval "$fzf_preview_dir_cmd '$file_path'"
+ else
+ # -A list hidden files as well, except for . and ..
+ # -F helps classify files by appending symbols after the file name
+ command ls -A -F "$file_path"
+ end
+ else if test -c "$file_path"
+ _fzf_report_file_type "$file_path" "character device file"
+ else if test -b "$file_path"
+ _fzf_report_file_type "$file_path" "block device file"
+ else if test -S "$file_path"
+ _fzf_report_file_type "$file_path" socket
+ else if test -p "$file_path"
+ _fzf_report_file_type "$file_path" "named pipe"
+ else
+ echo "$file_path doesn't exist." >&2
+ end
+end
diff --git a/.config/fish/functions/_fzf_report_diff_type.fish b/.config/fish/functions/_fzf_report_diff_type.fish
new file mode 100644
index 00000000..1edef783
--- /dev/null
+++ b/.config/fish/functions/_fzf_report_diff_type.fish
@@ -0,0 +1,16 @@
+# helper for _fzf_preview_changed_file
+# prints out something like
+# +--------+
+# | Staged |
+# +--------+
+function _fzf_report_diff_type --argument-names diff_type --description "Print a distinct colored header meant to preface a git patch."
+ # number of "-" to draw is the length of the string to box + 2 for padding
+ set repeat_count (math 2 + (string length $diff_type))
+ set horizontal_border +(string repeat --count $repeat_count -)+
+
+ set_color yellow
+ echo $horizontal_border
+ echo "| $diff_type |"
+ echo $horizontal_border
+ set_color normal
+end
diff --git a/.config/fish/functions/_fzf_report_file_type.fish b/.config/fish/functions/_fzf_report_file_type.fish
new file mode 100644
index 00000000..49e02e1c
--- /dev/null
+++ b/.config/fish/functions/_fzf_report_file_type.fish
@@ -0,0 +1,6 @@
+# helper function for _fzf_preview_file
+function _fzf_report_file_type --argument-names file_path file_type --description "Explain the file type for a file."
+ set_color red
+ echo "Cannot preview '$file_path': it is a $file_type."
+ set_color normal
+end
diff --git a/.config/fish/functions/_fzf_search_directory.fish b/.config/fish/functions/_fzf_search_directory.fish
new file mode 100644
index 00000000..fee63085
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_directory.fish
@@ -0,0 +1,44 @@
+function _fzf_search_directory --description "Search the current directory. Replace the current token with the selected file paths."
+ # --string-cwd-prefix prevents fd >= 8.3.0 from prepending ./ to relative paths
+ set fd_opts --color=always --strip-cwd-prefix $fzf_fd_opts
+
+ set fzf_arguments --multi --ansi $fzf_dir_opts
+ set token (commandline --current-token)
+ # expand any variables or leading tilde (~) in the token
+ set expanded_token (eval echo -- $token)
+ # unescape token because it's already quoted so backslashes will mess up the path
+ set unescaped_exp_token (string unescape -- $expanded_token)
+
+ # If the current token is a directory and has a trailing slash,
+ # then use it as fd's base directory.
+ if string match --quiet -- "*/" $unescaped_exp_token && test -d "$unescaped_exp_token"
+ set --append fd_opts --base-directory=$unescaped_exp_token
+ # use the directory name as fzf's prompt to indicate the search is limited to that directory
+ set --prepend fzf_arguments --prompt="$unescaped_exp_token" --preview="_fzf_preview_file $expanded_token{}"
+ set file_paths_selected $unescaped_exp_token(fd $fd_opts 2>/dev/null | _fzf_wrapper $fzf_arguments)
+ else
+ set --prepend fzf_arguments --query="$unescaped_exp_token" --preview='_fzf_preview_file {}'
+ set file_paths_selected (fd $fd_opts 2>/dev/null | _fzf_wrapper $fzf_arguments)
+ end
+
+
+ if test $status -eq 0
+ # Fish will cd implicitly if a directory name ending in a slash is provided.
+ # To help the user leverage this feature, we automatically append / to the selected path if
+ # - only one path was selected,
+ # - the user was in the middle of inputting the first token,
+ # - the path is a directory
+ # Then, the user only needs to hit Enter once more to cd into that directory.
+ if test (count $file_paths_selected) = 1
+ set commandline_tokens (commandline --tokenize)
+ if test "$commandline_tokens" = "$token" -a -d "$file_paths_selected" \
+ -a (fd --version | string replace --regex --all '[^\d]' '') -lt 840
+ set file_paths_selected $file_paths_selected/
+ end
+ end
+
+ commandline --current-token --replace -- (string escape -- $file_paths_selected | string join ' ')
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_search_git_log.fish b/.config/fish/functions/_fzf_search_git_log.fish
new file mode 100644
index 00000000..3375c1d9
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_git_log.fish
@@ -0,0 +1,28 @@
+function _fzf_search_git_log --description "Search the output of git log and preview commits. Replace the current token with the selected commit hash."
+ if not git rev-parse --git-dir >/dev/null 2>&1
+ echo '_fzf_search_git_log: Not in a git repository.' >&2
+ else
+ # see documentation for git format placeholders at https://git-scm.com/docs/git-log#Documentation/git-log.txt-emnem
+ # %h gives you the abbreviated commit hash, which is useful for saving screen space, but we will have to expand it later below
+ set log_fmt_str '%C(bold blue)%h%C(reset) - %C(cyan)%ad%C(reset) %C(yellow)%d%C(reset) %C(normal)%s%C(reset) %C(dim normal)[%an]%C(reset)'
+ set selected_log_lines (
+ git log --color=always --format=format:$log_fmt_str --date=short | \
+ _fzf_wrapper --ansi \
+ --multi \
+ --tiebreak=index \
+ --preview='git show --color=always --stat --patch {1}' \
+ --query=(commandline --current-token) \
+ $fzf_git_log_opts
+ )
+ if test $status -eq 0
+ for line in $selected_log_lines
+ set abbreviated_commit_hash (string split --field 1 " " $line)
+ set full_commit_hash (git rev-parse $abbreviated_commit_hash)
+ set --append commit_hashes $full_commit_hash
+ end
+ commandline --current-token --replace (string join ' ' $commit_hashes)
+ end
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_search_git_status.fish b/.config/fish/functions/_fzf_search_git_status.fish
new file mode 100644
index 00000000..f8ae3759
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_git_status.fish
@@ -0,0 +1,34 @@
+function _fzf_search_git_status --description "Search the output of git status. Replace the current token with the selected file paths."
+ if not git rev-parse --git-dir >/dev/null 2>&1
+ echo '_fzf_search_git_status: Not in a git repository.' >&2
+ else
+ set selected_paths (
+ # Pass configuration color.status=always to force status to use colors even though output is sent to a pipe
+ git -c color.status=always status --short |
+ _fzf_wrapper --ansi \
+ --multi \
+ --query=(commandline --current-token) \
+ --preview='_fzf_preview_changed_file {}' \
+ $fzf_git_status_opts
+ )
+ if test $status -eq 0
+ # git status --short automatically escapes the paths of most files for us so not going to bother trying to handle
+ # the few edges cases of weird file names that should be extremely rare (e.g. "this;needs;escaping")
+ set cleaned_paths
+
+ for path in $selected_paths
+ if test (string sub --length 1 $path) = R
+ # path has been renamed and looks like "R LICENSE -> LICENSE.md"
+ # extract the path to use from after the arrow
+ set --append cleaned_paths (string split -- "-> " $path)[-1]
+ else
+ set --append cleaned_paths (string sub --start=4 $path)
+ end
+ end
+
+ commandline --current-token --replace -- (string join ' ' $cleaned_paths)
+ end
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_search_history.fish b/.config/fish/functions/_fzf_search_history.fish
new file mode 100644
index 00000000..d795c5c7
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_history.fish
@@ -0,0 +1,30 @@
+function _fzf_search_history --description "Search command history. Replace the command line with the selected command."
+ # history merge incorporates history changes from other fish sessions
+ # it errors out if called in private mode
+ if test -z "$fish_private_mode"
+ builtin history merge
+ end
+
+ # Delinate commands throughout pipeline using null rather than newlines because commands can be multi-line
+ set commands_selected (
+ # Reference https://devhints.io/strftime to understand strftime format symbols
+ builtin history --null --show-time="%m-%d %H:%M:%S │ " |
+ _fzf_wrapper --read0 \
+ --print0 \
+ --multi \
+ --tiebreak=index \
+ --query=(commandline) \
+ --preview="echo -- {4..} | fish_indent --ansi" \
+ --preview-window="bottom:3:wrap" \
+ $fzf_history_opts |
+ string split0 |
+ # remove timestamps from commands selected
+ string replace --regex '^\d\d-\d\d \d\d:\d\d:\d\d │ ' ''
+ )
+
+ if test $status -eq 0
+ commandline --replace -- $commands_selected
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_search_processes.fish b/.config/fish/functions/_fzf_search_processes.fish
new file mode 100644
index 00000000..e3ef59fd
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_processes.fish
@@ -0,0 +1,28 @@
+function _fzf_search_processes --description "Search all running processes. Replace the current token with the pid of the selected process."
+ # use all caps to be consistent with ps default format
+ # snake_case because ps doesn't seem to allow spaces in the field names
+ set ps_preview_fmt (string join ',' 'pid' 'ppid=PARENT' 'user' '%cpu' 'rss=RSS_IN_KB' 'start=START_TIME' 'command')
+ set processes_selected (
+ ps -A -opid,command | \
+ _fzf_wrapper --multi \
+ --query (commandline --current-token) \
+ --ansi \
+ # first line outputted by ps is a header, so we need to mark it as so
+ --header-lines=1 \
+ # ps uses exit code 1 if the process was not found, in which case show an message explaining so
+ --preview="ps -o '$ps_preview_fmt' -p {1} || echo 'Cannot preview {1} because it exited.'" \
+ --preview-window="bottom:4:wrap" \
+ $fzf_processes_opts
+ )
+
+ if test $status -eq 0
+ for process in $processes_selected
+ set --append pids_selected (string split --no-empty --field=1 -- " " $process)
+ end
+
+ # string join to replace the newlines outputted by string split with spaces
+ commandline --current-token --replace -- (string join ' ' $pids_selected)
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_search_variables.fish b/.config/fish/functions/_fzf_search_variables.fish
new file mode 100644
index 00000000..744f2262
--- /dev/null
+++ b/.config/fish/functions/_fzf_search_variables.fish
@@ -0,0 +1,46 @@
+# This function expects the following two arguments:
+# argument 1 = output of (set --show | psub), i.e. a file with the scope info and values of all variables
+# argument 2 = output of (set --names | psub), i.e. a file with all variable names
+function _fzf_search_variables --argument-names set_show_output set_names_output --description "Search and preview shell variables. Replace the current token with the selected variable."
+ if test -z "$set_names_output"
+ printf '%s\n' '_fzf_search_variables requires 2 arguments.' >&2
+
+ commandline --function repaint
+ return 22 # 22 means invalid argument in POSIX
+ end
+
+ # Exclude the history variable from being piped into fzf because
+ # 1. it's not included in $set_names_output
+ # 2. it tends to be a very large value => increases computation time
+ # 3._fzf_search_history is a much better way to examine history anyway
+ set all_variable_names (string match --invert history <$set_names_output)
+
+ set current_token (commandline --current-token)
+ # Use the current token to pre-populate fzf's query. If the current token begins
+ # with a $, remove it from the query so that it will better match the variable names
+ set cleaned_curr_token (string replace -- '$' '' $current_token)
+
+ set variable_names_selected (
+ printf '%s\n' $all_variable_names |
+ _fzf_wrapper --preview "_fzf_extract_var_info {} $set_show_output" \
+ --preview-window="wrap" \
+ --multi \
+ --query=$cleaned_curr_token \
+ $fzf_shell_vars_opts
+ )
+
+ if test $status -eq 0
+ # If the current token begins with a $, do not overwrite the $ when
+ # replacing the current token with the selected variable.
+ # Uses brace expansion to prepend $ to each variable name.
+ commandline --current-token --replace (
+ if string match --quiet -- '$*' $current_token
+ string join " " \${$variable_names_selected}
+ else
+ string join " " $variable_names_selected
+ end
+ )
+ end
+
+ commandline --function repaint
+end
diff --git a/.config/fish/functions/_fzf_wrapper.fish b/.config/fish/functions/_fzf_wrapper.fish
new file mode 100644
index 00000000..a9287016
--- /dev/null
+++ b/.config/fish/functions/_fzf_wrapper.fish
@@ -0,0 +1,20 @@
+function _fzf_wrapper --description "Prepares some environment variables before executing fzf."
+ # Make sure fzf uses fish to execute preview commands, some of which
+ # are autoloaded fish functions so don't exist in other shells.
+ # Use --local so that it doesn't clobber SHELL outside of this function.
+ set --local --export SHELL (command --search fish)
+
+ # If FZF_DEFAULT_OPTS is not set, then set some sane defaults.
+ # See https://github.com/junegunn/fzf#environment-variables
+ if not set --query FZF_DEFAULT_OPTS
+ # cycle allows jumping between the first and last results, making scrolling faster
+ # layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env
+ # border shows where the fzf window begins and ends
+ # height=90% leaves space to see the current command and some scrollback, maintaining context of work
+ # preview-window=wrap wraps long lines in the preview window, making reading easier
+ # marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >)
+ set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"'
+ end
+
+ fzf $argv
+end
diff --git a/.config/fish/functions/_tide_1_line_prompt.fish b/.config/fish/functions/_tide_1_line_prompt.fish
new file mode 100644
index 00000000..57722237
--- /dev/null
+++ b/.config/fish/functions/_tide_1_line_prompt.fish
@@ -0,0 +1,19 @@
+function _tide_1_line_prompt
+ set -g add_prefix
+ _tide_side=left for item in $_tide_left_items
+ _tide_item_$item
+ end
+ set_color $prev_bg_color -b normal
+ echo $tide_left_prompt_suffix
+
+ set -g add_prefix
+ _tide_side=right for item in $_tide_right_items
+ _tide_item_$item
+ end
+ set_color $prev_bg_color -b normal
+ echo $tide_right_prompt_suffix
+end
+
+function _tide_item_pwd
+ _tide_print_item pwd @PWD@
+end
diff --git a/.config/fish/functions/_tide_2_line_prompt.fish b/.config/fish/functions/_tide_2_line_prompt.fish
new file mode 100644
index 00000000..e9017af4
--- /dev/null
+++ b/.config/fish/functions/_tide_2_line_prompt.fish
@@ -0,0 +1,31 @@
+function _tide_2_line_prompt
+ set -g add_prefix
+ _tide_side=left for item in $_tide_left_items
+ _tide_item_$item
+ end
+ if not set -e add_prefix
+ set_color $prev_bg_color -b normal
+ echo $tide_left_prompt_suffix
+ end
+
+ echo
+
+ set -g add_prefix
+ _tide_side=right for item in $_tide_right_items
+ _tide_item_$item
+ end
+ if not set -e add_prefix
+ set_color $prev_bg_color -b normal
+ echo $tide_right_prompt_suffix
+ end
+end
+
+function _tide_item_pwd
+ _tide_print_item pwd @PWD@
+end
+
+function _tide_item_newline
+ set_color $prev_bg_color -b normal
+ v=tide_"$_tide_side"_prompt_suffix echo $$v
+ set -g add_prefix
+end
diff --git a/.config/fish/functions/_tide_cache_variables.fish b/.config/fish/functions/_tide_cache_variables.fish
new file mode 100644
index 00000000..31e38507
--- /dev/null
+++ b/.config/fish/functions/_tide_cache_variables.fish
@@ -0,0 +1,17 @@
+function _tide_cache_variables
+ # Same-color-separator color
+ set_color $tide_prompt_color_separator_same_color | read -gx _tide_color_separator_same_color
+
+ # git
+ contains git $_tide_left_items $_tide_right_items && set_color $tide_git_color_branch | read -gx _tide_location_color
+
+ # private_mode
+ if contains private_mode $_tide_left_items $_tide_right_items && test -n "$fish_private_mode"
+ set -gx _tide_private_mode
+ else
+ set -e _tide_private_mode
+ end
+
+ # item padding
+ test "$tide_prompt_pad_items" = true && set -gx _tide_pad ' ' || set -e _tide_pad
+end
diff --git a/.config/fish/functions/_tide_detect_os.fish b/.config/fish/functions/_tide_detect_os.fish
new file mode 100644
index 00000000..5d960535
--- /dev/null
+++ b/.config/fish/functions/_tide_detect_os.fish
@@ -0,0 +1,75 @@
+# Outputs icon, color, bg_color
+function _tide_detect_os
+ set -lx defaultColor 080808 CED7CF
+ switch (uname | string lower)
+ case darwin
+ printf %s\n  D6D6D6 333333 # from apple.com header
+ case freebsd openbsd dragonfly
+ printf %s\n  FFFFFF AB2B28 # https://freebsdfoundation.org/about-us/about-the-foundation/project/
+ case 'cygwin*'
+ printf %s\n  FFFFFF 00CCFF # https://answers.microsoft.com/en-us/windows/forum/all/what-is-the-official-windows-8-blue-rgb-or-hex/fd57144b-f69b-42d8-8c21-6ca911646e44
+ case linux
+ if test (uname -o) = Android
+ echo ﲎ # This character is evil and messes up code display, so it's put on its own line
+ # https://developer.android.com/distribute/marketing-tools/brand-guidelines
+ printf %s\n 3DDC84 3C3F41 # fg is from above link, bg is from Android Studio default dark theme
+ else
+ _tide_detect_os_linux_cases /etc/os-release ID ||
+ _tide_detect_os_linux_cases /etc/os-release ID_LIKE ||
+ _tide_detect_os_linux_cases /etc/lsb-release DISTRIB_ID ||
+ printf %s\n  $defaultColor
+ end
+ case '*'
+ echo -ns '?'
+ end
+end
+
+function _tide_detect_os_linux_cases -a file key
+ test -e $file || return
+ set -l split_file (string split '=' <$file)
+ set -l key_index (contains --index $key $split_file) || return
+ set -l value (string trim --chars='"' $split_file[(math $key_index + 1)])
+
+ # Anything which would have pure white background has been changed to D4D4D4
+ # It was just too bright otherwise
+ switch (string lower $value)
+ case alpine
+ printf %s\n  FFFFFF 0D597F # from alpine logo
+ case arch
+ printf %s\n  1793D1 4D4D4D # from arch wiki header
+ case centos
+ printf %s\n  000000 D4D4D4 # https://wiki.centos.org/ArtWork/Brand/Logo, monochromatic
+ case debian
+ printf %s\n  C70036 D4D4D4 # from debian logo https://www.debian.org/logos/openlogo-nd-100.png
+ case devuan
+ printf %s\n  $defaultColor # logo is monochromatic
+ case elementary
+ printf %s\n  000000 D4D4D4 # https://elementary.io/brand, encouraged to be monochromatic
+ case fedora
+ printf %s\n  FFFFFF 294172 # from logo https://fedoraproject.org/w/uploads/2/2d/Logo_fedoralogo.png
+ case gentoo
+ printf %s\n  FFFFFF 54487A # https://wiki.gentoo.org/wiki/Project:Artwork/Colors
+ case mageia
+ printf %s\n  FFFFFF 262F45 # https://wiki.mageia.org/en/Artwork_guidelines
+ case manjaro
+ printf %s\n  FFFFFF 35BF5C # from https://gitlab.manjaro.org/artwork/branding/logo/-/blob/master/logo.svg
+ case mint
+ printf %s\n  FFFFFF 69B53F # extracted from https://linuxmint.com/web/img/favicon.ico
+ case nixos
+ printf %s\n  FFFFFF 5277C3 # https://github.com/NixOS/nixos-artwork/tree/master/logo
+ case opensuse-leap opensuse-tumbleweed
+ printf %s\n  73BA25 173f4f # https://en.opensuse.org/openSUSE:Artwork_brand
+ case raspbian
+ printf %s\n  FFFFFF A22846 # https://static.raspberrypi.org/files/Raspberry_Pi_Visual_Guidelines_2020.pdf
+ case rhel
+ printf %s\n  EE0000 000000 # https://www.redhat.com/en/about/brand/standards/color
+ case sabayon
+ printf %s\n  $defaultColor # Can't find colors, and they are rebranding anyway
+ case slackware
+ printf %s\n  $defaultColor # Doesn't really have a logo, and the colors are too close to PWD blue anyway
+ case ubuntu
+ printf %s\n  E95420 D4D4D4 # https://design.ubuntu.com/brand/
+ case '*'
+ return 1
+ end
+end
diff --git a/.config/fish/functions/_tide_find_and_remove.fish b/.config/fish/functions/_tide_find_and_remove.fish
new file mode 100644
index 00000000..29f21808
--- /dev/null
+++ b/.config/fish/functions/_tide_find_and_remove.fish
@@ -0,0 +1,3 @@
+function _tide_find_and_remove -a name list --no-scope-shadowing
+ contains --index $name $$list | read -l index && set -e "$list"[$index]
+end
diff --git a/.config/fish/functions/_tide_item_aws.fish b/.config/fish/functions/_tide_item_aws.fish
new file mode 100644
index 00000000..7cb6338e
--- /dev/null
+++ b/.config/fish/functions/_tide_item_aws.fish
@@ -0,0 +1,11 @@
+function _tide_item_aws
+ # AWS_PROFILE overrides AWS_DEFAULT_PROFILE, AWS_REGION overrides AWS_DEFAULT_REGION
+ set -q AWS_PROFILE && set -l AWS_DEFAULT_PROFILE $AWS_PROFILE
+ set -q AWS_REGION && set -l AWS_DEFAULT_REGION $AWS_REGION
+
+ if test -n "$AWS_DEFAULT_PROFILE" && test -n "$AWS_DEFAULT_REGION"
+ _tide_print_item aws $tide_aws_icon' ' "$AWS_DEFAULT_PROFILE/$AWS_DEFAULT_REGION"
+ else if test -n "$AWS_DEFAULT_PROFILE$AWS_DEFAULT_REGION"
+ _tide_print_item aws $tide_aws_icon' ' "$AWS_DEFAULT_PROFILE$AWS_DEFAULT_REGION"
+ end
+end
diff --git a/.config/fish/functions/_tide_item_character.fish b/.config/fish/functions/_tide_item_character.fish
new file mode 100644
index 00000000..10bb3244
--- /dev/null
+++ b/.config/fish/functions/_tide_item_character.fish
@@ -0,0 +1,17 @@
+function _tide_item_character
+ test $_tide_status = 0 && set_color $tide_character_color || set_color $tide_character_color_failure
+
+ set -q add_prefix || echo -ns ' '
+
+ test "$fish_key_bindings" = fish_default_key_bindings && echo -ns $tide_character_icon ||
+ switch $fish_bind_mode
+ case insert
+ echo -ns $tide_character_icon
+ case default
+ echo -ns $tide_character_vi_icon_default
+ case replace replace_one
+ echo -ns $tide_character_vi_icon_replace
+ case visual
+ echo -ns $tide_character_vi_icon_visual
+ end
+end
diff --git a/.config/fish/functions/_tide_item_chruby.fish b/.config/fish/functions/_tide_item_chruby.fish
new file mode 100644
index 00000000..02d5fbd9
--- /dev/null
+++ b/.config/fish/functions/_tide_item_chruby.fish
@@ -0,0 +1,3 @@
+function _tide_item_chruby
+ test -n "$RUBY_VERSION" && _tide_print_item chruby $tide_chruby_icon' ' $RUBY_VERSION
+end
diff --git a/.config/fish/functions/_tide_item_cmd_duration.fish b/.config/fish/functions/_tide_item_cmd_duration.fish
new file mode 100644
index 00000000..f7b9db61
--- /dev/null
+++ b/.config/fish/functions/_tide_item_cmd_duration.fish
@@ -0,0 +1,11 @@
+function _tide_item_cmd_duration
+ test $CMD_DURATION -gt $tide_cmd_duration_threshold && time=(math --scale=0 "$CMD_DURATION/3600000" # Hours
+ math --scale=0 "$CMD_DURATION/60000"%60 # Minutes
+ math --scale=$tide_cmd_duration_decimals "$CMD_DURATION/1000"%60) if test $time[1] != 0
+ _tide_print_item cmd_duration $tide_cmd_duration_icon' ' "$time[1]h $time[2]m $time[3]s"
+ else if test $time[2] != 0
+ _tide_print_item cmd_duration $tide_cmd_duration_icon' ' "$time[2]m $time[3]s"
+ else
+ _tide_print_item cmd_duration $tide_cmd_duration_icon' ' "$time[3]s"
+ end
+end
diff --git a/.config/fish/functions/_tide_item_context.fish b/.config/fish/functions/_tide_item_context.fish
new file mode 100644
index 00000000..9dfa56d7
--- /dev/null
+++ b/.config/fish/functions/_tide_item_context.fish
@@ -0,0 +1,9 @@
+function _tide_item_context
+ if set -q SSH_TTY
+ tide_context_color=$tide_context_color_ssh _tide_print_item context $USER@$hostname
+ else if test "$EUID" = 0
+ tide_context_color=$tide_context_color_root _tide_print_item context $USER@$hostname
+ else if test "$tide_context_always_display" = true
+ tide_context_color=$tide_context_color_default _tide_print_item context $USER@$hostname
+ end
+end
diff --git a/.config/fish/functions/_tide_item_docker.fish b/.config/fish/functions/_tide_item_docker.fish
new file mode 100644
index 00000000..4eec0bff
--- /dev/null
+++ b/.config/fish/functions/_tide_item_docker.fish
@@ -0,0 +1,5 @@
+function _tide_item_docker
+ docker context inspect --format '{{.Name}}' | read -l context
+ contains -- "$context" $tide_docker_default_contexts ||
+ _tide_print_item docker $tide_docker_icon' ' $context
+end
diff --git a/.config/fish/functions/_tide_item_git.fish b/.config/fish/functions/_tide_item_git.fish
new file mode 100644
index 00000000..9fca6d0e
--- /dev/null
+++ b/.config/fish/functions/_tide_item_git.fish
@@ -0,0 +1,67 @@
+function _tide_item_git
+ if git branch --show-current 2>/dev/null | string replace -r "(.{$tide_git_truncation_length}).+" '$1…' | read -l location
+ git rev-parse --git-dir --is-inside-git-dir | read -fL gdir in_gdir
+ set location $_tide_location_color$location
+ else if test $pipestatus[1] != 0
+ return
+ else if git tag --points-at HEAD | string replace -r "(.{$tide_git_truncation_length}).+" '$1…' | read location
+ git rev-parse --git-dir --is-inside-git-dir | read -fL gdir in_gdir
+ set location '#'$_tide_location_color$location
+ else
+ git rev-parse --git-dir --is-inside-git-dir --short HEAD | read -fL gdir in_gdir location
+ set location @$_tide_location_color$location
+ end
+
+ # Operation
+ if test -d $gdir/rebase-merge
+ read -f step <$gdir/rebase-merge/msgnum
+ read -f total_steps <$gdir/rebase-merge/end
+ test -f $gdir/rebase-merge/interactive && set -f operation rebase-i || set -f operation rebase-m
+ else if test -d $gdir/rebase-apply
+ read -f step <$gdir/rebase-apply/next
+ read -f total_steps <$gdir/rebase-apply/last
+ if test -f $gdir/rebase-apply/rebasing
+ set -f operation rebase
+ else if test -f $gdir/rebase-apply/applying
+ set -f operation am
+ else
+ set -f operation am/rebase
+ end
+ else if test -f $gdir/MERGE_HEAD
+ set -f operation merge
+ else if test -f $gdir/CHERRY_PICK_HEAD
+ set -f operation cherry-pick
+ else if test -f $gdir/REVERT_HEAD
+ set -f operation revert
+ else if test -f $gdir/BISECT_LOG
+ set -f operation bisect
+ end
+
+ # Git status/stash + Upstream behind/ahead
+ test $in_gdir = true && set -l _set_dir_opt -C $gdir/..
+ # Suppress errors in case we are in a bare repo or there is no upstream
+ stat=(git $_set_dir_opt --no-optional-locks status --porcelain 2>/dev/null) \
+ string match -qr '(0|(?<stash>.*))\n(0|(?<conflicted>.*))\n(0|(?<staged>.*))
+(0|(?<dirty>.*))\n(0|(?<untracked>.*))(\n(0|(?<behind>.*))\t(0|(?<ahead>.*)))?' \
+ "$(git $_set_dir_opt stash list 2>/dev/null | count
+ string match -r ^UU $stat | count
+ string match -r ^[ADMR]. $stat | count
+ string match -r ^.[ADMR] $stat | count
+ string match -r '^\?\?' $stat | count
+ git rev-list --count --left-right @{upstream}...HEAD 2>/dev/null)"
+
+ if test -n "$operation$conflicted"
+ set -g tide_git_bg_color $tide_git_bg_color_urgent
+ else if test -n "$staged$dirty$untracked"
+ set -g tide_git_bg_color $tide_git_bg_color_unstable
+ end
+
+ _tide_print_item git $_tide_location_color$tide_git_icon' ' (set_color white; echo -ns $location
+ set_color $tide_git_color_operation; echo -ns ' '$operation ' '$step/$total_steps
+ set_color $tide_git_color_upstream; echo -ns ' ⇣'$behind ' ⇡'$ahead
+ set_color $tide_git_color_stash; echo -ns ' *'$stash
+ set_color $tide_git_color_conflicted; echo -ns ' ~'$conflicted
+ set_color $tide_git_color_staged; echo -ns ' +'$staged
+ set_color $tide_git_color_dirty; echo -ns ' !'$dirty
+ set_color $tide_git_color_untracked; echo -ns ' ?'$untracked)
+end
diff --git a/.config/fish/functions/_tide_item_go.fish b/.config/fish/functions/_tide_item_go.fish
new file mode 100644
index 00000000..304acc52
--- /dev/null
+++ b/.config/fish/functions/_tide_item_go.fish
@@ -0,0 +1,3 @@
+function _tide_item_go
+ test -e go.mod && _tide_print_item go $tide_go_icon' ' (go version | string match -r "[\d.]+")
+end
diff --git a/.config/fish/functions/_tide_item_java.fish b/.config/fish/functions/_tide_item_java.fish
new file mode 100644
index 00000000..88d0ea6e
--- /dev/null
+++ b/.config/fish/functions/_tide_item_java.fish
@@ -0,0 +1,3 @@
+function _tide_item_java
+ test -e pom.xml && _tide_print_item java $tide_java_icon' ' (java -version &| string match -r "[\d.]+")[1]
+end
diff --git a/.config/fish/functions/_tide_item_jobs.fish b/.config/fish/functions/_tide_item_jobs.fish
new file mode 100644
index 00000000..96cf902c
--- /dev/null
+++ b/.config/fish/functions/_tide_item_jobs.fish
@@ -0,0 +1,3 @@
+function _tide_item_jobs
+ set -q _tide_jobs && _tide_print_item jobs $tide_jobs_icon
+end
diff --git a/.config/fish/functions/_tide_item_kubectl.fish b/.config/fish/functions/_tide_item_kubectl.fish
new file mode 100644
index 00000000..ab044b33
--- /dev/null
+++ b/.config/fish/functions/_tide_item_kubectl.fish
@@ -0,0 +1,4 @@
+function _tide_item_kubectl
+ kubectl config view --minify --output 'jsonpath={.current-context}/{..namespace}' 2>/dev/null | read -l context &&
+ _tide_print_item kubectl $tide_kubectl_icon' ' (string replace -r '/(|default)$' '' $context)
+end
diff --git a/.config/fish/functions/_tide_item_nix_shell.fish b/.config/fish/functions/_tide_item_nix_shell.fish
new file mode 100644
index 00000000..647f6066
--- /dev/null
+++ b/.config/fish/functions/_tide_item_nix_shell.fish
@@ -0,0 +1,3 @@
+function _tide_item_nix_shell
+ set -q IN_NIX_SHELL && _tide_print_item nix_shell $tide_nix_shell_icon' ' $IN_NIX_SHELL
+end
diff --git a/.config/fish/functions/_tide_item_node.fish b/.config/fish/functions/_tide_item_node.fish
new file mode 100644
index 00000000..90a929b0
--- /dev/null
+++ b/.config/fish/functions/_tide_item_node.fish
@@ -0,0 +1,3 @@
+function _tide_item_node
+ test -e package.json && _tide_print_item node $tide_node_icon' ' (node --version | string trim --chars=v)
+end
diff --git a/.config/fish/functions/_tide_item_os.fish b/.config/fish/functions/_tide_item_os.fish
new file mode 100644
index 00000000..8a6208c6
--- /dev/null
+++ b/.config/fish/functions/_tide_item_os.fish
@@ -0,0 +1,3 @@
+function _tide_item_os
+ _tide_print_item os $tide_os_icon
+end
diff --git a/.config/fish/functions/_tide_item_php.fish b/.config/fish/functions/_tide_item_php.fish
new file mode 100644
index 00000000..64fc59b6
--- /dev/null
+++ b/.config/fish/functions/_tide_item_php.fish
@@ -0,0 +1,3 @@
+function _tide_item_php
+ test -e composer.json && _tide_print_item php $tide_php_icon' ' (php --version | string match -r 'PHP ([\d.]+)')[2]
+end
diff --git a/.config/fish/functions/_tide_item_private_mode.fish b/.config/fish/functions/_tide_item_private_mode.fish
new file mode 100644
index 00000000..4eb4684d
--- /dev/null
+++ b/.config/fish/functions/_tide_item_private_mode.fish
@@ -0,0 +1,3 @@
+function _tide_item_private_mode
+ set -q _tide_private_mode && _tide_print_item private_mode $tide_private_mode_icon
+end
diff --git a/.config/fish/functions/_tide_item_rustc.fish b/.config/fish/functions/_tide_item_rustc.fish
new file mode 100644
index 00000000..b898e6f3
--- /dev/null
+++ b/.config/fish/functions/_tide_item_rustc.fish
@@ -0,0 +1,3 @@
+function _tide_item_rustc
+ test -e Cargo.toml && _tide_print_item rustc $tide_rustc_icon' ' (rustc --version | string split ' ')[2]
+end
diff --git a/.config/fish/functions/_tide_item_shlvl.fish b/.config/fish/functions/_tide_item_shlvl.fish
new file mode 100644
index 00000000..95dd5ff2
--- /dev/null
+++ b/.config/fish/functions/_tide_item_shlvl.fish
@@ -0,0 +1,4 @@
+function _tide_item_shlvl
+ # Non-interactive shells do not increment SHLVL, so we don't need to subtract 1
+ test $SHLVL -gt $tide_shlvl_threshold && _tide_print_item shlvl $tide_shlvl_icon' ' $SHLVL
+end
diff --git a/.config/fish/functions/_tide_item_status.fish b/.config/fish/functions/_tide_item_status.fish
new file mode 100644
index 00000000..3a040fd1
--- /dev/null
+++ b/.config/fish/functions/_tide_item_status.fish
@@ -0,0 +1,15 @@
+function _tide_item_status
+ if string match -qv 0 $_tide_pipestatus # If there is a failure anywhere in the pipestatus
+ if test "$_tide_pipestatus" = 1 # If simple failure
+ contains character $_tide_left_items || tide_status_bg_color=$tide_status_bg_color_failure \
+ tide_status_color=$tide_status_color_failure _tide_print_item status $tide_status_icon_failure' ' 1
+ else
+ fish_status_to_signal $_tide_pipestatus | string replace SIG '' | string join '|' | read -l out
+ test $_tide_status = 0 && _tide_print_item status $tide_status_icon' ' $out ||
+ tide_status_bg_color=$tide_status_bg_color_failure tide_status_color=$tide_status_color_failure \
+ _tide_print_item status $tide_status_icon_failure' ' $out
+ end
+ else if not contains character $_tide_left_items
+ _tide_print_item status $tide_status_icon
+ end
+end
diff --git a/.config/fish/functions/_tide_item_terraform.fish b/.config/fish/functions/_tide_item_terraform.fish
new file mode 100644
index 00000000..60fd3fb1
--- /dev/null
+++ b/.config/fish/functions/_tide_item_terraform.fish
@@ -0,0 +1,6 @@
+function _tide_item_terraform
+ if test -d .terraform
+ terraform workspace show | read -l workspace
+ test $workspace != default && _tide_print_item terraform $tide_terraform_icon' ' $workspace
+ end
+end
diff --git a/.config/fish/functions/_tide_item_time.fish b/.config/fish/functions/_tide_item_time.fish
new file mode 100644
index 00000000..b8522bc4
--- /dev/null
+++ b/.config/fish/functions/_tide_item_time.fish
@@ -0,0 +1,3 @@
+function _tide_item_time
+ _tide_print_item time (date +$tide_time_format)
+end
diff --git a/.config/fish/functions/_tide_item_toolbox.fish b/.config/fish/functions/_tide_item_toolbox.fish
new file mode 100644
index 00000000..28975d30
--- /dev/null
+++ b/.config/fish/functions/_tide_item_toolbox.fish
@@ -0,0 +1,3 @@
+function _tide_item_toolbox
+ test -e /run/.toolboxenv && _tide_print_item toolbox $tide_toolbox_icon' ' $hostname
+end
diff --git a/.config/fish/functions/_tide_item_vi_mode.fish b/.config/fish/functions/_tide_item_vi_mode.fish
new file mode 100644
index 00000000..582855d0
--- /dev/null
+++ b/.config/fish/functions/_tide_item_vi_mode.fish
@@ -0,0 +1,16 @@
+function _tide_item_vi_mode
+ test "$fish_key_bindings" != fish_default_key_bindings && switch $fish_bind_mode
+ case default
+ tide_vi_mode_bg_color=$tide_vi_mode_bg_color_default tide_vi_mode_color=$tide_vi_mode_color_default \
+ _tide_print_item vi_mode $tide_vi_mode_icon_default
+ case insert
+ tide_vi_mode_bg_color=$tide_vi_mode_bg_color_insert tide_vi_mode_color=$tide_vi_mode_color_insert \
+ _tide_print_item vi_mode $tide_vi_mode_icon_insert
+ case replace replace_one
+ tide_vi_mode_bg_color=$tide_vi_mode_bg_color_replace tide_vi_mode_color=$tide_vi_mode_color_replace \
+ _tide_print_item vi_mode $tide_vi_mode_icon_replace
+ case visual
+ tide_vi_mode_bg_color=$tide_vi_mode_bg_color_visual tide_vi_mode_color=$tide_vi_mode_color_visual \
+ _tide_print_item vi_mode $tide_vi_mode_icon_visual
+ end
+end
diff --git a/.config/fish/functions/_tide_item_virtual_env.fish b/.config/fish/functions/_tide_item_virtual_env.fish
new file mode 100644
index 00000000..0f20ceec
--- /dev/null
+++ b/.config/fish/functions/_tide_item_virtual_env.fish
@@ -0,0 +1,11 @@
+function _tide_item_virtual_env
+ test -n "$VIRTUAL_ENV" && split_virtual_env=(string split / "$VIRTUAL_ENV") if test $split_virtual_env[-2] = virtualenvs
+ # pipenv $VIRTUAL_ENV looks like /home/ilan/.local/share/virtualenvs/pipenv_project-EwRYuc3l
+ # Detect whether we are using pipenv by looking for virtualenvs. If so, remove the hash at the end.
+ _tide_print_item virtual_env $tide_virtual_env_icon' ' (string split -r -m1 - "$split_virtual_env[-1]")[1]
+ else if contains -- $split_virtual_env[-1] virtualenv venv .venv env # avoid generic names
+ _tide_print_item virtual_env $tide_virtual_env_icon' ' $split_virtual_env[-2]
+ else
+ _tide_print_item virtual_env $tide_virtual_env_icon' ' $split_virtual_env[-1]
+ end
+end
diff --git a/.config/fish/functions/_tide_print_item.fish b/.config/fish/functions/_tide_print_item.fish
new file mode 100644
index 00000000..db5c98b2
--- /dev/null
+++ b/.config/fish/functions/_tide_print_item.fish
@@ -0,0 +1,22 @@
+function _tide_print_item -a item
+ v=tide_"$item"_bg_color set -f item_bg_color $$v
+
+ if set -e add_prefix
+ set_color $item_bg_color -b normal
+ v=tide_"$_tide_side"_prompt_prefix echo -ns $$v
+ else if test "$item_bg_color" = "$prev_bg_color"
+ v=tide_"$_tide_side"_prompt_separator_same_color echo -ns $_tide_color_separator_same_color$$v
+ else if test $_tide_side = left
+ set_color $prev_bg_color -b $item_bg_color
+ echo -ns $tide_left_prompt_separator_diff_color
+ else
+ set_color $item_bg_color -b $prev_bg_color
+ echo -ns $tide_right_prompt_separator_diff_color
+ end
+
+ v=tide_"$item"_color set_color $$v -b $item_bg_color
+
+ echo -ns $_tide_pad $argv[2..] $_tide_pad
+
+ set -g prev_bg_color $item_bg_color
+end
diff --git a/.config/fish/functions/_tide_pwd.fish b/.config/fish/functions/_tide_pwd.fish
new file mode 100644
index 00000000..1680528e
--- /dev/null
+++ b/.config/fish/functions/_tide_pwd.fish
@@ -0,0 +1,37 @@
+set_color -o $tide_pwd_color_anchors | read -l color_anchors
+set_color $tide_pwd_color_truncated_dirs | read -l color_truncated
+set -l reset_to_color_dirs (set_color normal -b $tide_pwd_bg_color; set_color $tide_pwd_color_dirs)
+
+set -l unwritable_icon $tide_pwd_icon_unwritable' '
+set -l home_icon $tide_pwd_icon_home' '
+set -l pwd_icon $tide_pwd_icon' '
+
+eval "function _tide_pwd
+ if set -l split_pwd (string replace -r '^$HOME' '~' \$PWD | string split /)
+ test -w . && set -f split_output \"$pwd_icon\$split_pwd[1]\" \$split_pwd[2..] ||
+ set -f split_output \"$unwritable_icon\$split_pwd[1]\" \$split_pwd[2..]
+ set split_output[-1] \"$color_anchors\$split_output[-1]$reset_to_color_dirs\"
+ else
+ set -f split_output \"$home_icon$color_anchors~\"
+ end
+
+ string join / \$split_output | string length -V | read -g _tide_pwd_len
+
+ i=1 for dir_section in \$split_pwd[2..-2]
+ string join -- / \$split_pwd[..\$i] | string replace '~' $HOME | read -l parent_dir # Uses i before increment
+
+ math \$i+1 | read i
+
+ if path is \$parent_dir/\$dir_section/\$tide_pwd_markers
+ set split_output[\$i] \"$color_anchors\$dir_section$reset_to_color_dirs\"
+ else if test \$_tide_pwd_len -gt \$dist_btwn_sides
+ set -l trunc
+ while string match -qr \"(?<trunc>\$trunc.)\" \$dir_section && v=\$parent_dir/\$trunc*/ set -q v[2]
+ end
+ test -n \"\$trunc\" && set split_output[\$i] \"$color_truncated\$trunc$reset_to_color_dirs\" &&
+ string join / \$split_output | string length -V | read _tide_pwd_len
+ end
+ end
+
+ string join -- / \"$reset_to_color_dirs\$split_output[1]\" \$split_output[2..]
+end"
diff --git a/.config/fish/functions/_tide_remove_unusable_items.fish b/.config/fish/functions/_tide_remove_unusable_items.fish
new file mode 100644
index 00000000..69065dc8
--- /dev/null
+++ b/.config/fish/functions/_tide_remove_unusable_items.fish
@@ -0,0 +1,21 @@
+function _tide_remove_unusable_items
+ # Remove tool-specific items for tools the machine doesn't have installed
+ set -l removed_items
+ for item in aws chruby docker git go java kubectl nix_shell node php rustc terraform toolbox virtual_env
+ set -l cli_names $item
+ switch $item
+ case virtual_env
+ set cli_names python python3
+ case nix_shell
+ set cli_names nix nix-shell
+ end
+ type --query $cli_names || set -a removed_items $item
+ end
+
+ set -U _tide_left_items (for item in $tide_left_prompt_items
+ contains $item $removed_items || echo $item
+ end)
+ set -U _tide_right_items (for item in $tide_right_prompt_items
+ contains $item $removed_items || echo $item
+ end)
+end
diff --git a/.config/fish/functions/_tide_sub_bug-report.fish b/.config/fish/functions/_tide_sub_bug-report.fish
new file mode 100644
index 00000000..5f087c88
--- /dev/null
+++ b/.config/fish/functions/_tide_sub_bug-report.fish
@@ -0,0 +1,73 @@
+function _tide_sub_bug-report
+ argparse c/clean v/verbose check -- $argv
+
+ set -l fish_path (status fish-path)
+
+ if set -q _flag_clean
+ HOME=(mktemp -d) $fish_path --init-command "curl --silent \
+ https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish |
+ source && fisher install ilancosman/tide@v5"
+ else if set -q _flag_verbose
+ set --long | string match -r "^_?tide.*" | # Get only tide variables
+ string match -r --invert "^_tide_prompt_var.*" # Remove _tide_prompt_var
+ else
+ set -l fish_version ($fish_path --version | string match -r "fish, version (\d\.\d\.\d)")[2]
+ _tide_check_version Fish fish-shell/fish-shell "(\d\.\d\.\d)" $fish_version || return
+
+ set -l tide_version (tide --version | string match -r "tide, version (\d\.\d\.\d)")[2]
+ _tide_check_version Tide IlanCosman/tide "v(\d\.\d\.\d)" $tide_version || return
+
+ if command --query git
+ test (git --version | string match -r "git version ([\d\.]*)" | string replace --all . '')[2] -gt 2220
+ _tide_check_condition \
+ "Your git version is too old." \
+ "Tide requires at least version 2.22." \
+ "Please update before submitting a bug report." || return
+ end
+
+ # Check that omf is not installed
+ not functions --query omf
+ _tide_check_condition \
+ "Tide does not work with oh-my-fish installed." \
+ "Please uninstall it before submitting a bug report." || return
+
+ if not set -q _flag_check
+ set -l fish_startup_time ($fish_path -ic "time $fish_path -c exit" 2>|
+ string match -r "Executed in(.*)fish" | string trim)[2]
+
+ read --local --prompt-str "What operating system are you using? (e.g Ubuntu 20.04): " os
+ read --local --prompt-str "What terminal emulator are you using? (e.g Kitty): " terminal_emulator
+
+ printf '%b\n' "\nPlease copy the following information into the issue:\n" \
+ "fish version: $fish_version" \
+ "tide version: $tide_version" \
+ "term: $TERM" \
+ "os: $os" \
+ "terminal emulator: $terminal_emulator" \
+ "fish startup: $fish_startup_time" \
+ "fisher plugins: $_fisher_plugins"
+ end
+ end
+end
+
+function _tide_check_version -a program_name repo_name regex_to_get_version current_version
+ curl --silent https://github.com/$repo_name/releases/latest |
+ string match -r ".*$repo_name/releases/tag/$regex_to_get_version.*" |
+ read --local --line __ latestVersion
+
+ string match --quiet -r "^$latestVersion" "$current_version"
+ _tide_check_condition \
+ "Your $program_name version is out of date." \
+ "The latest is $latestVersion. You have $current_version." \
+ "Please update before submitting a bug report."
+end
+
+function _tide_check_condition
+ if test "$status" != 0
+ set_color red
+ printf '%s\n' $argv
+ set_color normal
+ return 1
+ end
+ return 0
+end
diff --git a/.config/fish/functions/_tide_sub_configure.fish b/.config/fish/functions/_tide_sub_configure.fish
new file mode 100644
index 00000000..cb872901
--- /dev/null
+++ b/.config/fish/functions/_tide_sub_configure.fish
@@ -0,0 +1,95 @@
+set -g _tide_color_dark_blue 0087AF
+set -g _tide_color_dark_green 5FAF00
+set -g _tide_color_gold D7AF00
+set -g _tide_color_green 5FD700
+set -g _tide_color_light_blue 00AFFF
+
+# Create an empty fake function for each item
+for func in _fake(functions --all | string match --entire _tide_item)
+ function $func
+ end
+end
+
+for file in (status dirname)/tide/configure/{choices, functions}/**.fish
+ source $file
+end
+
+function _tide_sub_configure
+ if test $COLUMNS -lt 55 -o $LINES -lt 21
+ echo 'Terminal size too small; must be at least 55 x 21'
+ return 1
+ end
+
+ _tide_detect_os | read -g --line os_branding_icon os_branding_color os_branding_bg_color
+
+ set -g fake_columns $COLUMNS
+ test $fake_columns -gt 90 && set fake_columns 90
+ set -g fake_lines $LINES
+
+ set -g _tide_selected_option
+ _next_choice all/style
+end
+
+function _next_choice -a nextChoice
+ set -q _tide_selected_option || return 0
+ set -l cmd (string split '/' $nextChoice)[2]
+ $cmd
+end
+
+function _tide_title -a text
+ command -q clear && clear
+ set_color -o
+ string pad --width (math --scale=0 "$fake_columns/2" + (string length $text)/2) $text
+ set_color normal
+end
+
+function _tide_option -a symbol text
+ set -ga _tide_option_list $symbol
+
+ set_color -o
+ echo "($symbol) $text"
+ set_color normal
+end
+
+function _tide_menu
+ set -l list_with_slashes (string join '/' $_tide_option_list)
+
+ echo '(r) Restart from the beginning'
+ echo '(q) Quit and do nothing'\n
+
+ while true
+ set_color -o
+ read --nchars 1 --prompt-str "Choice [$list_with_slashes/r/q] " input
+ set_color normal
+
+ switch $input
+ case r
+ set -e _tide_option_list
+ _next_choice all/style
+ break
+ case q
+ set -e _tide_selected_option # Skip through all the _next_choices
+ set -e _tide_option_list
+ command -q clear && clear
+ break
+ case $_tide_option_list
+ set -e _tide_option_list
+ set -g _tide_selected_option $input
+ break
+ end
+ end
+end
+
+function _tide_display_prompt -a var_name var_value
+ test -n "$var_name" && set -g $var_name $var_value
+ _fake_tide_cache_variables
+ set -l prompt (_fake_tide_prompt)
+
+ set -l bottom_left_prompt_string_length (string length --visible $prompt[-1])
+ set -l right_prompt_string (string pad --width (math $fake_columns-$bottom_left_prompt_string_length) $prompt[1])
+ set -l prompt[-1] "$prompt[-1]$right_prompt_string"
+
+ string unescape $prompt[2..]
+ set_color normal
+ echo
+end
diff --git a/.config/fish/functions/fish_mode_prompt.fish b/.config/fish/functions/fish_mode_prompt.fish
new file mode 100644
index 00000000..f37cf7dc
--- /dev/null
+++ b/.config/fish/functions/fish_mode_prompt.fish
@@ -0,0 +1 @@
+# Disable default vi prompt
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
new file mode 100644
index 00000000..7aef1678
--- /dev/null
+++ b/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1,87 @@
+function fish_prompt
+end # In case this file gets loaded non-interactively, e.g by conda
+status is-interactive || exit
+
+_tide_remove_unusable_items
+_tide_cache_variables
+source (functions --details _tide_pwd)
+
+set -l prompt_var _tide_prompt_$fish_pid
+set -U $prompt_var # Set var here so if we erase $prompt_var, bg job won't set a uvar
+
+set_color normal | read -l color_normal
+status fish-path | read -l fish_path
+
+# _tide_repaint prevents us from creating a second background job
+function _tide_refresh_prompt --on-variable $prompt_var --on-variable COLUMNS
+ set -g _tide_repaint
+ commandline -f repaint
+end
+
+if contains newline $_tide_left_items # two line prompt initialization
+ test "$tide_prompt_add_newline_before" = true && set -l add_newline '\n'
+
+ set_color $tide_prompt_color_frame_and_connection -b normal | read -l prompt_and_frame_color
+
+ set -l column_offset 5
+ test "$tide_left_prompt_frame_enabled" = true &&
+ set -l top_left_frame "$prompt_and_frame_color╭─" &&
+ set -l bot_left_frame "$prompt_and_frame_color╰─" &&
+ set column_offset (math $column_offset-2)
+ test "$tide_right_prompt_frame_enabled" = true &&
+ set -l top_right_frame "$prompt_and_frame_color─╮" &&
+ set -l bot_right_frame "$prompt_and_frame_color─╯" &&
+ set column_offset (math $column_offset-2)
+
+ eval "
+function fish_prompt
+ _tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
+ jobs -q && set -lx _tide_jobs
+ $fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
+CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (_tide_2_line_prompt)\" &
+ builtin disown
+
+ command kill \$_tide_last_pid 2>/dev/null
+ set -g _tide_last_pid \$last_pid
+ end
+
+ math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][3]\")+$column_offset | read -lx dist_btwn_sides
+
+ echo -ns $add_newline'$top_left_frame'(string replace @PWD@ (_tide_pwd) \"\$$prompt_var[1][1]\")'$prompt_and_frame_color'
+ string repeat -Nm(math max 0, \$dist_btwn_sides-\$_tide_pwd_len) '$tide_prompt_icon_connection'
+ echo -ns \"\$$prompt_var[1][3]$top_right_frame\"\n\"$bot_left_frame\$$prompt_var[1][2]$color_normal \"
+end
+
+function fish_right_prompt
+ string unescape \"\$$prompt_var[1][4]$bot_right_frame$color_normal\"
+end"
+else # one line prompt initialization
+ test "$tide_prompt_add_newline_before" = true && set -l add_newline '\0'
+
+ math 5 -$tide_prompt_min_cols | read -l column_offset
+ test $column_offset -ge 0 && set column_offset "+$column_offset"
+
+ eval "
+function fish_prompt
+ _tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
+ jobs -q && set -lx _tide_jobs
+ $fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
+CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (_tide_1_line_prompt)\" &
+ builtin disown
+
+ command kill \$_tide_last_pid 2>/dev/null
+ set -g _tide_last_pid \$last_pid
+ end
+
+ math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][2]\")$column_offset | read -lx dist_btwn_sides
+ string replace @PWD@ (_tide_pwd) $add_newline \$$prompt_var[1][1]'$color_normal '
+end
+
+function fish_right_prompt
+ string unescape \"\$$prompt_var[1][2]$color_normal\"
+end"
+end
+
+eval "function _tide_on_fish_exit --on-event fish_exit
+ set -e $prompt_var
+end"
diff --git a/.config/fish/functions/fisher.fish b/.config/fish/functions/fisher.fish
index 47598571..a4666a13 100644
--- a/.config/fish/functions/fisher.fish
+++ b/.config/fish/functions/fisher.fish
@@ -1,430 +1,240 @@
-set -g fisher_version 3.2.9
+function fisher --argument-names cmd --description "A plugin manager for Fish"
+ set --query fisher_path || set --local fisher_path $__fish_config_dir
+ set --local fisher_version 4.4.2
+ set --local fish_plugins $__fish_config_dir/fish_plugins
-function fisher -a cmd -d "fish package manager"
- set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache
- set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
+ switch "$cmd"
+ case -v --version
+ echo "fisher, version $fisher_version"
+ case "" -h --help
+ echo "Usage: fisher install <plugins...> Install plugins"
+ echo " fisher remove <plugins...> Remove installed plugins"
+ echo " fisher update <plugins...> Update installed plugins"
+ echo " fisher update Update all installed plugins"
+ echo " fisher list [<regex>] List installed plugins matching regex"
+ echo "Options:"
+ echo " -v or --version Print version"
+ echo " -h or --help Print this help message"
+ echo "Variables:"
+ echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
+ case ls list
+ string match --entire --regex -- "$argv[2]" $_fisher_plugins
+ case install update remove
+ isatty || read --local --null --array stdin && set --append argv $stdin
+
+ set --local install_plugins
+ set --local update_plugins
+ set --local remove_plugins
+ set --local arg_plugins $argv[2..-1]
+ set --local old_plugins $_fisher_plugins
+ set --local new_plugins
+
+ test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins)
+
+ if ! set --query argv[2]
+ if test "$cmd" != update
+ echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
+ else if ! set --query file_plugins
+ echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
+ end
+ set arg_plugins $file_plugins
+ end
- set -g fish_config $XDG_CONFIG_HOME/fish
- set -g fisher_cache $XDG_CACHE_HOME/fisher
- set -g fisher_config $XDG_CONFIG_HOME/fisher
+ for plugin in $arg_plugins
+ set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
+ contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
+ end
- set -q fisher_path; or set -g fisher_path $fish_config
+ if set --query argv[2]
+ for plugin in $new_plugins
+ if contains -- "$plugin" $old_plugins
+ test "$cmd" = remove &&
+ set --append remove_plugins $plugin ||
+ set --append update_plugins $plugin
+ else if test "$cmd" = install
+ set --append install_plugins $plugin
+ else
+ echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
+ end
+ end
+ else
+ for plugin in $new_plugins
+ contains -- "$plugin" $old_plugins &&
+ set --append update_plugins $plugin ||
+ set --append install_plugins $plugin
+ end
- for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache
- if test ! -d $path
- command mkdir -p $path
- end
- end
+ for plugin in $old_plugins
+ contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
+ end
+ end
- if test ! -e $fisher_path/completions/fisher.fish
- echo "fisher complete" >$fisher_path/completions/fisher.fish
- _fisher_complete
- end
+ set --local pid_list
+ set --local source_plugins
+ set --local fetch_plugins $update_plugins $install_plugins
+ set --local fish_path (status fish-path)
- if test -e $fisher_path/conf.d/fisher.fish
- switch "$version"
- case \*-\*
- command rm -f $fisher_path/conf.d/fisher.fish
- case 2\*
- case \*
- command rm -f $fisher_path/conf.d/fisher.fish
- end
- else
- switch "$version"
- case \*-\*
- case 2\*
- echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish
- end
- end
+ echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
- switch "$cmd"
- case {,self-}complete
- _fisher_complete
- case copy-user-key-bindings
- _fisher_copy_user_key_bindings
- case ls
- set -e argv[1]
- if test -s "$fisher_path/fishfile"
- set -l file (_fisher_fmt <$fisher_path/fishfile | _fisher_parse -R | command sed "s|@.*||")
- _fisher_ls | _fisher_fmt | command awk -v FILE="$file" "
- BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/
- " | command sed "s|^$HOME|~|"
- end
- case self-update
- _fisher_self_update (status -f)
- case self-uninstall
- _fisher_self_uninstall
- case {,-}-v{ersion,}
- echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|")
- case {,-}-h{elp,}
- _fisher_help
- case ""
- _fisher_commit --
- case add rm
- if not isatty
- while read -l arg
- set argv $argv $arg
- end
- end
+ for plugin in $fetch_plugins
+ set --local source (command mktemp -d)
+ set --append source_plugins $source
- if test (count $argv) = 1
- echo "fisher: invalid number of arguments" >&2
- _fisher_help >&2
- return 1
- end
+ command mkdir -p $source/{completions,conf.d,themes,functions}
- _fisher_commit $argv
- case \*
- echo "fisher: unknown flag or command \"$cmd\"" >&2
- _fisher_help >&2
- return 1
- end
-end
+ $fish_path --command "
+ if test -e $plugin
+ command cp -Rf $plugin/* $source
+ else
+ set temp (command mktemp -d)
+ set repo (string split -- \@ $plugin) || set repo[2] HEAD
-function _fisher_complete
- complete -ec fisher
- complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages"
- complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages"
- complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX"
- complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help"
- complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version"
- complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version"
- for pkg in (fisher ls)
- complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg
- end
-end
+ if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
+ set name (string split -- / \$path)[-1]
+ set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
+ else
+ set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
+ end
-function _fisher_copy_user_key_bindings
- if functions -q fish_user_key_bindings
- functions -c fish_user_key_bindings fish_user_key_bindings_copy
- end
- function fish_user_key_bindings
- for file in $fisher_path/conf.d/*_key_bindings.fish
- source $file >/dev/null 2>/dev/null
- end
- if functions -q fish_user_key_bindings_copy
- fish_user_key_bindings_copy
- end
- end
-end
+ echo Fetching (set_color --underline)\$url(set_color normal)
-function _fisher_ls
- for pkg in $fisher_config/*/*/*
- command readlink $pkg; or echo $pkg
- end
-end
+ if curl --silent -L \$url | tar -xzC \$temp -f - 2>/dev/null
+ command cp -Rf \$temp/*/* $source
+ else
+ echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
+ command rm -rf $source
+ end
-function _fisher_fmt
- command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||"
-end
+ command rm -rf \$temp
+ end
-function _fisher_help
- echo "usage: fisher add <package...> Add packages"
- echo " fisher rm <package...> Remove packages"
- echo " fisher Update all packages"
- echo " fisher ls [<regex>] List installed packages matching <regex>"
- echo " fisher --help Show this help"
- echo " fisher --version Show the current version"
- echo " fisher self-update Update to the latest version"
- echo " fisher self-uninstall Uninstall from your system"
- echo "examples:"
- echo " fisher add jethrokuan/z rafaelrinaldi/pure"
- echo " fisher add gitlab.com/foo/bar@v2"
- echo " fisher add ~/path/to/local/pkg"
- echo " fisher add <file"
- echo " fisher rm rafaelrinaldi/pure"
- echo " fisher ls | fisher rm"
- echo " fisher ls fish-\*"
-end
+ set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
+ " &
-function _fisher_self_update -a file
- set -l url "https://raw.githubusercontent.com/jorgebucaran/fisher/master/fisher.fish"
- echo "fetching $url" >&2
- command curl -s "$url?nocache" >$file.
-
- set -l next_version (command awk '{ print $4 } { exit }' <$file.)
- switch "$next_version"
- case "" $fisher_version
- command rm -f $file.
- if test -z "$next_version"
- echo "fisher: cannot update fisher -- are you offline?" >&2
- return 1
+ set --append pid_list (jobs --last --pid)
end
- echo "fisher is already up-to-date" >&2
- case \*
- echo "linking $file" | command sed "s|$HOME|~|" >&2
- command mv -f $file. $file
- source $file
- echo "updated to fisher $fisher_version -- hooray!" >&2
- _fisher_complete
- end
-end
-function _fisher_self_uninstall
- for pkg in (_fisher_ls)
- _fisher_rm $pkg
- end
+ wait $pid_list 2>/dev/null
- for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fisher_path/fishfile
- echo "removing $file"
- command rm -Rf $file 2>/dev/null
- end | command sed "s|$HOME|~|" >&2
+ for plugin in $fetch_plugins
+ if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
+ if set --local index (contains --index -- "$plugin" $install_plugins)
+ set --erase install_plugins[$index]
+ else
+ set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
+ end
+ end
+ end
- for name in (set -n | command awk '/^fisher_/')
- set -e "$name"
- end
+ for plugin in $update_plugins $remove_plugins
+ if set --local index (contains --index -- "$plugin" $_fisher_plugins)
+ set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
- functions -e (functions -a | command awk '/^_fisher/') fisher
- complete -c fisher --erase
-end
+ if contains -- "$plugin" $remove_plugins
+ for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
+ emit {$name}_uninstall
+ end
+ printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
+ set --erase _fisher_plugins[$index]
+ end
-function _fisher_commit -a cmd
- set -e argv[1]
- set -l elapsed (_fisher_now)
- set -l fishfile $fisher_path/fishfile
+ command rm -rf (string replace -- \~ ~ $$plugin_files_var)
- if test ! -e "$fishfile"
- command touch $fishfile
- echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2
- end
+ functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
- set -l old_pkgs (_fisher_ls | _fisher_fmt)
- for pkg in (_fisher_ls)
- _fisher_rm $pkg
- end
- command rm -Rf $fisher_config
- command mkdir -p $fisher_config
-
- set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt))
- set -l actual_pkgs (_fisher_fetch $next_pkgs)
- set -l updated_pkgs
- for pkg in $old_pkgs
- if contains -- $pkg $actual_pkgs
- set updated_pkgs $updated_pkgs $pkg
- end
- end
+ for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
+ complete --erase --command $name
+ end
- if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs"
- echo "fisher: nothing to commit -- try adding some packages" >&2
- return 1
- end
-
- set -l out_pkgs
- if test "$cmd" = "rm"
- set out_pkgs $next_pkgs
- else
- for pkg in $next_pkgs
- if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs
- set out_pkgs $out_pkgs $pkg
+ set --erase $plugin_files_var
+ end
end
- end
- end
- printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile
+ if set --query update_plugins[1] || set --query install_plugins[1]
+ command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
+ end
- _fisher_complete
+ for plugin in $update_plugins $install_plugins
+ set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
+ set --local files $source/{functions,themes,conf.d,completions}/*
- command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) '
- BEGIN {
- res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U)))
- printf((res ? res : "done") " in %.2fs\n", E / 1000)
- }
- function fmt(action, n, s) {
- return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s
- }
- ' >&2
-end
+ if set --local index (contains --index -- $plugin $install_plugins)
+ set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
+ set --local conflict_files
-function _fisher_parse -a mode cmd
- set -e argv[1..2]
- command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" '
- BEGIN {
- for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i]
- }
- !NF { next } { k = getkey($1) }
- MODE == "-R" && !(k in pkgs) && $0 = $1
- MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") }
- MODE == "-W" || CMD == "rm" { delete pkgs[k] }
- END {
- for (k in pkgs) {
- if (CMD != "rm" || MODE == "-W") print pkgs[k]
- else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr"
- }
- }
- function getkey(s, a) {
- return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1]
- }
- '
-end
+ for file in (string replace -- $source/ $fisher_path/ $files)
+ contains -- $file $user_files && set --append conflict_files $file
+ end
-function _fisher_fetch
- set -l pkg_jobs
- set -l out_pkgs
- set -l next_pkgs
- set -l local_pkgs
- set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token
-
- for pkg in $argv
- switch $pkg
- case \~\* /\*
- set -l path (echo "$pkg" | command sed "s|^~|$HOME|")
- if test -e "$path"
- set local_pkgs $local_pkgs $path
- else
- echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2
+ if set --query conflict_files[1] && set --erase install_plugins[$index]
+ echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
+ continue
+ end
end
- continue
- end
- command awk -v PKG="$pkg" -v FS=/ '
- BEGIN {
- if (split(PKG, tmp, /@+|:/) > 2) {
- if (tmp[4]) sub("@"tmp[4], "", PKG)
- print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master")
- } else {
- pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1]
- tag = tmp[2] ? tmp[2] : "master"
- print (\
- pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \
- pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \
- pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \
- ) "\t" pkg
- }
- }
- ' | read -l url pkg branch
-
- if test ! -d "$fisher_config/$pkg"
- fish -c "
- echo fetching $url >&2
- command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg)
- if test ! -z \"$branch\"
- command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null
- or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2
- else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null
- command rm -Rf $fisher_cache/$pkg
- command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg
- command rm -Rf $fisher_config/$pkg
- command cp -Rf {$fisher_cache,$fisher_config}/$pkg
- else if test -d \"$fisher_cache/$pkg\"
- echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2
- command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/..
- else
- command rm -Rf $fisher_config/$pkg
- echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2
+ for file in (string replace -- $source/ "" $files)
+ command cp -Rf $source/$file $fisher_path/$file
end
- " >/dev/null &
- set pkg_jobs $pkg_jobs (_fisher_jobs --last)
- set next_pkgs $next_pkgs "$fisher_config/$pkg"
- end
- end
- if set -q pkg_jobs[1]
- while for job in $pkg_jobs
- contains -- $job (_fisher_jobs); and break
- end
- end
- for pkg in $next_pkgs
- if test -d "$pkg"
- set out_pkgs $out_pkgs $pkg
- _fisher_add $pkg
- end
- end
- end
+ set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
- set -l local_prefix $fisher_config/local/$USER
- if test ! -d "$local_prefix"
- command mkdir -p $local_prefix
- end
- for pkg in $local_pkgs
- set -l target $local_prefix/(command basename $pkg)
- if test ! -L "$target"
- command ln -sf $pkg $target
- set out_pkgs $out_pkgs $pkg
- _fisher_add $pkg --link
- end
- end
+ set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
+
+ contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
+ contains -- $plugin $install_plugins && set --local event install || set --local event update
- if set -q out_pkgs[1]
- _fisher_fetch (
- for pkg in $out_pkgs
- if test -s "$pkg/fishfile"
- _fisher_fmt <$pkg/fishfile | _fisher_parse -R
+ printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
+
+ for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
+ source $file
+ if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
+ emit {$name}_$event
+ end
end
- end)
- printf "%s\n" $out_pkgs | _fisher_fmt
- end
-end
+ end
-function _fisher_add -a pkg opts
- for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish
- set -l target (command basename $src)
- switch $src
- case $pkg/conf.d\*
- set target $fisher_path/conf.d/$target
- case $pkg/completions\*
- set target $fisher_path/completions/$target
- case $pkg/{functions,}\*
- switch $target
- case uninstall.fish
- continue
- case {init,key_bindings}.fish
- set target $fisher_path/conf.d/(command basename $pkg)\_$target
- case \*
- set target $fisher_path/functions/$target
+ command rm -rf $source_plugins
+
+ if set --query _fisher_plugins[1]
+ set --local commit_plugins
+
+ for plugin in $file_plugins
+ contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
end
- end
- echo "linking $target" | command sed "s|$HOME|~|" >&2
- if set -q opts[1]
- command ln -sf $src $target
- else
- command cp -f $src $target
- end
- switch $target
- case \*.fish
- source $target >/dev/null 2>/dev/null
- end
- end
-end
-function _fisher_rm -a pkg
- for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish
- set -l target (command basename $src)
- set -l filename (command basename $target .fish)
- switch $src
- case $pkg/conf.d\*
- test "$filename.fish" = "$target"; and emit "$filename"_uninstall
- set target conf.d/$target
- case $pkg/completions\*
- test "$filename.fish" = "$target"; and complete -ec $filename
- set target completions/$target
- case $pkg/{,functions}\*
- test "$filename.fish" = "$target"; and functions -e $filename
- switch $target
- case uninstall.fish
- source $src
- continue
- case {init,key_bindings}.fish
- set target conf.d/(command basename $pkg)\_$target
- case \*
- set target functions/$target
+ for plugin in $_fisher_plugins
+ contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
end
- end
- command rm -f $fisher_path/$target
- end
- if not functions -q fish_prompt
- source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish"
- end
-end
-function _fisher_jobs
- jobs $argv | command awk '/^[0-9]+\t/ { print $1 }'
-end
+ printf "%s\n" $commit_plugins >$fish_plugins
+ else
+ set --erase _fisher_plugins
+ command rm -f $fish_plugins
+ end
+
+ set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
-function _fisher_now -a elapsed
- switch (command uname)
- case Darwin \*BSD
- command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed
+ test "$total" != "0 0 0" && echo (string join ", " (
+ test $total[1] = 0 || echo "Installed $total[1]") (
+ test $total[2] = 0 || echo "Updated $total[2]") (
+ test $total[3] = 0 || echo "Removed $total[3]")
+ ) plugin/s
case \*
- math (command date "+%s%3N") - "0$elapsed"
+ echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
+ end
+end
+
+if ! set --query _fisher_upgraded_to_4_4
+ set --universal _fisher_upgraded_to_4_4
+ if functions --query _fisher_list
+ set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
+ command rm -rf $XDG_DATA_HOME/fisher
+ functions --erase _fisher_{list,plugin_parse}
+ fisher update >/dev/null 2>/dev/null
+ else
+ for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
+ set $var (string replace -- ~ \~ $$var)
+ end
+ functions --erase _fisher_fish_postexec
end
end
diff --git a/.config/fish/functions/fzf_configure_bindings.fish b/.config/fish/functions/fzf_configure_bindings.fish
new file mode 100644
index 00000000..addb55c1
--- /dev/null
+++ b/.config/fish/functions/fzf_configure_bindings.fish
@@ -0,0 +1,46 @@
+# Always installs bindings for insert and default mode for simplicity and b/c it has almost no side-effect
+# https://gitter.im/fish-shell/fish-shell?at=60a55915ee77a74d685fa6b1
+function fzf_configure_bindings --description "Installs the default key bindings for fzf.fish with user overrides passed as options."
+ # no need to install bindings if not in interactive mode or running tests
+ status is-interactive || test "$CI" = true; or return
+
+ set options_spec h/help 'directory=?' 'git_log=?' 'git_status=?' 'history=?' 'variables=?' 'processes=?'
+ argparse --max-args=0 --ignore-unknown $options_spec -- $argv 2>/dev/null
+ if test $status -ne 0
+ echo "Invalid option or a positional argument was provided." >&2
+ _fzf_configure_bindings_help
+ return 22
+ else if set --query _flag_help
+ _fzf_configure_bindings_help
+ return
+ else
+ # Initialize with default key sequences and then override or disable them based on flags
+ # index 1 = directory, 2 = git_log, 3 = git_status, 4 = history, 5 = variables, 6 = processes
+ set key_sequences \e\cf \e\cl \e\cs \cr \cv \e\cp # \c = control, \e = escape
+ set --query _flag_directory && set key_sequences[1] "$_flag_directory"
+ set --query _flag_git_log && set key_sequences[2] "$_flag_git_log"
+ set --query _flag_git_status && set key_sequences[3] "$_flag_git_status"
+ set --query _flag_history && set key_sequences[4] "$_flag_history"
+ set --query _flag_variables && set key_sequences[5] "$_flag_variables"
+ set --query _flag_processes && set key_sequences[6] "$_flag_processes"
+
+ # If fzf bindings already exists, uninstall it first for a clean slate
+ if functions --query _fzf_uninstall_bindings
+ _fzf_uninstall_bindings
+ end
+
+ for mode in default insert
+ test -n $key_sequences[1] && bind --mode $mode $key_sequences[1] _fzf_search_directory
+ test -n $key_sequences[2] && bind --mode $mode $key_sequences[2] _fzf_search_git_log
+ test -n $key_sequences[3] && bind --mode $mode $key_sequences[3] _fzf_search_git_status
+ test -n $key_sequences[4] && bind --mode $mode $key_sequences[4] _fzf_search_history
+ test -n $key_sequences[5] && bind --mode $mode $key_sequences[5] "$_fzf_search_vars_command"
+ test -n $key_sequences[6] && bind --mode $mode $key_sequences[6] _fzf_search_processes
+ end
+
+ function _fzf_uninstall_bindings --inherit-variable key_sequences
+ bind --erase -- $key_sequences
+ bind --erase --mode insert -- $key_sequences
+ end
+ end
+end
diff --git a/.config/fish/functions/git_pull_all.fish b/.config/fish/functions/git_pull_all.fish
new file mode 100644
index 00000000..037f7234
--- /dev/null
+++ b/.config/fish/functions/git_pull_all.fish
@@ -0,0 +1,7 @@
+function git_pull_all
+ for branch in (git branch | sed -E 's/^\*/ /' | awk '{print $1}');
+ git checkout $branch;
+ git pull -p;
+ printf "\n";
+ end
+end
diff --git a/.config/fish/functions/git_sync_all.fish b/.config/fish/functions/git_sync_all.fish
new file mode 100644
index 00000000..35a56b6a
--- /dev/null
+++ b/.config/fish/functions/git_sync_all.fish
@@ -0,0 +1,6 @@
+function git_sync_all
+ for branch in (git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$');
+ git checkout (echo $branch | awk -F'/' '{print $1="\r"; $2="\r"; print;}' | xargs | sed 's/ /\//g');
+ git pull -p
+ end
+end
diff --git a/.config/fish/functions/mm.fish b/.config/fish/functions/mm.fish
new file mode 100644
index 00000000..4c6c470d
--- /dev/null
+++ b/.config/fish/functions/mm.fish
@@ -0,0 +1,153 @@
+function mm --description "MakeMeFish - List all Make targets in the Makefile of the current directory"
+
+ set current_pos 1
+ while test (count $argv) -ge $current_pos
+ # Check if a help flag was passed to mm
+ set help_flags -- -h --help
+ if contains -- $argv[$current_pos] $help_flags
+ echo ""
+ echo " Usage:"
+ echo " " (set_color green)"mm"(set_color normal) "will look for a Makefile in the order specified by GNU Make and list all targets in it."
+ echo " " "To filter for a specific target, just start typing and targets will be filtered as you type."
+ echo " " (set_color green)"mm <keyword>"(set_color normal) "will start MakeMeFish with an initial, editable query" (set_color green)"<keyword>"(set_color normal)
+ echo " " (set_color green)"mm -i"(set_color normal) "will start MakeMeFish in interactive mode. When a target is run, you will return to the selection menu."
+ echo " " (set_color green)"mm -f <filename>"(set_color normal) "to specify what Makefile to load."
+ echo " " "All flags can be combined in any order."
+ echo ""
+ return 0
+ else if test $argv[$current_pos] = "-f"
+ set current_pos (math "$current_pos+1") # skip the next
+ set filename $argv[$current_pos]
+ else if test $argv[$current_pos] = "-i"
+ set interactive 1
+ else
+ if set -q initial_query
+ set initial_query $initial_query $argv[$current_pos]
+ else
+ set initial_query $argv[$current_pos]
+ end
+ end
+ set current_pos (math "$current_pos+1")
+ end
+
+ function __mm_get_makefile_name -a 'filename'
+ if test -n "$filename"
+ set makefile_filenames $filename
+ else
+ set makefile_filenames 'GNUmakefile' 'makefile' 'Makefile'
+ end
+ for filename in $makefile_filenames
+ if test -f $filename
+ echo $filename
+ break
+ end
+ end
+ end
+
+ # Based on:
+ # https://github.com/fish-shell/fish-shell/blob/8e418f5205106b11f83fa1956076a9b20c56f0f9/share/completions/make.fish
+ # and
+ # https://stackoverflow.com/a/26339924
+ function __mm_parse_makefile -a 'filename'
+ # Ensure correct locale set
+ set -lx LC_ALL C
+
+ set makeflags -f $filename
+
+ # first awk merges any line that ends with a backslash with the next line
+ if make --version 2>/dev/null | string match -q 'GNU*'
+ make $makeflags -pRrq : 2>/dev/null |
+ awk '{if (sub(/\\\$/,"")) printf "%s", $0; else print $0}' |
+ awk -F: '/^# Files/,/^# Finished Make data base/ {
+ if ($1 == "# Not a target") skip = 1;
+ if ($1 !~ "^[#.\t]") {
+ if (!skip) print $1; skip=0
+ }
+ }' 2>/dev/null
+ else
+ # BSD make
+ make $makeflags -d g1 -rn >/dev/null 2>| awk -F, '/^#\*\*\* Input graph:/,/^$/ {if ($1 !~ "^#... ") {gsub(/# /,"",$1); print $1}}' 2>/dev/null
+ end
+ end
+
+ function __mm_get_targets -a 'filename'
+ set static_targets
+ set file_targets
+ set generated_targets
+
+ set parsed_makefile (__mm_parse_makefile $filename | sort -f)
+ for row in $parsed_makefile # Loop over all rows in the Makefile
+ set row (string trim $row)
+ if test -n "$row" # No blanks plz
+ if test (string match -r '.\.|\/' $row) # this is a file or path
+ set file_targets $file_targets $row
+ else # grep the target and see if it's generated by a function or a true target
+ set found_in_file (grep "$row:" $filename)
+ if test -n "$found_in_file"
+ set static_targets $static_targets $row # true target
+ else
+ set generated_targets $generated_targets $row # generated by function
+ end
+ end
+ end
+ end
+
+ string split " " $static_targets $file_targets $generated_targets
+ end
+
+ function __mm_fzf_command -a 'filename' -a 'interactive' -a 'make_command' -a 'query'
+ if [ $interactive -eq 1 ]
+ set fzf_interactive "--bind \"enter:execute:$make_command {}; echo; echo 'Done'; sleep 1\""
+ end
+
+ if test -n "$query"
+ set fzf_query "--query=$query"
+ end
+ set fzf_opts "--read0
+ $fzf_query
+ $fzf_interactive
+ --height 60%
+ --layout=reverse
+ --border
+ --preview-window='right:60%'
+ --preview='grep
+ --color=always -A 10 -B 1 \^{}: $filename; or echo -GENERATED TARGET-'"
+
+ set -q FZF_TMUX; or set FZF_TMUX 0
+ set -q FZF_TMUX_HEIGHT; or set FZF_TMUX_HEIGHT 60%
+ if [ $FZF_TMUX -eq 1 ]
+ echo "fzf-tmux -d$FZF_TMUX_HEIGHT $fzf_opts"
+ else
+ echo "fzf $fzf_opts"
+ end
+ end
+
+ if __mm_dependencies
+ set custom_filename $filename
+ set filename (__mm_get_makefile_name $filename)
+ if test -z "$filename"
+ echo 'No makefile found in the current working directory'
+ else
+ set targets (__mm_get_targets $filename)
+ if test -n "$targets"
+ if test -n "$custom_filename"
+ set make_command "make -f $filename"
+ else
+ set make_command "make"
+ end
+ # Interactive?
+ if test -n "$interactive"; and test $interactive -eq 1
+ string join0 -- $targets | eval (__mm_fzf_command $filename 1 $make_command $initial_query)
+ else
+ string join0 -- $targets | eval (__mm_fzf_command $filename 0 $make_command $initial_query) | read -lz result # print targets as a list, pipe them to fzf, put the chosen command in $result
+ set result (string trim -- $result) # Trim newlines and whitespace from the command
+ and commandline -- "$make_command $result" # Prepend the make command
+ commandline -f repaint # Repaint command line
+ end
+ else
+ echo "No targets found in $filename"
+ end
+ end
+ end
+
+end \ No newline at end of file
diff --git a/.config/fish/functions/prometeo-jenkins.fish b/.config/fish/functions/prometeo-jenkins.fish
new file mode 100644
index 00000000..bcd4311b
--- /dev/null
+++ b/.config/fish/functions/prometeo-jenkins.fish
@@ -0,0 +1,3 @@
+function prometeo-jenkins
+ ssh rgonzalez@172.31.1.184
+end
diff --git a/.config/fish/functions/prometeo.fish b/.config/fish/functions/prometeo.fish
index d59f5206..0dec9b9d 100644
--- a/.config/fish/functions/prometeo.fish
+++ b/.config/fish/functions/prometeo.fish
@@ -1,4 +1,4 @@
function prometeo
- cd ~/code/prometeo/prometeo
+ cd ~/code/prometeo/banking_api
source .venv/bin/activate.fish
end
diff --git a/.config/fish/functions/spark.fish b/.config/fish/functions/spark.fish
new file mode 100644
index 00000000..0bbe6ff0
--- /dev/null
+++ b/.config/fish/functions/spark.fish
@@ -0,0 +1,33 @@
+function spark --description Sparklines
+ argparse --ignore-unknown --name=spark v/version h/help m/min= M/max= -- $argv || return
+
+ if set --query _flag_version[1]
+ echo "spark, version 1.1.0"
+ else if set --query _flag_help[1]
+ echo "Usage: spark <numbers ...>"
+ echo " stdin | spark"
+ echo "Options:"
+ echo " --min=<number> Minimum range"
+ echo " --max=<number> Maximum range"
+ echo " -v or --version Print version"
+ echo " -h or --help Print this help message"
+ echo "Examples:"
+ echo " spark 1 1 2 5 14 42"
+ echo " seq 64 | sort --random-sort | spark"
+ else if set --query argv[1]
+ printf "%s\n" $argv | spark --min="$_flag_min" --max="$_flag_max"
+ else
+ command awk -v min="$_flag_min" -v max="$_flag_max" '
+ {
+ m = min == "" ? m == "" ? $0 : m > $0 ? $0 : m : min
+ M = max == "" ? M == "" ? $0 : M < $0 ? $0 : M : max
+ nums[NR] = $0
+ }
+ END {
+ n = split("▁ ▂ ▃ ▄ ▅ ▆ ▇ █", sparks, " ") - 1
+ while (++i <= NR)
+ printf("%s", sparks[(M == m) ? 3 : sprintf("%.f", (1 + (nums[i] - m) * n / (M - m)))])
+ }
+ ' && echo
+ end
+end
diff --git a/.config/fish/functions/tide.fish b/.config/fish/functions/tide.fish
new file mode 100644
index 00000000..87fb8dc4
--- /dev/null
+++ b/.config/fish/functions/tide.fish
@@ -0,0 +1,27 @@
+function tide --description 'Manage your Tide prompt'
+ argparse --stop-nonopt v/version h/help -- $argv
+
+ if set -q _flag_version
+ echo 'tide, version 5.4.0'
+ else if set -q _flag_help
+ _tide_help
+ else if functions --query _tide_sub_$argv[1]
+ _tide_sub_$argv[1] $argv[2..]
+ else
+ _tide_help
+ return 1
+ end
+end
+
+function _tide_help
+ printf %s\n \
+ 'Usage: tide [options] subcommand [options]' \
+ '' \
+ 'Options:' \
+ ' -v or --version print tide version number' \
+ ' -h or --help print this help message' \
+ '' \
+ 'Subcommands:' \
+ ' configure run interactive configuration wizard' \
+ ' bug-report print info for use in bug reports'
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/finish.fish b/.config/fish/functions/tide/configure/choices/all/finish.fish
new file mode 100644
index 00000000..f60a1285
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/finish.fish
@@ -0,0 +1,33 @@
+function finish
+ set_color red
+ _tide_title 'Overwrite tide config?'
+ set_color normal
+
+ _tide_option y Yes
+ echo
+
+ _tide_menu
+ switch $_tide_selected_option
+ case y
+ _tide_finish
+ command -q clear && clear
+ end
+end
+
+function _tide_finish
+ set -e _tide_selected_option # Skip through all the _next_choices
+
+ # 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
+ source (functions --details fish_prompt)
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/icons.fish b/.config/fish/functions/tide/configure/choices/all/icons.fish
new file mode 100644
index 00000000..e53bffa5
--- /dev/null
+++ b/.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
+ switch $_tide_selected_option
+ case 1
+ _disable_icons
+ end
+ _next_choice all/finish
+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/.config/fish/functions/tide/configure/choices/all/prompt_colors.fish b/.config/fish/functions/tide/configure/choices/all/prompt_colors.fish
new file mode 100644
index 00000000..90b1a9d9
--- /dev/null
+++ b/.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
+ switch $_tide_selected_option
+ case 1
+ _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 2
+ _next_choice all/show_time
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/prompt_connection.fish b/.config/fish/functions/tide/configure/choices/all/prompt_connection.fish
new file mode 100644
index 00000000..ae31ef36
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/prompt_connection.fish
@@ -0,0 +1,28 @@
+function prompt_connection
+ _tide_title 'Prompt Connection'
+
+ _tide_option 1 Disconnected
+ _tide_display_prompt fake_tide_prompt_icon_connection ' '
+
+ _tide_option 2 Dotted
+ _tide_display_prompt fake_tide_prompt_icon_connection '·'
+
+ _tide_option 3 Solid
+ _tide_display_prompt fake_tide_prompt_icon_connection '─'
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_prompt_icon_connection ' '
+ case 2
+ set -g fake_tide_prompt_icon_connection '·'
+ case 3
+ 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_prompt_frame
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish b/.config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish
new file mode 100644
index 00000000..b8803b40
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/prompt_connection_andor_frame_color.fish
@@ -0,0 +1,36 @@
+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
+ _tide_display_prompt fake_tide_prompt_color_frame_and_connection 808080
+
+ _tide_option 2 Light
+ _tide_display_prompt fake_tide_prompt_color_frame_and_connection 6C6C6C
+
+ _tide_option 3 Dark
+ _tide_display_prompt fake_tide_prompt_color_frame_and_connection 585858
+
+ _tide_option 4 Darkest
+ _tide_display_prompt fake_tide_prompt_color_frame_and_connection 444444
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_prompt_color_frame_and_connection 808080
+ case 2
+ set -g fake_tide_prompt_color_frame_and_connection 6C6C6C
+ case 3
+ set -g fake_tide_prompt_color_frame_and_connection 585858
+ case 4
+ set -g fake_tide_prompt_color_frame_and_connection 444444
+ end
+ _next_choice all/prompt_spacing
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/prompt_spacing.fish b/.config/fish/functions/tide/configure/choices/all/prompt_spacing.fish
new file mode 100644
index 00000000..a5bb98bc
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/prompt_spacing.fish
@@ -0,0 +1,21 @@
+function prompt_spacing
+ _tide_title 'Prompt Spacing'
+
+ _tide_option 1 Compact
+ _tide_display_prompt
+ printf \e\[1A # Move cursor up 1 row
+ _tide_display_prompt
+
+ _tide_option 2 Sparse
+ _tide_display_prompt
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_prompt_add_newline_before false
+ case 2
+ set -g fake_tide_prompt_add_newline_before true
+ end
+ _next_choice all/icons
+end
diff --git a/.config/fish/functions/tide/configure/choices/all/show_time.fish b/.config/fish/functions/tide/configure/choices/all/show_time.fish
new file mode 100644
index 00000000..8cf18436
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/show_time.fish
@@ -0,0 +1,31 @@
+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'
+ _tide_display_prompt fake_tide_time_format %T
+
+ _tide_option 3 '12-hour format'
+ _tide_display_prompt fake_tide_time_format '%r'
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_time_format ''
+ set -e fake_tide_right_prompt_items[-1]
+ case 2
+ set -g fake_tide_time_format %T
+ case 3
+ 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/.config/fish/functions/tide/configure/choices/all/style.fish b/.config/fish/functions/tide/configure/choices/all/style.fish
new file mode 100644
index 00000000..ae52bc52
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/all/style.fish
@@ -0,0 +1,57 @@
+function style
+ _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_style_menu
+ switch $_tide_selected_option
+ case 1
+ _load_config lean
+ set -g _tide_configure_style lean
+ case 2
+ _load_config classic
+ set -g _tide_configure_style classic
+ case 3
+ _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)/../../configs/$name.fish | source
+end
+
+function _tide_style_menu # Exactly like _tide_menu except that it doesn't have (r) option
+ set -l list_with_slashes (string join '/' $_tide_option_list)
+
+ echo '(q) Quit and do nothing'\n
+
+ while true
+ set_color -o
+ read --nchars 1 --prompt-str "Choice [$list_with_slashes/q] " input
+ set_color normal
+
+ switch $input
+ case q
+ set -e _tide_selected_option # Skip through all the _next_choices
+ set -e _tide_option_list
+ command -q clear && clear
+ break
+ case $_tide_option_list
+ set -e _tide_option_list
+ set -g _tide_selected_option $input
+ break
+ end
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/classic/classic_prompt_color.fish b/.config/fish/functions/tide/configure/choices/classic/classic_prompt_color.fish
new file mode 100644
index 00000000..2189f363
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/classic/classic_prompt_color.fish
@@ -0,0 +1,38 @@
+function classic_prompt_color
+ _tide_title 'Prompt Color'
+
+ _tide_option 1 Lightest
+ _set_all_items_bg_color 585858
+ _tide_display_prompt
+
+ _tide_option 2 Light
+ _set_all_items_bg_color 444444
+ _tide_display_prompt
+
+ _tide_option 3 Dark
+ _set_all_items_bg_color 303030
+ _tide_display_prompt
+
+ _tide_option 4 Darkest
+ _set_all_items_bg_color 1C1C1C
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ _set_all_items_bg_color 585858
+ case 2
+ _set_all_items_bg_color 444444
+ case 3
+ _set_all_items_bg_color 303030
+ case 4
+ _set_all_items_bg_color 1C1C1C
+ end
+ _next_choice all/show_time
+end
+
+function _set_all_items_bg_color -a color
+ for var in (set --names | string match -r "fake_.*_bg_color.*")
+ set $var $color
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/classic/classic_prompt_separators.fish b/.config/fish/functions/tide/configure/choices/classic/classic_prompt_separators.fish
new file mode 100644
index 00000000..17b88e46
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/classic/classic_prompt_separators.fish
@@ -0,0 +1,40 @@
+function classic_prompt_separators
+ _tide_title 'Prompt Separators'
+
+ _tide_option 1 Angled
+ set -g fake_tide_left_prompt_separator_same_color 
+ set -g fake_tide_right_prompt_separator_same_color 
+ _tide_display_prompt
+
+ _tide_option 2 Vertical
+ set -g fake_tide_left_prompt_separator_same_color '│'
+ set -g fake_tide_right_prompt_separator_same_color '│'
+ _tide_display_prompt
+
+ _tide_option 3 Slanted
+ set -g fake_tide_left_prompt_separator_same_color '╱'
+ set -g fake_tide_right_prompt_separator_same_color '╱'
+ _tide_display_prompt
+
+ _tide_option 4 Round
+ set -g fake_tide_left_prompt_separator_same_color ''
+ set -g fake_tide_right_prompt_separator_same_color ''
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_left_prompt_separator_same_color 
+ set -g fake_tide_right_prompt_separator_same_color 
+ case 2
+ set -g fake_tide_left_prompt_separator_same_color '│'
+ set -g fake_tide_right_prompt_separator_same_color '│'
+ case 3
+ set -g fake_tide_left_prompt_separator_same_color '╱'
+ set -g fake_tide_right_prompt_separator_same_color '╱'
+ case 4
+ set -g fake_tide_left_prompt_separator_same_color ''
+ set -g fake_tide_right_prompt_separator_same_color ''
+ end
+ _next_choice powerline/powerline_prompt_heads
+end
diff --git a/.config/fish/functions/tide/configure/choices/lean/lean_prompt_height.fish b/.config/fish/functions/tide/configure/choices/lean/lean_prompt_height.fish
new file mode 100644
index 00000000..4db04a80
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/lean/lean_prompt_height.fish
@@ -0,0 +1,26 @@
+function lean_prompt_height
+ _tide_title 'Prompt Height'
+
+ _tide_option 1 'One line'
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set -g fake_tide_left_prompt_suffix ''
+ _tide_display_prompt
+
+ _tide_option 2 'Two lines'
+ set -g fake_tide_left_prompt_items $fake_tide_left_prompt_items[1..-2] newline $fake_tide_left_prompt_items[-1]
+ set -g fake_tide_left_prompt_suffix ' '
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set fake_tide_left_prompt_suffix ''
+ _next_choice all/prompt_connection_andor_frame_color
+ case 2
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set -g fake_tide_left_prompt_items $fake_tide_left_prompt_items[1..-2] newline $fake_tide_left_prompt_items[-1]
+ set -g fake_tide_left_prompt_suffix ' '
+ _next_choice all/prompt_connection
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_frame.fish b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_frame.fish
new file mode 100644
index 00000000..19b35884
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_frame.fish
@@ -0,0 +1,46 @@
+function powerline_prompt_frame
+ _tide_title 'Prompt Frame'
+
+ _tide_option 1 'No frame'
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled false
+ set -a fake_tide_left_prompt_items character
+ _tide_display_prompt
+ set -e fake_tide_left_prompt_items[-1]
+
+ _tide_option 2 Left
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled false
+ _tide_display_prompt
+
+ _tide_option 3 Right
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled true
+ set -a fake_tide_left_prompt_items character
+ _tide_display_prompt
+ set -e fake_tide_left_prompt_items[-1]
+
+ _tide_option 4 Full
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled true
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled false
+ set -a fake_tide_left_prompt_items character
+ case 2
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled false
+ case 3
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled true
+ set -a fake_tide_left_prompt_items character
+ case 4
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled true
+ end
+ _next_choice all/prompt_connection_andor_frame_color
+end
diff --git a/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_heads.fish b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_heads.fish
new file mode 100644
index 00000000..ac187c9e
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_heads.fish
@@ -0,0 +1,40 @@
+function powerline_prompt_heads
+ _tide_title 'Prompt Heads'
+
+ _tide_option 1 Sharp
+ set -g fake_tide_left_prompt_suffix 
+ set -g fake_tide_right_prompt_prefix 
+ _tide_display_prompt
+
+ _tide_option 2 Blurred
+ set -g fake_tide_left_prompt_suffix '▓▒░'
+ set -g fake_tide_right_prompt_prefix '░▒▓'
+ _tide_display_prompt
+
+ _tide_option 3 Slanted
+ set -g fake_tide_left_prompt_suffix ''
+ set -g fake_tide_right_prompt_prefix ''
+ _tide_display_prompt
+
+ _tide_option 4 Round
+ set -g fake_tide_left_prompt_suffix ''
+ set -g fake_tide_right_prompt_prefix ''
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_left_prompt_suffix 
+ set -g fake_tide_right_prompt_prefix 
+ case 2
+ set -g fake_tide_left_prompt_suffix '▓▒░'
+ set -g fake_tide_right_prompt_prefix '░▒▓'
+ case 3
+ set -g fake_tide_left_prompt_suffix ''
+ set -g fake_tide_right_prompt_prefix ''
+ case 4
+ set -g fake_tide_left_prompt_suffix ''
+ set -g fake_tide_right_prompt_prefix ''
+ end
+ _next_choice powerline/powerline_prompt_tails
+end
diff --git a/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_height.fish b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_height.fish
new file mode 100644
index 00000000..83fef054
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_height.fish
@@ -0,0 +1,30 @@
+function powerline_prompt_height
+ _tide_title 'Prompt Height'
+
+ _tide_option 1 'One line'
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled false
+ _tide_display_prompt
+
+ _tide_option 2 'Two lines'
+ set -g fake_tide_left_prompt_items $fake_tide_left_prompt_items newline
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled true
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set fake_tide_left_prompt_frame_enabled false
+ set fake_tide_right_prompt_frame_enabled false
+ _next_choice all/prompt_connection_andor_frame_color
+ case 2
+ _tide_find_and_remove newline fake_tide_left_prompt_items
+ set -g fake_tide_left_prompt_items $fake_tide_left_prompt_items newline
+ set fake_tide_left_prompt_frame_enabled true
+ set fake_tide_right_prompt_frame_enabled true
+ _next_choice all/prompt_connection
+ end
+end
diff --git a/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_tails.fish b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_tails.fish
new file mode 100644
index 00000000..02f4609d
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/powerline/powerline_prompt_tails.fish
@@ -0,0 +1,48 @@
+function powerline_prompt_tails
+ _tide_title 'Prompt Tails'
+
+ _tide_option 1 Flat
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ _tide_display_prompt
+
+ _tide_option 2 Blurred
+ set -g fake_tide_left_prompt_prefix '░▒▓'
+ set -g fake_tide_right_prompt_suffix '▓▒░'
+ _tide_display_prompt
+
+ _tide_option 3 Sharp
+ set -g fake_tide_left_prompt_prefix 
+ set -g fake_tide_right_prompt_suffix 
+ _tide_display_prompt
+
+ _tide_option 4 Slanted
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ _tide_display_prompt
+
+ _tide_option 5 Round
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ case 2
+ set -g fake_tide_left_prompt_prefix '░▒▓'
+ set -g fake_tide_right_prompt_suffix '▓▒░'
+ case 3
+ set -g fake_tide_left_prompt_prefix 
+ set -g fake_tide_right_prompt_suffix 
+ case 4
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ case 5
+ set -g fake_tide_left_prompt_prefix ''
+ set -g fake_tide_right_prompt_suffix ''
+ end
+ _next_choice powerline/powerline_prompt_height
+end
diff --git a/.config/fish/functions/tide/configure/choices/rainbow/rainbow_prompt_separators.fish b/.config/fish/functions/tide/configure/choices/rainbow/rainbow_prompt_separators.fish
new file mode 100644
index 00000000..29f6ccc8
--- /dev/null
+++ b/.config/fish/functions/tide/configure/choices/rainbow/rainbow_prompt_separators.fish
@@ -0,0 +1,40 @@
+function rainbow_prompt_separators
+ _tide_title 'Prompt Separators'
+
+ _tide_option 1 Angled
+ set -g fake_tide_left_prompt_separator_diff_color 
+ set -g fake_tide_right_prompt_separator_diff_color 
+ _tide_display_prompt
+
+ _tide_option 2 Vertical
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ _tide_display_prompt
+
+ _tide_option 3 Slanted
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ _tide_display_prompt
+
+ _tide_option 4 Round
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ _tide_display_prompt
+
+ _tide_menu
+ switch $_tide_selected_option
+ case 1
+ set -g fake_tide_left_prompt_separator_diff_color 
+ set -g fake_tide_right_prompt_separator_diff_color 
+ case 2
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ case 3
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ case 4
+ set -g fake_tide_left_prompt_separator_diff_color ''
+ set -g fake_tide_right_prompt_separator_diff_color ''
+ end
+ _next_choice powerline/powerline_prompt_heads
+end
diff --git a/.config/fish/functions/tide/configure/configs/classic.fish b/.config/fish/functions/tide/configure/configs/classic.fish
new file mode 100644
index 00000000..be106d85
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/classic.fish
@@ -0,0 +1,129 @@
+tide_aws_bg_color 444444
+tide_aws_color FF9900
+tide_aws_icon 
+tide_character_color $_tide_color_green
+tide_character_color_failure FF0000
+tide_character_icon ❯
+tide_character_vi_icon_default ❮
+tide_character_vi_icon_replace ▶
+tide_character_vi_icon_visual V
+tide_chruby_bg_color 444444
+tide_chruby_color B31209
+tide_chruby_icon 
+tide_cmd_duration_bg_color 444444
+tide_cmd_duration_color 87875F
+tide_cmd_duration_decimals 0
+tide_cmd_duration_icon
+tide_cmd_duration_threshold 3000
+tide_context_always_display false
+tide_context_bg_color 444444
+tide_context_color_default D7AF87
+tide_context_color_root $_tide_color_gold
+tide_context_color_ssh D7AF87
+tide_docker_bg_color 444444
+tide_docker_color 2496ED
+tide_docker_default_contexts default colima
+tide_docker_icon 
+tide_git_bg_color 444444
+tide_git_bg_color_unstable 444444
+tide_git_bg_color_urgent 444444
+tide_git_color_branch $_tide_color_green
+tide_git_color_conflicted FF0000
+tide_git_color_dirty $_tide_color_gold
+tide_git_color_operation FF0000
+tide_git_color_staged $_tide_color_gold
+tide_git_color_stash $_tide_color_green
+tide_git_color_untracked $_tide_color_light_blue
+tide_git_color_upstream $_tide_color_green
+tide_git_icon
+tide_git_truncation_length 24
+tide_go_bg_color 444444
+tide_go_color 00ACD7
+tide_go_icon 
+tide_java_bg_color 444444
+tide_java_color ED8B00
+tide_java_icon 
+tide_jobs_bg_color 444444
+tide_jobs_color $_tide_color_dark_green
+tide_jobs_icon 
+tide_kubectl_bg_color 444444
+tide_kubectl_color 326CE5
+tide_kubectl_icon ⎈
+tide_left_prompt_frame_enabled true
+tide_left_prompt_items pwd git newline
+tide_left_prompt_prefix ''
+tide_left_prompt_separator_diff_color 
+tide_left_prompt_separator_same_color 
+tide_left_prompt_suffix 
+tide_nix_shell_bg_color 444444
+tide_nix_shell_color 7EBAE4
+tide_nix_shell_icon 
+tide_node_bg_color 444444
+tide_node_color 44883E
+tide_node_icon ⬢
+tide_os_bg_color 444444
+tide_os_color EEEEEE
+tide_os_icon $os_branding_icon
+tide_php_bg_color 444444
+tide_php_color 617CBE
+tide_php_icon 
+tide_private_mode_bg_color 444444
+tide_private_mode_color FFFFFF
+tide_private_mode_icon 﫸
+tide_prompt_add_newline_before true
+tide_prompt_color_frame_and_connection 6C6C6C
+tide_prompt_color_separator_same_color 949494
+tide_prompt_icon_connection ' '
+tide_prompt_min_cols 34
+tide_prompt_pad_items true
+tide_pwd_bg_color 444444
+tide_pwd_color_anchors $_tide_color_light_blue
+tide_pwd_color_dirs $_tide_color_dark_blue
+tide_pwd_color_truncated_dirs 8787AF
+tide_pwd_icon
+tide_pwd_icon_home
+tide_pwd_icon_unwritable 
+tide_pwd_markers .bzr .citc .git .hg .node-version .python-version .ruby-version .shorten_folder_marker .svn .terraform Cargo.toml composer.json CVS go.mod package.json
+tide_right_prompt_frame_enabled true
+tide_right_prompt_items status cmd_duration context jobs node virtual_env rustc java php chruby go kubectl toolbox terraform aws nix_shell
+tide_right_prompt_prefix 
+tide_right_prompt_separator_diff_color 
+tide_right_prompt_separator_same_color 
+tide_right_prompt_suffix ''
+tide_rustc_bg_color 444444
+tide_rustc_color F74C00
+tide_rustc_icon 
+tide_shlvl_bg_color 444444
+tide_shlvl_color d78700
+tide_shlvl_icon 
+tide_shlvl_threshold 1
+tide_status_bg_color 444444
+tide_status_bg_color_failure 444444
+tide_status_color $_tide_color_dark_green
+tide_status_color_failure D70000
+tide_status_icon ✔
+tide_status_icon_failure ✘
+tide_terraform_bg_color 444444
+tide_terraform_color 844FBA
+tide_terraform_icon
+tide_time_bg_color 444444
+tide_time_color 5F8787
+tide_time_format %T
+tide_toolbox_bg_color 444444
+tide_toolbox_color 613583
+tide_toolbox_icon ⬢
+tide_vi_mode_bg_color_default 444444
+tide_vi_mode_bg_color_insert 444444
+tide_vi_mode_bg_color_replace 444444
+tide_vi_mode_bg_color_visual 444444
+tide_vi_mode_color_default 949494
+tide_vi_mode_color_insert 87AFAF
+tide_vi_mode_color_replace 87AF87
+tide_vi_mode_color_visual FF8700
+tide_vi_mode_icon_default D
+tide_vi_mode_icon_insert I
+tide_vi_mode_icon_replace R
+tide_vi_mode_icon_visual V
+tide_virtual_env_bg_color 444444
+tide_virtual_env_color 00AFAF
+tide_virtual_env_icon 
diff --git a/.config/fish/functions/tide/configure/configs/classic_16color.fish b/.config/fish/functions/tide/configure/configs/classic_16color.fish
new file mode 100644
index 00000000..3a44cefe
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/classic_16color.fish
@@ -0,0 +1,73 @@
+tide_aws_bg_color black
+tide_aws_color yellow
+tide_character_color brgreen
+tide_character_color_failure brred
+tide_chruby_bg_color black
+tide_chruby_color red
+tide_cmd_duration_bg_color black
+tide_cmd_duration_color brblack
+tide_context_bg_color black
+tide_context_color_default yellow
+tide_context_color_root bryellow
+tide_context_color_ssh yellow
+tide_docker_bg_color black
+tide_docker_color blue
+tide_git_bg_color black
+tide_git_bg_color_unstable black
+tide_git_bg_color_urgent black
+tide_git_color_branch brgreen
+tide_git_color_conflicted brred
+tide_git_color_dirty bryellow
+tide_git_color_operation brred
+tide_git_color_staged bryellow
+tide_git_color_stash brgreen
+tide_git_color_untracked brblue
+tide_git_color_upstream brgreen
+tide_go_bg_color black
+tide_go_color brcyan
+tide_java_bg_color black
+tide_java_color yellow
+tide_jobs_bg_color black
+tide_jobs_color green
+tide_kubectl_bg_color black
+tide_kubectl_color blue
+tide_nix_shell_bg_color black
+tide_nix_shell_color brblue
+tide_node_bg_color black
+tide_node_color green
+tide_os_bg_color black
+tide_os_color brwhite
+tide_php_bg_color black
+tide_php_color blue
+tide_private_mode_bg_color black
+tide_private_mode_color brwhite
+tide_prompt_color_frame_and_connection brblack
+tide_prompt_color_separator_same_color brblack
+tide_pwd_bg_color black
+tide_pwd_color_anchors brcyan
+tide_pwd_color_dirs cyan
+tide_pwd_color_truncated_dirs magenta
+tide_rustc_bg_color black
+tide_rustc_color red
+tide_shlvl_bg_color black
+tide_shlvl_color yellow
+tide_status_bg_color black
+tide_status_bg_color_failure black
+tide_status_color green
+tide_status_color_failure red
+tide_terraform_bg_color black
+tide_terraform_color magenta
+tide_time_bg_color black
+tide_time_color brblack
+tide_toolbox_bg_color black
+tide_toolbox_color magenta
+tide_vi_mode_bg_color_default black
+tide_vi_mode_bg_color_insert black
+tide_vi_mode_bg_color_replace black
+tide_vi_mode_bg_color_visual black
+tide_vi_mode_color_default white
+tide_vi_mode_color_insert cyan
+tide_vi_mode_color_replace green
+tide_vi_mode_color_visual yellow
+tide_virtual_env_bg_color black
+tide_virtual_env_color cyan
diff --git a/.config/fish/functions/tide/configure/configs/lean.fish b/.config/fish/functions/tide/configure/configs/lean.fish
new file mode 100644
index 00000000..7381198c
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/lean.fish
@@ -0,0 +1,129 @@
+tide_aws_bg_color normal
+tide_aws_color FF9900
+tide_aws_icon 
+tide_character_color $_tide_color_green
+tide_character_color_failure FF0000
+tide_character_icon ❯
+tide_character_vi_icon_default ❮
+tide_character_vi_icon_replace ▶
+tide_character_vi_icon_visual V
+tide_chruby_bg_color normal
+tide_chruby_color B31209
+tide_chruby_icon 
+tide_cmd_duration_bg_color normal
+tide_cmd_duration_color 87875F
+tide_cmd_duration_decimals 0
+tide_cmd_duration_icon
+tide_cmd_duration_threshold 3000
+tide_context_always_display false
+tide_context_bg_color normal
+tide_context_color_default D7AF87
+tide_context_color_root $_tide_color_gold
+tide_context_color_ssh D7AF87
+tide_docker_bg_color normal
+tide_docker_color 2496ED
+tide_docker_default_contexts default colima
+tide_docker_icon 
+tide_git_bg_color normal
+tide_git_bg_color_unstable normal
+tide_git_bg_color_urgent normal
+tide_git_color_branch $_tide_color_green
+tide_git_color_conflicted FF0000
+tide_git_color_dirty $_tide_color_gold
+tide_git_color_operation FF0000
+tide_git_color_staged $_tide_color_gold
+tide_git_color_stash $_tide_color_green
+tide_git_color_untracked $_tide_color_light_blue
+tide_git_color_upstream $_tide_color_green
+tide_git_icon
+tide_git_truncation_length 24
+tide_go_bg_color normal
+tide_go_color 00ACD7
+tide_go_icon 
+tide_java_bg_color normal
+tide_java_color ED8B00
+tide_java_icon 
+tide_jobs_bg_color normal
+tide_jobs_color $_tide_color_dark_green
+tide_jobs_icon 
+tide_kubectl_bg_color normal
+tide_kubectl_color 326CE5
+tide_kubectl_icon ⎈
+tide_left_prompt_frame_enabled false
+tide_left_prompt_items pwd git newline character
+tide_left_prompt_prefix ''
+tide_left_prompt_separator_diff_color ' '
+tide_left_prompt_separator_same_color ' '
+tide_left_prompt_suffix ' '
+tide_nix_shell_bg_color normal
+tide_nix_shell_color 7EBAE4
+tide_nix_shell_icon 
+tide_node_bg_color normal
+tide_node_color 44883E
+tide_node_icon ⬢
+tide_os_bg_color normal
+tide_os_color normal
+tide_os_icon $os_branding_icon
+tide_php_bg_color normal
+tide_php_color 617CBE
+tide_php_icon 
+tide_private_mode_bg_color normal
+tide_private_mode_color FFFFFF
+tide_private_mode_icon 﫸
+tide_prompt_add_newline_before true
+tide_prompt_color_frame_and_connection 6C6C6C
+tide_prompt_color_separator_same_color 949494
+tide_prompt_icon_connection ' '
+tide_prompt_min_cols 34
+tide_prompt_pad_items false
+tide_pwd_bg_color normal
+tide_pwd_color_anchors $_tide_color_light_blue
+tide_pwd_color_dirs $_tide_color_dark_blue
+tide_pwd_color_truncated_dirs 8787AF
+tide_pwd_icon
+tide_pwd_icon_home
+tide_pwd_icon_unwritable 
+tide_pwd_markers .bzr .citc .git .hg .node-version .python-version .ruby-version .shorten_folder_marker .svn .terraform Cargo.toml composer.json CVS go.mod package.json
+tide_right_prompt_frame_enabled false
+tide_right_prompt_items status cmd_duration context jobs node virtual_env rustc java php chruby go kubectl toolbox terraform aws nix_shell
+tide_right_prompt_prefix ' '
+tide_right_prompt_separator_diff_color ' '
+tide_right_prompt_separator_same_color ' '
+tide_right_prompt_suffix ''
+tide_rustc_bg_color normal
+tide_rustc_color F74C00
+tide_rustc_icon 
+tide_shlvl_bg_color normal
+tide_shlvl_color d78700
+tide_shlvl_icon 
+tide_shlvl_threshold 1
+tide_status_bg_color normal
+tide_status_bg_color_failure normal
+tide_status_color $_tide_color_dark_green
+tide_status_color_failure D70000
+tide_status_icon ✔
+tide_status_icon_failure ✘
+tide_terraform_bg_color normal
+tide_terraform_color 844FBA
+tide_terraform_icon
+tide_time_bg_color normal
+tide_time_color 5F8787
+tide_time_format %T
+tide_toolbox_bg_color normal
+tide_toolbox_color 613583
+tide_toolbox_icon ⬢
+tide_vi_mode_bg_color_default normal
+tide_vi_mode_bg_color_insert normal
+tide_vi_mode_bg_color_replace normal
+tide_vi_mode_bg_color_visual normal
+tide_vi_mode_color_default 949494
+tide_vi_mode_color_insert 87AFAF
+tide_vi_mode_color_replace 87AF87
+tide_vi_mode_color_visual FF8700
+tide_vi_mode_icon_default D
+tide_vi_mode_icon_insert I
+tide_vi_mode_icon_replace R
+tide_vi_mode_icon_visual V
+tide_virtual_env_bg_color normal
+tide_virtual_env_color 00AFAF
+tide_virtual_env_icon 
diff --git a/.config/fish/functions/tide/configure/configs/lean_16color.fish b/.config/fish/functions/tide/configure/configs/lean_16color.fish
new file mode 100644
index 00000000..a836852b
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/lean_16color.fish
@@ -0,0 +1,73 @@
+tide_aws_bg_color normal
+tide_aws_color yellow
+tide_character_color brgreen
+tide_character_color_failure brred
+tide_chruby_bg_color normal
+tide_chruby_color red
+tide_cmd_duration_bg_color normal
+tide_cmd_duration_color brblack
+tide_context_bg_color normal
+tide_context_color_default yellow
+tide_context_color_root bryellow
+tide_context_color_ssh yellow
+tide_docker_bg_color normal
+tide_docker_color blue
+tide_git_bg_color normal
+tide_git_bg_color_unstable normal
+tide_git_bg_color_urgent normal
+tide_git_color_branch brgreen
+tide_git_color_conflicted brred
+tide_git_color_dirty bryellow
+tide_git_color_operation brred
+tide_git_color_staged bryellow
+tide_git_color_stash brgreen
+tide_git_color_untracked brblue
+tide_git_color_upstream brgreen
+tide_go_bg_color normal
+tide_go_color brcyan
+tide_java_bg_color normal
+tide_java_color yellow
+tide_jobs_bg_color normal
+tide_jobs_color green
+tide_kubectl_bg_color normal
+tide_kubectl_color blue
+tide_nix_shell_bg_color normal
+tide_nix_shell_color brblue
+tide_node_bg_color normal
+tide_node_color green
+tide_os_bg_color normal
+tide_os_color brwhite
+tide_php_bg_color normal
+tide_php_color blue
+tide_private_mode_bg_color normal
+tide_private_mode_color brwhite
+tide_prompt_color_frame_and_connection brblack
+tide_prompt_color_separator_same_color brblack
+tide_pwd_bg_color normal
+tide_pwd_color_anchors brcyan
+tide_pwd_color_dirs cyan
+tide_pwd_color_truncated_dirs magenta
+tide_rustc_bg_color normal
+tide_rustc_color red
+tide_shlvl_bg_color normal
+tide_shlvl_color yellow
+tide_status_bg_color normal
+tide_status_bg_color_failure normal
+tide_status_color green
+tide_status_color_failure red
+tide_terraform_bg_color normal
+tide_terraform_color magenta
+tide_time_bg_color normal
+tide_time_color brblack
+tide_toolbox_bg_color normal
+tide_toolbox_color magenta
+tide_vi_mode_bg_color_default normal
+tide_vi_mode_bg_color_insert normal
+tide_vi_mode_bg_color_replace normal
+tide_vi_mode_bg_color_visual normal
+tide_vi_mode_color_default white
+tide_vi_mode_color_insert cyan
+tide_vi_mode_color_replace green
+tide_vi_mode_color_visual yellow
+tide_virtual_env_bg_color normal
+tide_virtual_env_color cyan
diff --git a/.config/fish/functions/tide/configure/configs/rainbow.fish b/.config/fish/functions/tide/configure/configs/rainbow.fish
new file mode 100644
index 00000000..84f15adb
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/rainbow.fish
@@ -0,0 +1,129 @@
+tide_aws_bg_color FF9900
+tide_aws_color 232F3E
+tide_aws_icon 
+tide_character_color $_tide_color_green
+tide_character_color_failure FF0000
+tide_character_icon ❯
+tide_character_vi_icon_default ❮
+tide_character_vi_icon_replace ▶
+tide_character_vi_icon_visual V
+tide_chruby_bg_color B31209
+tide_chruby_color 000000
+tide_chruby_icon 
+tide_cmd_duration_bg_color C4A000
+tide_cmd_duration_color 000000
+tide_cmd_duration_decimals 0
+tide_cmd_duration_icon
+tide_cmd_duration_threshold 3000
+tide_context_always_display false
+tide_context_bg_color 444444
+tide_context_color_default D7AF87
+tide_context_color_root $_tide_color_gold
+tide_context_color_ssh D7AF87
+tide_docker_bg_color 2496ED
+tide_docker_color 000000
+tide_docker_default_contexts default colima
+tide_docker_icon 
+tide_git_bg_color 4E9A06
+tide_git_bg_color_unstable C4A000
+tide_git_bg_color_urgent CC0000
+tide_git_color_branch 000000
+tide_git_color_conflicted 000000
+tide_git_color_dirty 000000
+tide_git_color_operation 000000
+tide_git_color_staged 000000
+tide_git_color_stash 000000
+tide_git_color_untracked 000000
+tide_git_color_upstream 000000
+tide_git_icon
+tide_git_truncation_length 24
+tide_go_bg_color 00ACD7
+tide_go_color 000000
+tide_go_icon 
+tide_java_bg_color ED8B00
+tide_java_color 000000
+tide_java_icon 
+tide_jobs_bg_color 444444
+tide_jobs_color 4E9A06
+tide_jobs_icon 
+tide_kubectl_bg_color 326CE5
+tide_kubectl_color 000000
+tide_kubectl_icon ⎈
+tide_left_prompt_frame_enabled true
+tide_left_prompt_items pwd git newline
+tide_left_prompt_prefix ''
+tide_left_prompt_separator_diff_color 
+tide_left_prompt_separator_same_color 
+tide_left_prompt_suffix 
+tide_nix_shell_bg_color 7EBAE4
+tide_nix_shell_color 000000
+tide_nix_shell_icon 
+tide_node_bg_color 44883E
+tide_node_color 000000
+tide_node_icon ⬢
+tide_os_bg_color $os_branding_bg_color
+tide_os_color $os_branding_color
+tide_os_icon $os_branding_icon
+tide_php_bg_color 617CBE
+tide_php_color 000000
+tide_php_icon 
+tide_private_mode_bg_color F1F3F4
+tide_private_mode_color 000000
+tide_private_mode_icon 﫸
+tide_prompt_add_newline_before true
+tide_prompt_color_frame_and_connection 6C6C6C
+tide_prompt_color_separator_same_color 949494
+tide_prompt_icon_connection ' '
+tide_prompt_min_cols 34
+tide_prompt_pad_items true
+tide_pwd_bg_color 3465A4
+tide_pwd_color_anchors E4E4E4
+tide_pwd_color_dirs E4E4E4
+tide_pwd_color_truncated_dirs BCBCBC
+tide_pwd_icon
+tide_pwd_icon_home
+tide_pwd_icon_unwritable 
+tide_pwd_markers .bzr .citc .git .hg .node-version .python-version .ruby-version .shorten_folder_marker .svn .terraform Cargo.toml composer.json CVS go.mod package.json
+tide_right_prompt_frame_enabled true
+tide_right_prompt_items status cmd_duration context jobs node virtual_env rustc java php chruby go kubectl toolbox terraform aws nix_shell
+tide_right_prompt_prefix 
+tide_right_prompt_separator_diff_color 
+tide_right_prompt_separator_same_color 
+tide_right_prompt_suffix ''
+tide_rustc_bg_color F74C00
+tide_rustc_color 000000
+tide_rustc_icon 
+tide_shlvl_bg_color 808000
+tide_shlvl_color 000000
+tide_shlvl_icon 
+tide_shlvl_threshold 1
+tide_status_bg_color 2E3436
+tide_status_bg_color_failure CC0000
+tide_status_color 4E9A06
+tide_status_color_failure FFFF00
+tide_status_icon ✔
+tide_status_icon_failure ✘
+tide_terraform_bg_color 800080
+tide_terraform_color 000000
+tide_terraform_icon
+tide_time_bg_color D3D7CF
+tide_time_color 000000
+tide_time_format %T
+tide_toolbox_bg_color 613583
+tide_toolbox_color 000000
+tide_toolbox_icon ⬢
+tide_vi_mode_bg_color_default 949494
+tide_vi_mode_bg_color_insert 87AFAF
+tide_vi_mode_bg_color_replace 87AF87
+tide_vi_mode_bg_color_visual FF8700
+tide_vi_mode_color_default 000000
+tide_vi_mode_color_insert 000000
+tide_vi_mode_color_replace 000000
+tide_vi_mode_color_visual 000000
+tide_vi_mode_icon_default D
+tide_vi_mode_icon_insert I
+tide_vi_mode_icon_replace R
+tide_vi_mode_icon_visual V
+tide_virtual_env_bg_color 444444
+tide_virtual_env_color 00AFAF
+tide_virtual_env_icon 
diff --git a/.config/fish/functions/tide/configure/configs/rainbow_16color.fish b/.config/fish/functions/tide/configure/configs/rainbow_16color.fish
new file mode 100644
index 00000000..0a660949
--- /dev/null
+++ b/.config/fish/functions/tide/configure/configs/rainbow_16color.fish
@@ -0,0 +1,77 @@
+tide_aws_bg_color yellow
+tide_aws_color brblack
+tide_character_color brgreen
+tide_character_color_failure brred
+tide_chruby_bg_color red
+tide_chruby_color black
+tide_cmd_duration_bg_color yellow
+tide_cmd_duration_color black
+tide_context_bg_color brblack
+tide_context_color_default yellow
+tide_context_color_root yellow
+tide_context_color_ssh yellow
+tide_docker_bg_color blue
+tide_docker_color black
+tide_git_bg_color green
+tide_git_bg_color_unstable yellow
+tide_git_bg_color_urgent red
+tide_git_color_branch black
+tide_git_color_conflicted black
+tide_git_color_dirty black
+tide_git_color_operation black
+tide_git_color_staged black
+tide_git_color_stash black
+tide_git_color_untracked black
+tide_git_color_upstream black
+tide_go_bg_color brcyan
+tide_go_color black
+tide_java_bg_color yellow
+tide_java_color black
+tide_jobs_bg_color brblack
+tide_jobs_color green
+tide_kubectl_bg_color blue
+tide_kubectl_color black
+tide_nix_shell_bg_color brblue
+tide_nix_shell_color black
+tide_node_bg_color green
+tide_node_color black
+tide_os_bg_color white
+tide_os_color black
+tide_php_bg_color blue
+tide_php_color black
+tide_private_mode_bg_color brwhite
+tide_private_mode_color black
+tide_prompt_color_frame_and_connection brblack
+tide_prompt_color_separator_same_color brblack
+tide_pwd_bg_color blue
+tide_pwd_color_anchors brwhite
+tide_pwd_color_dirs brwhite
+tide_pwd_color_truncated_dirs white
+tide_rustc_bg_color red
+tide_rustc_color black
+tide_shlvl_bg_color yellow
+tide_shlvl_color black
+tide_status_bg_color black
+tide_status_bg_color_failure red
+tide_status_color green
+tide_status_color_failure bryellow
+tide_terraform_bg_color magenta
+tide_terraform_color black
+tide_time_bg_color white
+tide_time_color black
+tide_toolbox_bg_color magenta
+tide_toolbox_color black
+tide_vi_mode_bg_color_default white
+tide_vi_mode_bg_color_insert cyan
+tide_vi_mode_bg_color_replace green
+tide_vi_mode_bg_color_visual yellow
+tide_vi_mode_color_default black
+tide_vi_mode_color_insert black
+tide_vi_mode_color_replace black
+tide_vi_mode_color_visual black
+tide_vi_mode_icon_default D
+tide_vi_mode_icon_insert I
+tide_vi_mode_icon_replace R
+tide_vi_mode_icon_visual V
+tide_virtual_env_bg_color brblack
+tide_virtual_env_color cyan
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_cache_variables.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_cache_variables.fish
new file mode 100644
index 00000000..4661ab15
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_cache_variables.fish
@@ -0,0 +1,41 @@
+function _fake_tide_cache_variables
+ # pwd
+ set_color -o $fake_tide_pwd_color_anchors | read -gx _fake_tide_color_anchors
+ set -gx _fake_tide_color_truncated_dirs "$(set_color $fake_tide_pwd_color_truncated_dirs)"
+ set -gx _fake_tide_reset_to_color_dirs (set_color normal -b $fake_tide_pwd_bg_color; set_color $fake_tide_pwd_color_dirs)
+
+ # git
+ contains git $fake_tide_left_prompt_items $fake_tide_right_prompt_items &&
+ set -gx _fake_tide_location_color "$(set_color $fake_tide_git_color_branch)"
+
+ # private_mode
+ if contains private_mode $fake_tide_left_prompt_items $fake_tide_right_prompt_items && test -n "$fish_private_mode"
+ set -gx _fake_tide_private_mode
+ else
+ set -e _fake_tide_private_mode
+ end
+
+ # Same-color-separator color
+ set -gx _fake_tide_color_separator_same_color "$(set_color $fake_tide_prompt_color_separator_same_color)"
+
+ # two line prompt
+ if contains newline $fake_tide_left_prompt_items
+ set_color $fake_tide_prompt_color_frame_and_connection -b normal | read -gx _fake_tide_prompt_and_frame_color
+ else
+ set -e _fake_tide_prompt_and_frame_color
+ end
+
+ # newline before
+ if test "$fake_tide_prompt_add_newline_before" = true
+ set -g _fake_tide_add_newline ''
+ else
+ set -e _fake_tide_add_newline
+ end
+
+ # item padding
+ if test "$fake_tide_prompt_pad_items" = true
+ set -gx _fake_tide_pad ' '
+ else
+ set -e _fake_tide_pad
+ end
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_character.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_character.fish
new file mode 100644
index 00000000..73ae0554
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_character.fish
@@ -0,0 +1,5 @@
+function _fake_tide_item_character
+ set_color $fake_tide_character_color
+ contains newline $fake_tide_left_prompt_items || echo -ns ' '
+ echo -ns $fake_tide_character_icon
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_cmd_duration.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_cmd_duration.fish
new file mode 100644
index 00000000..5aa13b2b
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_cmd_duration.fish
@@ -0,0 +1,3 @@
+function _fake_tide_item_cmd_duration
+ _fake_tide_print_item cmd_duration $fake_tide_cmd_duration_icon' ' 5s
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_git.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_git.fish
new file mode 100644
index 00000000..fb5b957d
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_git.fish
@@ -0,0 +1,3 @@
+function _fake_tide_item_git
+ _fake_tide_print_item git (set_color $fake_tide_git_color_branch) $fake_tide_git_icon' ' main
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_newline.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_newline.fish
new file mode 100644
index 00000000..c614bab2
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_newline.fish
@@ -0,0 +1,5 @@
+function _fake_tide_item_newline
+ set_color $prev_bg_color -b normal
+ var=fake_tide_"$_fake_tide_side"_prompt_suffix echo $$var
+ set -g add_prefix
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_os.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_os.fish
new file mode 100644
index 00000000..5255721f
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_os.fish
@@ -0,0 +1,3 @@
+function _fake_tide_item_os
+ _fake_tide_print_item os $fake_tide_os_icon
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_item_time.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_item_time.fish
new file mode 100644
index 00000000..bbce0b5a
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_item_time.fish
@@ -0,0 +1,3 @@
+function _fake_tide_item_time
+ _fake_tide_print_item time (date +$fake_tide_time_format)
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_print_item.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_print_item.fish
new file mode 100644
index 00000000..30cd0245
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_print_item.fish
@@ -0,0 +1,22 @@
+function _fake_tide_print_item -a item
+ var=fake_tide_"$item"_bg_color set -f item_bg_color $$var
+
+ if set -e add_prefix
+ set_color $item_bg_color -b normal
+ var=fake_tide_"$_fake_tide_side"_prompt_prefix echo -ns $$var
+ else if test "$item_bg_color" = "$prev_bg_color"
+ var=fake_tide_"$_fake_tide_side"_prompt_separator_same_color echo -ns $_fake_tide_color_separator_same_color$$var
+ else if test "$_fake_tide_side" = left
+ set_color $prev_bg_color -b $item_bg_color
+ echo -ns $fake_tide_left_prompt_separator_diff_color
+ else
+ set_color $item_bg_color -b $prev_bg_color
+ echo -ns $fake_tide_right_prompt_separator_diff_color
+ end
+
+ var=fake_tide_"$item"_color set_color $$var -b $item_bg_color
+
+ echo -ns $_fake_tide_pad $argv[2..] $_fake_tide_pad
+
+ set -g prev_bg_color $item_bg_color
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_prompt.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_prompt.fish
new file mode 100644
index 00000000..11f20caa
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_prompt.fish
@@ -0,0 +1,42 @@
+function _fake_tide_prompt
+ set -g add_prefix
+ _fake_tide_side=left set -f left (for item in $fake_tide_left_prompt_items
+ _fake_tide_item_$item
+ end
+ if not set -e add_prefix
+ set_color $prev_bg_color -b normal
+ echo -ns $fake_tide_left_prompt_suffix
+ end)
+
+ set -g add_prefix
+ _fake_tide_side=right set -f right (for item in $fake_tide_right_prompt_items
+ _fake_tide_item_$item
+ end
+ if not set -e add_prefix
+ set_color $prev_bg_color -b normal
+ echo -ns $fake_tide_right_prompt_suffix
+ end)
+
+ if set -q _fake_tide_prompt_and_frame_color # If prompt is two lines
+ test "$fake_tide_left_prompt_frame_enabled" = true &&
+ set left[1] "$_fake_tide_prompt_and_frame_color╭─$left[1]" &&
+ set left[2] "$_fake_tide_prompt_and_frame_color╰─$left[2]"
+ test "$fake_tide_right_prompt_frame_enabled" = true &&
+ set right[1] "$right[1]$_fake_tide_prompt_and_frame_color─╮" &&
+ set right[2] "$right[2]$_fake_tide_prompt_and_frame_color─╯"
+
+ # 5 = @PWD@ length which will be replaced
+ math $fake_columns+5-(string length --visible "$left[1]$right[1]") | read -lx dist_btwn_sides
+ echo -ns "$right[2]"\n(string replace @PWD@ (_fake_tide_pwd) "$left[1]")$_fake_tide_prompt_and_frame_color
+
+ string repeat --no-newline --max (math max 0, $dist_btwn_sides-$_tide_pwd_len) $fake_tide_prompt_icon_connection
+ echo -ns "$right[1]"\n"$left[2] "
+ else
+ math $fake_columns+5-(string length --visible "$left[1]$right[1]") -$fake_tide_prompt_min_cols | read -lx dist_btwn_sides
+ string replace @PWD@ (_fake_tide_pwd) "$right[1]" "$left[1] "
+ end
+end
+
+function _fake_tide_item_pwd
+ _fake_tide_print_item pwd @PWD@
+end
diff --git a/.config/fish/functions/tide/configure/functions/_fake_tide_pwd.fish b/.config/fish/functions/tide/configure/functions/_fake_tide_pwd.fish
new file mode 100644
index 00000000..433eafab
--- /dev/null
+++ b/.config/fish/functions/tide/configure/functions/_fake_tide_pwd.fish
@@ -0,0 +1,11 @@
+function _fake_tide_pwd
+ set -l out (
+ set_color $fake_tide_pwd_color_dirs
+ echo -ns $fake_tide_pwd_icon' ' '~/'
+ set_color -o $fake_tide_pwd_color_anchors
+ echo -ns src
+ set_color normal -b $fake_tide_pwd_bg_color
+ )
+ set -g _tide_pwd_len (string length --visible $out)
+ echo -ns $out
+end