From 5569b6fe10f35fc01edbf3a1a3f9fbc9e6635652 Mon Sep 17 00:00:00 2001 From: aleidk Date: Fri, 6 Jun 2025 09:35:53 -0400 Subject: [PATCH] add fish shell config --- .../fish/completions/.config/fish/config.fish | 3 + .../completions/.config/fish/fish_variables | 31 +++ .../fish/.config/fish/completions/fisher.fish | 7 + Configs/fish/.config/fish/config.fish | 4 + Configs/fish/.config/fish/fish_variables | 114 +++++++++ .../functions/_pure_check_availability.fish | 15 ++ .../_pure_check_for_new_release.fish | 24 ++ ...ure_detect_container_by_cgroup_method.fish | 10 + .../_pure_detect_container_by_pid_method.fish | 14 + .../fish/functions/_pure_format_time.fish | 49 ++++ .../functions/_pure_get_prompt_symbol.fish | 12 + .../functions/_pure_is_inside_container.fish | 25 ++ .../_pure_is_single_line_prompt.fish | 5 + .../fish/functions/_pure_k8s_context.fish | 3 + .../fish/functions/_pure_k8s_namespace.fish | 9 + .../fish/functions/_pure_parse_directory.fish | 23 ++ .../functions/_pure_parse_git_branch.fish | 4 + .../_pure_place_iterm2_prompt_mark.fish | 5 + .../functions/_pure_prefix_root_prompt.fish | 11 + .../fish/functions/_pure_print_prompt.fish | 12 + .../functions/_pure_print_prompt_rows.fish | 10 + .../.config/fish/functions/_pure_prompt.fish | 31 +++ .../functions/_pure_prompt_aws_profile.fish | 19 ++ .../functions/_pure_prompt_beginning.fish | 7 + .../_pure_prompt_command_duration.fish | 11 + .../functions/_pure_prompt_container.fish | 5 + .../_pure_prompt_current_folder.fish | 11 + .../fish/functions/_pure_prompt_ending.fish | 3 + .../functions/_pure_prompt_first_line.fish | 41 +++ .../fish/functions/_pure_prompt_git.fish | 26 ++ .../functions/_pure_prompt_git_branch.fish | 6 + .../functions/_pure_prompt_git_dirty.fish | 27 ++ .../_pure_prompt_git_pending_commits.fish | 27 ++ .../functions/_pure_prompt_git_stash.fish | 15 ++ .../fish/functions/_pure_prompt_jobs.fish | 9 + .../fish/functions/_pure_prompt_k8s.fish | 16 ++ .../fish/functions/_pure_prompt_new_line.fish | 11 + .../functions/_pure_prompt_nixdevshell.fish | 13 + .../fish/functions/_pure_prompt_ssh.fish | 5 + .../fish/functions/_pure_prompt_symbol.fish | 20 ++ .../functions/_pure_prompt_system_time.fish | 6 + .../fish/functions/_pure_prompt_vimode.fish | 6 + .../functions/_pure_prompt_virtualenv.fish | 18 ++ .../fish/functions/_pure_set_color.fish | 19 ++ .../fish/functions/_pure_set_default.fish | 11 + .../fish/functions/_pure_string_width.fish | 9 + .../fish/functions/_pure_user_at_host.fish | 13 + .../.config/fish/functions/fish_greeting.fish | 3 + .../fish/functions/fish_mode_prompt.fish | 2 + .../.config/fish/functions/fish_prompt.fish | 11 + .../.config/fish/functions/fish_title.fish | 15 ++ .../fish/.config/fish/functions/fisher.fish | 240 ++++++++++++++++++ Configs/fish/.config/fish/functions/la.fish | 4 + Configs/fish/.config/fish/functions/ld.fish | 4 + Configs/fish/.config/fish/functions/ls.fish | 4 + .../fish/themes/Catppuccin Frappe.theme | 30 +++ .../fish/themes/Catppuccin Latte.theme | 30 +++ .../fish/themes/Catppuccin Macchiato.theme | 30 +++ .../fish/themes/Catppuccin Mocha.theme | 30 +++ Configs/zsh/.zshrc | 8 +- 60 files changed, 1185 insertions(+), 1 deletion(-) create mode 100644 Configs/fish/.config/fish/completions/.config/fish/config.fish create mode 100644 Configs/fish/.config/fish/completions/.config/fish/fish_variables create mode 100644 Configs/fish/.config/fish/completions/fisher.fish create mode 100644 Configs/fish/.config/fish/config.fish create mode 100644 Configs/fish/.config/fish/fish_variables create mode 100644 Configs/fish/.config/fish/functions/_pure_check_availability.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_check_for_new_release.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_detect_container_by_pid_method.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_format_time.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_get_prompt_symbol.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_is_inside_container.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_is_single_line_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_k8s_context.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_k8s_namespace.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_parse_directory.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_parse_git_branch.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prefix_root_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_print_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_print_prompt_rows.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_aws_profile.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_beginning.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_command_duration.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_container.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_current_folder.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_ending.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_first_line.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_git.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_git_branch.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_git_dirty.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_git_pending_commits.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_git_stash.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_jobs.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_k8s.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_new_line.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_nixdevshell.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_ssh.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_symbol.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_system_time.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_vimode.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_prompt_virtualenv.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_set_color.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_set_default.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_string_width.fish create mode 100644 Configs/fish/.config/fish/functions/_pure_user_at_host.fish create mode 100644 Configs/fish/.config/fish/functions/fish_greeting.fish create mode 100644 Configs/fish/.config/fish/functions/fish_mode_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/fish_prompt.fish create mode 100644 Configs/fish/.config/fish/functions/fish_title.fish create mode 100644 Configs/fish/.config/fish/functions/fisher.fish create mode 100644 Configs/fish/.config/fish/functions/la.fish create mode 100644 Configs/fish/.config/fish/functions/ld.fish create mode 100644 Configs/fish/.config/fish/functions/ls.fish create mode 100644 Configs/fish/.config/fish/themes/Catppuccin Frappe.theme create mode 100644 Configs/fish/.config/fish/themes/Catppuccin Latte.theme create mode 100644 Configs/fish/.config/fish/themes/Catppuccin Macchiato.theme create mode 100644 Configs/fish/.config/fish/themes/Catppuccin Mocha.theme diff --git a/Configs/fish/.config/fish/completions/.config/fish/config.fish b/Configs/fish/.config/fish/completions/.config/fish/config.fish new file mode 100644 index 0000000..d714361 --- /dev/null +++ b/Configs/fish/.config/fish/completions/.config/fish/config.fish @@ -0,0 +1,3 @@ +if status is-interactive + # Commands to run in interactive sessions can go here +end diff --git a/Configs/fish/.config/fish/completions/.config/fish/fish_variables b/Configs/fish/.config/fish/completions/.config/fish/fish_variables new file mode 100644 index 0000000..74b1ee1 --- /dev/null +++ b/Configs/fish/.config/fish/completions/.config/fish/fish_variables @@ -0,0 +1,31 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3800 +SETUVAR fish_color_autosuggestion:brblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:normal +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:yellow\x1e\x2di +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/Configs/fish/.config/fish/completions/fisher.fish b/Configs/fish/.config/fish/completions/fisher.fish new file mode 100644 index 0000000..6d23ce4 --- /dev/null +++ b/Configs/fish/.config/fish/completions/fisher.fish @@ -0,0 +1,7 @@ +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/Configs/fish/.config/fish/config.fish b/Configs/fish/.config/fish/config.fish new file mode 100644 index 0000000..a6030a8 --- /dev/null +++ b/Configs/fish/.config/fish/config.fish @@ -0,0 +1,4 @@ +if status is-interactive + # Commands to run in interactive sessions can go here + zoxide init --cmd cd fish | source +end diff --git a/Configs/fish/.config/fish/fish_variables b/Configs/fish/.config/fish/fish_variables new file mode 100644 index 0000000..c6de14c --- /dev/null +++ b/Configs/fish/.config/fish/fish_variables @@ -0,0 +1,114 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3800 +SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme +SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish +SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ecatppuccin/fish\x1epure\x2dfish/pure +SETUVAR _fisher_pure_2D_fish_2F_pure_files:\x7e/\x2econfig/fish/functions/_pure_check_availability\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_check_for_new_release\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_cgroup_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_pid_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_format_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_get_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_inside_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_single_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_namespace\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_place_iterm2_prompt_mark\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prefix_root_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt_rows\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_aws_profile\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_beginning\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_command_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_current_folder\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ending\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_first_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_dirty\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_pending_commits\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_stash\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_k8s\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_new_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_nixdevshell\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ssh\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_system_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_vimode\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_virtualenv\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_color\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_default\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_string_width\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_user_at_host\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_greeting\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_title\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_pure_init\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/pure\x2efish +SETUVAR _fisher_upgraded_to_4_4:\x1d +SETUVAR fish_color_autosuggestion:6e738d +SETUVAR fish_color_cancel:ed8796 +SETUVAR fish_color_command:8aadf4 +SETUVAR fish_color_comment:8087a2 +SETUVAR fish_color_cwd:eed49f +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:f5a97f +SETUVAR fish_color_error:ed8796 +SETUVAR fish_color_escape:ee99a0 +SETUVAR fish_color_gray:6e738d +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:8aadf4 +SETUVAR fish_color_host_remote:a6da95 +SETUVAR fish_color_keyword:ed8796 +SETUVAR fish_color_normal:cad3f5 +SETUVAR fish_color_operator:f5bde6 +SETUVAR fish_color_option:a6da95 +SETUVAR fish_color_param:f0c6c6 +SETUVAR fish_color_quote:a6da95 +SETUVAR fish_color_redirection:f5bde6 +SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d363a4f +SETUVAR fish_color_selection:\x2d\x2dbackground\x3d363a4f +SETUVAR fish_color_status:ed8796 +SETUVAR fish_color_user:8bd5ca +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting:\x1d +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_background:\x1d +SETUVAR fish_pager_color_completion:cad3f5 +SETUVAR fish_pager_color_description:6e738d +SETUVAR fish_pager_color_prefix:f5bde6 +SETUVAR fish_pager_color_progress:6e738d +SETUVAR fish_pager_color_secondary_background:\x1d +SETUVAR fish_pager_color_secondary_completion:\x1d +SETUVAR fish_pager_color_secondary_description:\x1d +SETUVAR fish_pager_color_secondary_prefix:\x1d +SETUVAR fish_pager_color_selected_background:\x1d +SETUVAR fish_pager_color_selected_completion:\x1d +SETUVAR fish_pager_color_selected_description:\x1d +SETUVAR fish_pager_color_selected_prefix:\x1d +SETUVAR pure_begin_prompt_with_current_directory:true +SETUVAR pure_check_for_new_release:false +SETUVAR pure_color_at_sign:pure_color_mute +SETUVAR pure_color_aws_profile:pure_color_warning +SETUVAR pure_color_command_duration:pure_color_warning +SETUVAR pure_color_current_directory:pure_color_primary +SETUVAR pure_color_danger:red +SETUVAR pure_color_dark:black +SETUVAR pure_color_git_branch:pure_color_mute +SETUVAR pure_color_git_dirty:pure_color_mute +SETUVAR pure_color_git_stash:pure_color_info +SETUVAR pure_color_git_unpulled_commits:pure_color_info +SETUVAR pure_color_git_unpushed_commits:pure_color_info +SETUVAR pure_color_hostname:pure_color_mute +SETUVAR pure_color_info:cyan +SETUVAR pure_color_jobs:pure_color_normal +SETUVAR pure_color_k8s_context:pure_color_success +SETUVAR pure_color_k8s_namespace:pure_color_primary +SETUVAR pure_color_k8s_prefix:pure_color_info +SETUVAR pure_color_light:white +SETUVAR pure_color_mute:brblack +SETUVAR pure_color_nixdevshell_prefix:pure_color_info +SETUVAR pure_color_nixdevshell_symbol:pure_color_mute +SETUVAR pure_color_normal:normal +SETUVAR pure_color_prefix_root_prompt:pure_color_danger +SETUVAR pure_color_primary:blue +SETUVAR pure_color_prompt_on_error:pure_color_danger +SETUVAR pure_color_prompt_on_success:pure_color_success +SETUVAR pure_color_success:magenta +SETUVAR pure_color_system_time:pure_color_mute +SETUVAR pure_color_username_normal:pure_color_mute +SETUVAR pure_color_username_root:pure_color_light +SETUVAR pure_color_virtualenv:pure_color_mute +SETUVAR pure_color_warning:yellow +SETUVAR pure_enable_aws_profile:true +SETUVAR pure_enable_container_detection:true +SETUVAR pure_enable_git:true +SETUVAR pure_enable_k8s:false +SETUVAR pure_enable_nixdevshell:false +SETUVAR pure_enable_single_line_prompt:true +SETUVAR pure_enable_virtualenv:true +SETUVAR pure_reverse_prompt_symbol_in_vimode:true +SETUVAR pure_separate_prompt_on_error:false +SETUVAR pure_shorten_prompt_current_directory_length:0 +SETUVAR pure_shorten_window_title_current_directory_length:0 +SETUVAR pure_show_jobs:false +SETUVAR pure_show_prefix_root_prompt:false +SETUVAR pure_show_subsecond_command_duration:false +SETUVAR pure_show_system_time:false +SETUVAR pure_symbol_aws_profile_prefix: +SETUVAR pure_symbol_container_prefix: +SETUVAR pure_symbol_git_dirty:\x2a +SETUVAR pure_symbol_git_stash:\u2261 +SETUVAR pure_symbol_git_unpulled_commits:\u21e3 +SETUVAR pure_symbol_git_unpushed_commits:\u21e1 +SETUVAR pure_symbol_k8s_prefix:\u2638 +SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f +SETUVAR pure_symbol_prefix_root_prompt:\x23 +SETUVAR pure_symbol_prompt:\u276f +SETUVAR pure_symbol_reverse_prompt:\u276e +SETUVAR pure_symbol_ssh_prefix: +SETUVAR pure_symbol_title_bar_separator:\x2d +SETUVAR pure_symbol_virtualenv_prefix: +SETUVAR pure_threshold_command_duration:5 +SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1 +SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1 diff --git a/Configs/fish/.config/fish/functions/_pure_check_availability.fish b/Configs/fish/.config/fish/functions/_pure_check_availability.fish new file mode 100644 index 0000000..3f6bfd8 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_check_availability.fish @@ -0,0 +1,15 @@ +function _pure_check_availability \ + --description "Ensure command is available on system" \ + --argument-names \ + feature_flag \ + required_command + + set FAILURE 1 + + if not type -q $required_command # command, function or alias are OK + echo (set_color $pure_color_warning) \ + "$feature_flag feature requires: `$required_command`" \ + (set_color $pure_color_normal) + return $FAILURE + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_check_for_new_release.fish b/Configs/fish/.config/fish/functions/_pure_check_for_new_release.fish new file mode 100644 index 0000000..9704bc8 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_check_for_new_release.fish @@ -0,0 +1,24 @@ +function _pure_check_for_new_release \ + --description "Check for new release and show command to install" + + if test "$pure_check_for_new_release" = true + echo "πŸ›ˆ Checking for new release…" + set latest (pure_get_latest_release_version "pure-fish/pure") + + if test "v"$pure_version != $latest + set --local latest_version (_pure_set_color $pure_color_info)$latest(_pure_set_color $pure_color_normal) + echo -e "πŸ”” New version available!\n" + echo -e (_pure_set_color $pure_color_success)"fisher install pure-fish/pure@$latest_version\n" + end + end +end + + +function pure_get_latest_release_version \ + --argument-names user_repo + + curl \ + --silent \ + "https://api.github.com/repos/$user_repo/releases/latest" \ + | string match --regex '"tag_name": "\K.*?(?=")' +end diff --git a/Configs/fish/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish b/Configs/fish/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish new file mode 100644 index 0000000..30b29dd --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish @@ -0,0 +1,10 @@ +function _pure_detect_container_by_cgroup_method \ + --description "Linux method to detect container using cgroup. see https://stackoverflow.com/a/37015387/802365" \ + --argument-names cgroup_namespace + set --query cgroup_namespace[1]; or set cgroup_namespace /proc/1/cgroup + + string match \ + --quiet \ + --entire \ + --regex '(lxc|docker)' <$cgroup_namespace +end diff --git a/Configs/fish/.config/fish/functions/_pure_detect_container_by_pid_method.fish b/Configs/fish/.config/fish/functions/_pure_detect_container_by_pid_method.fish new file mode 100644 index 0000000..f515051 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_detect_container_by_pid_method.fish @@ -0,0 +1,14 @@ +function _pure_detect_container_by_pid_method \ + --description "Linux method to detect container using /proc. see https://stackoverflow.com/a/37015387/802365" \ + --argument-names proc_sched + + set --query proc_sched[1]; or set proc_sched /proc/1/sched + + if test -e $proc_sched + head -n 1 $proc_sched \ + | string match \ + --quiet \ + --invert \ + --regex 'init|systemd|shepherd' + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_format_time.fish b/Configs/fish/.config/fish/functions/_pure_format_time.fish new file mode 100644 index 0000000..140f72f --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_format_time.fish @@ -0,0 +1,49 @@ +set SUCCESS 0 +set FAILURE 1 + +function _pure_format_time \ + --description="Format milliseconds to a human readable format" \ + --argument-names \ + milliseconds \ + threshold \ + show_subsecond + + set --query show_subsecond[1]; or set show_subsecond false + test "$milliseconds" -lt 0; and return $FAILURE + test "$milliseconds" -lt (math --scale=0 "$threshold * 1000"); and echo; and return $SUCCESS + + set --local time + set --local days (math --scale=0 "$milliseconds / 86400000") + test "$days" -gt 0; and set --append time (printf "%sd" $days) + set --local hours (math --scale=0 "$milliseconds / 3600000 % 24") + test "$hours" -gt 0; and set --append time (printf "%sh" $hours) + set --local minutes (math --scale=0 "$milliseconds / 60000 % 60") + test "$minutes" -gt 0; and set --append time (printf "%sm" $minutes) + set --local seconds (math --scale=0 "$milliseconds / 1000 % 60") + + if test "$show_subsecond" = true + set --local threshold_as_ms (math --scale=0 "$threshold*1000") + set --local subseconds (_pure_format_time_subseconds $milliseconds $threshold_as_ms) + set --append time $seconds$subseconds's' + else + test "$seconds" -gt $threshold; and set --append time (printf "%ss" $seconds) + end + + echo -e (string join ' ' $time) +end + + +function _pure_format_time_subseconds \ + --description="Format duration milliseconds to a human readable format" \ + --argument-names \ + duration \ + threshold + + set --local subseconds + if test "$duration" -gt $threshold + set --local precision 2 + set --local milliseconds (string sub --start -3 --length $precision $duration) + set --append subseconds '.'$milliseconds + end + echo $subseconds +end diff --git a/Configs/fish/.config/fish/functions/_pure_get_prompt_symbol.fish b/Configs/fish/.config/fish/functions/_pure_get_prompt_symbol.fish new file mode 100644 index 0000000..75c15e7 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_get_prompt_symbol.fish @@ -0,0 +1,12 @@ +function _pure_get_prompt_symbol \ + --description 'Print prompt symbol' \ + --argument-names exit_code + + set --local prompt_symbol $pure_symbol_prompt + test "$pure_reverse_prompt_symbol_in_vimode" = true + and string match -rq "fish_(vi|hybrid)_key_bindings" $fish_key_bindings + and not contains "$fish_bind_mode" insert replace + and set prompt_symbol $pure_symbol_reverse_prompt + + echo "$prompt_symbol" +end diff --git a/Configs/fish/.config/fish/functions/_pure_is_inside_container.fish b/Configs/fish/.config/fish/functions/_pure_is_inside_container.fish new file mode 100644 index 0000000..594d3bb --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_is_inside_container.fish @@ -0,0 +1,25 @@ +function _pure_is_inside_container \ + --argument-names cgroup_namespace + set --query cgroup_namespace[1]; or set cgroup_namespace /proc/1/cgroup + + set --local failure 1 + if set --query pure_enable_container_detection; and test "$pure_enable_container_detection" = true + set --local success 0 + if test -n "$container" + return $success + end + + set --local os_name (uname -s) + # echo $os_name + if test "$os_name" = Linux + if _pure_detect_container_by_cgroup_method $cgroup_namespace + return $success + end + + if _pure_detect_container_by_pid_method + return $success + end + end + end + return $failure +end diff --git a/Configs/fish/.config/fish/functions/_pure_is_single_line_prompt.fish b/Configs/fish/.config/fish/functions/_pure_is_single_line_prompt.fish new file mode 100644 index 0000000..f1efd4e --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_is_single_line_prompt.fish @@ -0,0 +1,5 @@ +function _pure_is_single_line_prompt \ + --description 'Test if single line prompt feature is enabled' + set --query pure_enable_single_line_prompt + and test "$pure_enable_single_line_prompt" = true +end diff --git a/Configs/fish/.config/fish/functions/_pure_k8s_context.fish b/Configs/fish/.config/fish/functions/_pure_k8s_context.fish new file mode 100644 index 0000000..5bd9e1c --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_k8s_context.fish @@ -0,0 +1,3 @@ +function _pure_k8s_context + kubectl config current-context 2>/dev/null +end diff --git a/Configs/fish/.config/fish/functions/_pure_k8s_namespace.fish b/Configs/fish/.config/fish/functions/_pure_k8s_namespace.fish new file mode 100644 index 0000000..87e08c7 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_k8s_namespace.fish @@ -0,0 +1,9 @@ +function _pure_k8s_namespace + set namespace (kubectl config view --minify --output 'jsonpath={..namespace}' 2>/dev/null) + + if test -z "$namespace" + set namespace default + end + + echo $namespace +end diff --git a/Configs/fish/.config/fish/functions/_pure_parse_directory.fish b/Configs/fish/.config/fish/functions/_pure_parse_directory.fish new file mode 100644 index 0000000..f28924b --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_parse_directory.fish @@ -0,0 +1,23 @@ +function _pure_parse_directory \ + --description "Replace '$HOME' with '~'" \ + --argument-names max_path_length + + set --local folder (fish_prompt_pwd_dir_length=$pure_shorten_prompt_current_directory_length prompt_pwd) + + if test -n "$max_path_length" + if test (string length $folder) -gt $max_path_length + # If path exceeds maximum symbol limit, force fish path formating function to use 1 character + set folder (fish_prompt_pwd_dir_length=1 prompt_pwd) + end + end + + if test "$pure_truncate_prompt_current_directory_keeps" -ge 1 + set folder ( + string split '/' $folder \ + | tail -n $pure_truncate_prompt_current_directory_keeps \ + | string join '/' + ) + end + + echo $folder +end diff --git a/Configs/fish/.config/fish/functions/_pure_parse_git_branch.fish b/Configs/fish/.config/fish/functions/_pure_parse_git_branch.fish new file mode 100644 index 0000000..a666f2a --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_parse_git_branch.fish @@ -0,0 +1,4 @@ +function _pure_parse_git_branch --description "Parse current Git branch name" + command git symbolic-ref --short HEAD 2>/dev/null; + or command git name-rev --name-only HEAD 2>/dev/null +end diff --git a/Configs/fish/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish b/Configs/fish/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish new file mode 100644 index 0000000..b999b7a --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish @@ -0,0 +1,5 @@ +function _pure_place_iterm2_prompt_mark + if functions -q iterm2_prompt_mark + iterm2_prompt_mark + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prefix_root_prompt.fish b/Configs/fish/.config/fish/functions/_pure_prefix_root_prompt.fish new file mode 100644 index 0000000..e9fb86f --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prefix_root_prompt.fish @@ -0,0 +1,11 @@ +function _pure_prefix_root_prompt + set --local username (id -u -n) # current user name + set --local prefix_root_prompt + + if set --query pure_show_prefix_root_prompt; and test "$pure_show_prefix_root_prompt" = true -a "$username" = "root" + set --local prefix_color (_pure_set_color $pure_color_prefix_root_prompt) + set prefix_root_prompt "$prefix_color$pure_symbol_prefix_root_prompt" + end + + echo "$prefix_root_prompt" +end diff --git a/Configs/fish/.config/fish/functions/_pure_print_prompt.fish b/Configs/fish/.config/fish/functions/_pure_print_prompt.fish new file mode 100644 index 0000000..91b9c90 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_print_prompt.fish @@ -0,0 +1,12 @@ +function _pure_print_prompt \ + --description 'Concatenate parts single prompt string' + set --local prompt + + for prompt_part in $argv + if test (_pure_string_width $prompt_part) -gt 0 + set --append prompt "$prompt_part" + end + end + + echo (string trim -l $prompt) +end diff --git a/Configs/fish/.config/fish/functions/_pure_print_prompt_rows.fish b/Configs/fish/.config/fish/functions/_pure_print_prompt_rows.fish new file mode 100644 index 0000000..cc8555c --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_print_prompt_rows.fish @@ -0,0 +1,10 @@ +function _pure_print_prompt_rows \ + --description "Manage default vs. compact prompt" + + # print current path, git branch/status, command duration + if _pure_is_single_line_prompt + echo -e -n (_pure_prompt_first_line) + else + echo -e (_pure_prompt_first_line) + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt.fish b/Configs/fish/.config/fish/functions/_pure_prompt.fish new file mode 100644 index 0000000..423768f --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt.fish @@ -0,0 +1,31 @@ +function _pure_prompt \ + --description 'Print prompt symbol' \ + --argument-names exit_code + + set --local jobs (_pure_prompt_jobs) + set --local nixdevshell (_pure_prompt_nixdevshell) # Nix build environment indicator + set --local virtualenv (_pure_prompt_virtualenv) # Python virtualenv name + set --local aws_profile (_pure_prompt_aws_profile) # AWS profile name + set --local vimode_indicator (_pure_prompt_vimode) # vi-mode indicator + set --local pure_symbol (_pure_prompt_symbol $exit_code) + set --local system_time (_pure_prompt_system_time) + set --local root_prefix (_pure_prefix_root_prompt) + set --local space + + if _pure_is_single_line_prompt + set space ' ' + end + + echo (\ + _pure_print_prompt \ + $space \ + $system_time \ + $root_prefix \ + $jobs \ + $nixdevshell \ + $virtualenv \ + $aws_profile \ + $vimode_indicator \ + $pure_symbol \ + ) +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_aws_profile.fish b/Configs/fish/.config/fish/functions/_pure_prompt_aws_profile.fish new file mode 100644 index 0000000..d4d0d2f --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_aws_profile.fish @@ -0,0 +1,19 @@ +function _pure_prompt_aws_profile --description "Display AWS profile name" + + if set --query pure_enable_aws_profile; + and test "$pure_enable_aws_profile" = true + + set --local aws_profile '' + set --local aws_profile_color (_pure_set_color $pure_color_aws_profile) + + if test -n "$AWS_VAULT" + set aws_profile "$AWS_VAULT" + else if test -n "$AWS_PROFILE" -o "$AWS_PROFILE" != default + set aws_profile "$AWS_PROFILE" + end + + if test -n $aws_profile + echo "$pure_symbol_aws_profile_prefix$aws_profile_color$aws_profile" + end + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_beginning.fish b/Configs/fish/.config/fish/functions/_pure_prompt_beginning.fish new file mode 100644 index 0000000..8b093db --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_beginning.fish @@ -0,0 +1,7 @@ +function _pure_prompt_beginning \ + --description 'Clear existing line content' + + set --local clear_line "\r\033[K" + + echo $clear_line +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_command_duration.fish b/Configs/fish/.config/fish/functions/_pure_prompt_command_duration.fish new file mode 100644 index 0000000..0a2e231 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_command_duration.fish @@ -0,0 +1,11 @@ +function _pure_prompt_command_duration + set --local command_duration + + # Get command execution duration + if test -n "$CMD_DURATION" + set command_duration (_pure_format_time $CMD_DURATION $pure_threshold_command_duration $pure_show_subsecond_command_duration) + end + set --local command_duration_color (_pure_set_color $pure_color_command_duration) + + echo "$command_duration_color$command_duration" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_container.fish b/Configs/fish/.config/fish/functions/_pure_prompt_container.fish new file mode 100644 index 0000000..97a6056 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_container.fish @@ -0,0 +1,5 @@ +function _pure_prompt_container + if _pure_is_inside_container + echo "$pure_symbol_container_prefix"(_pure_user_at_host) + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_current_folder.fish b/Configs/fish/.config/fish/functions/_pure_prompt_current_folder.fish new file mode 100644 index 0000000..462d9b1 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_current_folder.fish @@ -0,0 +1,11 @@ +set FAILURE 1 + +function _pure_prompt_current_folder --argument-names current_prompt_width + + if test -z "$current_prompt_width"; return $FAILURE; end + + set --local current_folder (_pure_parse_directory (math $COLUMNS - $current_prompt_width - 1)) + set --local current_folder_color (_pure_set_color $pure_color_current_directory) + + echo "$current_folder_color$current_folder" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_ending.fish b/Configs/fish/.config/fish/functions/_pure_prompt_ending.fish new file mode 100644 index 0000000..ba92511 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_ending.fish @@ -0,0 +1,3 @@ +function _pure_prompt_ending + echo (set_color normal)" " +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_first_line.fish b/Configs/fish/.config/fish/functions/_pure_prompt_first_line.fish new file mode 100644 index 0000000..2361872 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_first_line.fish @@ -0,0 +1,41 @@ +set --global FAILURE 1 + +function _pure_prompt_first_line \ + --description 'Print contextual information before prompt.' + + set --local prompt_ssh (_pure_prompt_ssh) + set --local prompt_container (_pure_prompt_container) + set --local prompt_k8s (_pure_prompt_k8s) + set --local prompt_git (_pure_prompt_git) + set --local prompt_command_duration (_pure_prompt_command_duration) + set --local prompt (_pure_print_prompt \ + $prompt_ssh \ + $prompt_container \ + $prompt_k8s \ + $prompt_git \ + $prompt_command_duration + ) + set --local prompt_width (_pure_string_width $prompt) + set --local current_folder (_pure_prompt_current_folder $prompt_width) + + set --local prompt_components + if set --query pure_begin_prompt_with_current_directory; and test "$pure_begin_prompt_with_current_directory" = true + set prompt_components \ + $current_folder \ + $prompt_git \ + $prompt_ssh \ + $prompt_container \ + $prompt_k8s \ + $prompt_command_duration + else + set prompt_components \ + $prompt_ssh \ + $prompt_container \ + $prompt_k8s \ + $current_folder \ + $prompt_git \ + $prompt_command_duration + end + + echo (_pure_print_prompt $prompt_components) +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_git.fish b/Configs/fish/.config/fish/functions/_pure_prompt_git.fish new file mode 100644 index 0000000..6e3377d --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_git.fish @@ -0,0 +1,26 @@ +function _pure_prompt_git \ + --description 'Print git repository informations: branch name, dirty, upstream ahead/behind' + + set ABORT_FEATURE 2 + + if set --query pure_enable_git; and test "$pure_enable_git" != true + return + end + + if not type -q --no-functions git # skip git-related features when `git` is not available + return $ABORT_FEATURE + end + + set --local is_git_repository (command git rev-parse --is-inside-work-tree 2>/dev/null) + + if test -n "$is_git_repository" + set --local git_prompt (_pure_prompt_git_branch)(_pure_prompt_git_dirty)(_pure_prompt_git_stash) + set --local git_pending_commits (_pure_prompt_git_pending_commits) + + if test (_pure_string_width $git_pending_commits) -ne 0 + set --append git_prompt $git_pending_commits + end + + echo $git_prompt + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_git_branch.fish b/Configs/fish/.config/fish/functions/_pure_prompt_git_branch.fish new file mode 100644 index 0000000..777cd0e --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_git_branch.fish @@ -0,0 +1,6 @@ +function _pure_prompt_git_branch + set --local git_branch (_pure_parse_git_branch) # current git branch + set --local git_branch_color (_pure_set_color $pure_color_git_branch) + + echo "$git_branch_color$git_branch" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_git_dirty.fish b/Configs/fish/.config/fish/functions/_pure_prompt_git_dirty.fish new file mode 100644 index 0000000..0c92836 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_git_dirty.fish @@ -0,0 +1,27 @@ +function _pure_prompt_git_dirty + set --local git_dirty_symbol + set --local git_dirty_color + + set --local is_git_dirty ( + # HEAD may not exist (e.g. immediately after git init); diff-index is + # fast for staged checks but requires a ref. + # + # The diff-index (or diff --staged) checks for staged changes; the diff + # checks for unstaged changes; the ls-files checks for untracked files. + # We put them in this order because checking staged changes is *fast*. + if command git rev-list --max-count=1 HEAD -- >/dev/null 2>&1; + not command git diff-index --ignore-submodules --cached --quiet HEAD -- >/dev/null 2>&1; + else; + not command git diff --staged --ignore-submodules --no-ext-diff --quiet --exit-code >/dev/null 2>&1; + end + or not command git diff --ignore-submodules --no-ext-diff --quiet --exit-code >/dev/null 2>&1 + or command git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>&1 + and echo "true" + ) + if test -n "$is_git_dirty" # untracked or un-commited files + set git_dirty_symbol "$pure_symbol_git_dirty" + set git_dirty_color (_pure_set_color $pure_color_git_dirty) + end + + echo "$git_dirty_color$git_dirty_symbol" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_git_pending_commits.fish b/Configs/fish/.config/fish/functions/_pure_prompt_git_pending_commits.fish new file mode 100644 index 0000000..6ae7c59 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_git_pending_commits.fish @@ -0,0 +1,27 @@ +function _pure_prompt_git_pending_commits + set --local git_unpushed_commits + set --local git_unpulled_commits + + set --local has_upstream (command git rev-parse --abbrev-ref '@{upstream}' 2>/dev/null) + if test -n "$has_upstream" # check there is an upstream repo configured + and test "$has_upstream" != '@{upstream}' # Fixed #179, dont check the empty repo + command git rev-list --left-right --count 'HEAD...@{upstream}' \ + | read --local --array git_status + set --local commit_to_push $git_status[1] + set --local commit_to_pull $git_status[2] + + if test "$commit_to_push" -gt 0 # upstream is behind local repo + set --local git_unpushed_commits_color \ + (_pure_set_color $pure_color_git_unpushed_commits) + set git_unpushed_commits "$git_unpushed_commits_color$pure_symbol_git_unpushed_commits" + end + + if test "$commit_to_pull" -gt 0 # upstream is ahead of local repo + set --local git_unpulled_commits_color \ + (_pure_set_color $pure_color_git_unpulled_commits) + set git_unpulled_commits "$git_unpulled_commits_color$pure_symbol_git_unpulled_commits" + end + end + + echo "$git_unpushed_commits$git_unpulled_commits" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_git_stash.fish b/Configs/fish/.config/fish/functions/_pure_prompt_git_stash.fish new file mode 100644 index 0000000..531ceb4 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_git_stash.fish @@ -0,0 +1,15 @@ +function _pure_prompt_git_stash + set --local git_stash_symbol + set --local git_stash_color + + set --local has_stashed_files ( + command git rev-list --walk-reflogs --count refs/stash >/dev/null 2>&1 + and echo "true" + ) + if test -n "$has_stashed_files" # untracked or un-commited files + set git_stash_symbol " $pure_symbol_git_stash" + set git_stash_color (_pure_set_color $pure_color_git_stash) + end + + echo "$git_stash_color$git_stash_symbol" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_jobs.fish b/Configs/fish/.config/fish/functions/_pure_prompt_jobs.fish new file mode 100644 index 0000000..3a5181d --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_jobs.fish @@ -0,0 +1,9 @@ +function _pure_prompt_jobs --description "Display number of running jobs" + if set --query pure_show_jobs; and test "$pure_show_jobs" = true + set --local njobs (count (jobs -p)) + set --local jobs_color (_pure_set_color $pure_color_jobs) + if test "$njobs" -gt 0 + echo "$jobs_color"[$njobs] + end + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_k8s.fish b/Configs/fish/.config/fish/functions/_pure_prompt_k8s.fish new file mode 100644 index 0000000..a283058 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_k8s.fish @@ -0,0 +1,16 @@ +function _pure_prompt_k8s + if set --query pure_enable_k8s; + and test "$pure_enable_k8s" = true; + and _pure_check_availability pure_enable_k8s kubectl + and test -n (_pure_k8s_context) # todo: use $(cmd) syntax when Fish 3.3.1 is dropped + + set --local context (_pure_set_color $pure_color_k8s_context)(_pure_k8s_context) + + if test -n "$context" + set --local symbol (_pure_set_color $pure_color_k8s_prefix)$pure_symbol_k8s_prefix + set --local namespace (_pure_set_color $pure_color_k8s_namespace)(_pure_k8s_namespace) + + echo "$symbol $context/$namespace" + end + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_new_line.fish b/Configs/fish/.config/fish/functions/_pure_prompt_new_line.fish new file mode 100644 index 0000000..7cfb4e4 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_new_line.fish @@ -0,0 +1,11 @@ +function _pure_prompt_new_line \ + --description "Do not add a line break to a brand new session" \ + --on-event fish_prompt + + set --local new_line '' + if not _pure_is_single_line_prompt; and test "$_pure_fresh_session" = false + set new_line "\n" + end + + echo -e -n (_pure_prompt_beginning)"$new_line" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_nixdevshell.fish b/Configs/fish/.config/fish/functions/_pure_prompt_nixdevshell.fish new file mode 100644 index 0000000..7f9c4bb --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_nixdevshell.fish @@ -0,0 +1,13 @@ +function _pure_prompt_nixdevshell \ + --description "Indicate if nix develop shell is activated" + + if set --query pure_enable_nixdevshell; + and test "$pure_enable_nixdevshell" = true; + and test -n "$IN_NIX_SHELL" + + set --local prefix (_pure_set_color $pure_color_nixdevshell_prefix)$pure_symbol_nixdevshell_prefix + set --local symbol (_pure_set_color $pure_color_nixdevshell_status)$IN_NIX_SHELL + + echo "$prefix$symbol" + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_ssh.fish b/Configs/fish/.config/fish/functions/_pure_prompt_ssh.fish new file mode 100644 index 0000000..ab721df --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_ssh.fish @@ -0,0 +1,5 @@ +function _pure_prompt_ssh + if test "$SSH_CONNECTION" != "" + echo "$pure_symbol_ssh_prefix"(_pure_user_at_host) + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_symbol.fish b/Configs/fish/.config/fish/functions/_pure_prompt_symbol.fish new file mode 100644 index 0000000..120dd7d --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_symbol.fish @@ -0,0 +1,20 @@ +function _pure_prompt_symbol \ + --description 'Print prompt symbol' \ + --argument-names exit_code + + set --local prompt_symbol (_pure_get_prompt_symbol) + set --local symbol_color_success (_pure_set_color $pure_color_prompt_on_success) + set --local symbol_color_error (_pure_set_color $pure_color_prompt_on_error) + set --local command_succeed 0 + + set --local symbol_color $symbol_color_success # default pure symbol color + if set --query exit_code; and test "$exit_code" -ne $command_succeed + set symbol_color $symbol_color_error # different pure symbol color when previous command failed + + if set --query pure_separate_prompt_on_error; and test "$pure_separate_prompt_on_error" = true + set symbol_color "$symbol_color_error$prompt_symbol$symbol_color_success" + end + end + + echo "$symbol_color$prompt_symbol" +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_system_time.fish b/Configs/fish/.config/fish/functions/_pure_prompt_system_time.fish new file mode 100644 index 0000000..49f134f --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_system_time.fish @@ -0,0 +1,6 @@ +function _pure_prompt_system_time --description "Display system time" + if set --query pure_show_system_time; and test "$pure_show_system_time" = true + set --local time_color (_pure_set_color $pure_color_system_time) + echo "$time_color"(date '+%T') + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_vimode.fish b/Configs/fish/.config/fish/functions/_pure_prompt_vimode.fish new file mode 100644 index 0000000..d95d806 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_vimode.fish @@ -0,0 +1,6 @@ +function _pure_prompt_vimode + if set --query pure_reverse_prompt_symbol_in_vimode; + and test "$pure_reverse_prompt_symbol_in_vimode" = false + echo (fish_default_mode_prompt) + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_prompt_virtualenv.fish b/Configs/fish/.config/fish/functions/_pure_prompt_virtualenv.fish new file mode 100644 index 0000000..7b0f3aa --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_prompt_virtualenv.fish @@ -0,0 +1,18 @@ +function _pure_prompt_virtualenv --description "Display virtualenv directory" + + if set --query pure_enable_virtualenv; + and test "$pure_enable_virtualenv" = true + + set --local virtualenv '' + set --local virtualenv_color (_pure_set_color $pure_color_virtualenv) + if test -n "$VIRTUAL_ENV" + set virtualenv (basename "$VIRTUAL_ENV") + else if test -n "$CONDA_DEFAULT_ENV" + set virtualenv (basename "$CONDA_DEFAULT_ENV") + end + + if test -n $virtualenv + echo "$pure_symbol_virtualenv_prefix$virtualenv_color$virtualenv" + end + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_set_color.fish b/Configs/fish/.config/fish/functions/_pure_set_color.fish new file mode 100644 index 0000000..c05769a --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_set_color.fish @@ -0,0 +1,19 @@ +function _pure_set_color \ + --description 'Set color' \ + --argument-names var + + set --local color $var + # Backwards compatibility for colors defined as control sequencies instead of fish colors + if not string match --quiet --all --regex '\e\[[^m]*m' $color[1] + and set -q $color + set color $$var + end + + set --local result $color + if not string match --quiet --all --regex '\e\[[^m]*m' $result[1] + and not test -z $result[1] + set result (set_color $color) + end + + echo "$result" +end diff --git a/Configs/fish/.config/fish/functions/_pure_set_default.fish b/Configs/fish/.config/fish/functions/_pure_set_default.fish new file mode 100644 index 0000000..d5c86a8 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_set_default.fish @@ -0,0 +1,11 @@ +function _pure_set_default \ + --description 'Set default value for configuration variable' \ + --argument-names var default + + set is_available_universally (not set --query --universal $var; or test -z $$var; echo $status) + set is_available_globally (not set --query --global $var; or test -z $$var; echo $status) + + if test "$is_available_universally" -eq 0 -a $is_available_globally -eq 0 + set --universal $var "$default" + end +end diff --git a/Configs/fish/.config/fish/functions/_pure_string_width.fish b/Configs/fish/.config/fish/functions/_pure_string_width.fish new file mode 100644 index 0000000..0c1957b --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_string_width.fish @@ -0,0 +1,9 @@ +function _pure_string_width \ + --description 'returns raw string length, i.e. ignore ANSI-color' \ + --argument-names prompt + + set --local empty '' + set --local raw_prompt (string replace --all --regex '\e\[[^m]*m' $empty -- $prompt) + + string length -- $raw_prompt +end diff --git a/Configs/fish/.config/fish/functions/_pure_user_at_host.fish b/Configs/fish/.config/fish/functions/_pure_user_at_host.fish new file mode 100644 index 0000000..e41cc67 --- /dev/null +++ b/Configs/fish/.config/fish/functions/_pure_user_at_host.fish @@ -0,0 +1,13 @@ +function _pure_user_at_host + set --local username (id -u -n) # current user name + set --local at_sign "@" + set --local at_sign_color (_pure_set_color $pure_color_at_sign) + set --local hostname_color (_pure_set_color $pure_color_hostname) + + set --local username_color (_pure_set_color $pure_color_username_normal) # default color + if test "$username" = root + set username_color (_pure_set_color $pure_color_username_root) # different color for root + end + + echo "$username_color$username$at_sign_color$at_sign$hostname_color$hostname" +end diff --git a/Configs/fish/.config/fish/functions/fish_greeting.fish b/Configs/fish/.config/fish/functions/fish_greeting.fish new file mode 100644 index 0000000..878b30e --- /dev/null +++ b/Configs/fish/.config/fish/functions/fish_greeting.fish @@ -0,0 +1,3 @@ +function fish_greeting + _pure_check_for_new_release +end diff --git a/Configs/fish/.config/fish/functions/fish_mode_prompt.fish b/Configs/fish/.config/fish/functions/fish_mode_prompt.fish new file mode 100644 index 0000000..428a658 --- /dev/null +++ b/Configs/fish/.config/fish/functions/fish_mode_prompt.fish @@ -0,0 +1,2 @@ +function fish_mode_prompt +end diff --git a/Configs/fish/.config/fish/functions/fish_prompt.fish b/Configs/fish/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..0b21436 --- /dev/null +++ b/Configs/fish/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,11 @@ +# a called to `_pure_prompt_new_line` is triggered by an event +function fish_prompt + set --local exit_code $status # save previous exit code + + _pure_print_prompt_rows # manage default vs. compact prompt + _pure_place_iterm2_prompt_mark # place iTerm shell integration mark + echo -e -n (_pure_prompt $exit_code) # print prompt + echo -e (_pure_prompt_ending) # reset colors and end prompt + + set _pure_fresh_session false +end diff --git a/Configs/fish/.config/fish/functions/fish_title.fish b/Configs/fish/.config/fish/functions/fish_title.fish new file mode 100644 index 0000000..859f630 --- /dev/null +++ b/Configs/fish/.config/fish/functions/fish_title.fish @@ -0,0 +1,15 @@ +function fish_title \ + --description "Set title to current folder and shell name" \ + --argument-names last_command + + set --local current_folder (fish_prompt_pwd_dir_length=$pure_shorten_window_title_current_directory_length prompt_pwd) + set --local current_command (status current-command 2>/dev/null; or echo $_)[1] # we use index to ignore extraneous item, see #360 + + set --local prompt "$current_folder: $last_command $pure_symbol_title_bar_separator $current_command" + + if test -z "$last_command" + set prompt "$current_folder $pure_symbol_title_bar_separator $current_command" + end + + echo $prompt +end diff --git a/Configs/fish/.config/fish/functions/fisher.fish b/Configs/fish/.config/fish/functions/fisher.fish new file mode 100644 index 0000000..e915cb8 --- /dev/null +++ b/Configs/fish/.config/fish/functions/fisher.fish @@ -0,0 +1,240 @@ +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.5 + set --local fish_plugins $__fish_config_dir/fish_plugins + + switch "$cmd" + case -v --version + echo "fisher, version $fisher_version" + case "" -h --help + echo "Usage: fisher install Install plugins" + echo " fisher remove Remove installed plugins" + echo " fisher update Update installed plugins" + echo " fisher update Update all installed plugins" + echo " fisher list [] List installed plugins matching regex" + echo "Options:" + echo " -v, --version Print version" + echo " -h, --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 | string replace -- \~ ~) + + 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 + + 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 + + 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 plugin in $old_plugins + contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin + end + end + + set --local pid_list + set --local source_plugins + set --local fetch_plugins $update_plugins $install_plugins + set --local fish_path (status fish-path) + + echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal) + + for plugin in $fetch_plugins + set --local source (command mktemp -d) + set --append source_plugins $source + + command mkdir -p $source/{completions,conf.d,themes,functions} + + $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 + + 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 + + echo Fetching (set_color --underline)\$url(set_color normal) + + if command curl -q --silent -L \$url | command 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 + + command rm -rf \$temp + end + + set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files + " & + + set --append pid_list (jobs --last --pid) + end + + wait $pid_list 2>/dev/null + + 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 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 + + 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 + + command rm -rf (string replace -- \~ ~ $$plugin_files_var) + + functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var) + + for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var) + complete --erase --command $name + end + + set --erase $plugin_files_var + end + end + + if set --query update_plugins[1] || set --query install_plugins[1] + command mkdir -p $fisher_path/{functions,themes,conf.d,completions} + end + + 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}/* + + if set --local index (contains --index -- $plugin $install_plugins) + set --local user_files $fisher_path/{functions,themes,conf.d,completions}/* + set --local conflict_files + + for file in (string replace -- $source/ $fisher_path/ $files) + contains -- $file $user_files && set --append conflict_files $file + end + + 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 + + for file in (string replace -- $source/ "" $files) + command cp -RLf $source/$file $fisher_path/$file + end + + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + 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 + + 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 + + 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 + + for plugin in $_fisher_plugins + contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin + end + + string replace --regex -- $HOME \~ $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) + + 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 \* + 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/Configs/fish/.config/fish/functions/la.fish b/Configs/fish/.config/fish/functions/la.fish new file mode 100644 index 0000000..dfabd9a --- /dev/null +++ b/Configs/fish/.config/fish/functions/la.fish @@ -0,0 +1,4 @@ +function la --wraps='eza -lah --color=always --icons --git' --description 'alias la=eza -lah --color=always --icons --git' + eza -lah --color=always --icons --git $argv + +end diff --git a/Configs/fish/.config/fish/functions/ld.fish b/Configs/fish/.config/fish/functions/ld.fish new file mode 100644 index 0000000..8c3cf0e --- /dev/null +++ b/Configs/fish/.config/fish/functions/ld.fish @@ -0,0 +1,4 @@ +function ld --wraps='eza -la --no-permissions --no-filesize --no-time --no-time --no-user' --description 'alias ld=eza -la --no-permissions --no-filesize --no-time --no-time --no-user' + eza -la --no-permissions --no-filesize --no-time --no-time --no-user $argv + +end diff --git a/Configs/fish/.config/fish/functions/ls.fish b/Configs/fish/.config/fish/functions/ls.fish new file mode 100644 index 0000000..75680bf --- /dev/null +++ b/Configs/fish/.config/fish/functions/ls.fish @@ -0,0 +1,4 @@ +function ls --wraps='eza -lh --color=always --icons --git' --description 'alias ls=eza -lh --color=always --icons --git' + eza -lh --color=always --icons --git $argv + +end diff --git a/Configs/fish/.config/fish/themes/Catppuccin Frappe.theme b/Configs/fish/.config/fish/themes/Catppuccin Frappe.theme new file mode 100644 index 0000000..b4c1994 --- /dev/null +++ b/Configs/fish/.config/fish/themes/Catppuccin Frappe.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin FrappΓ©' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: 303446 + +fish_color_normal c6d0f5 +fish_color_command 8caaee +fish_color_param eebebe +fish_color_keyword e78284 +fish_color_quote a6d189 +fish_color_redirection f4b8e4 +fish_color_end ef9f76 +fish_color_comment 838ba7 +fish_color_error e78284 +fish_color_gray 737994 +fish_color_selection --background=414559 +fish_color_search_match --background=414559 +fish_color_option a6d189 +fish_color_operator f4b8e4 +fish_color_escape ea999c +fish_color_autosuggestion 737994 +fish_color_cancel e78284 +fish_color_cwd e5c890 +fish_color_user 81c8be +fish_color_host 8caaee +fish_color_host_remote a6d189 +fish_color_status e78284 +fish_pager_color_progress 737994 +fish_pager_color_prefix f4b8e4 +fish_pager_color_completion c6d0f5 +fish_pager_color_description 737994 \ No newline at end of file diff --git a/Configs/fish/.config/fish/themes/Catppuccin Latte.theme b/Configs/fish/.config/fish/themes/Catppuccin Latte.theme new file mode 100644 index 0000000..002dace --- /dev/null +++ b/Configs/fish/.config/fish/themes/Catppuccin Latte.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin Latte' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: eff1f5 + +fish_color_normal 4c4f69 +fish_color_command 1e66f5 +fish_color_param dd7878 +fish_color_keyword d20f39 +fish_color_quote 40a02b +fish_color_redirection ea76cb +fish_color_end fe640b +fish_color_comment 8c8fa1 +fish_color_error d20f39 +fish_color_gray 9ca0b0 +fish_color_selection --background=ccd0da +fish_color_search_match --background=ccd0da +fish_color_option 40a02b +fish_color_operator ea76cb +fish_color_escape e64553 +fish_color_autosuggestion 9ca0b0 +fish_color_cancel d20f39 +fish_color_cwd df8e1d +fish_color_user 179299 +fish_color_host 1e66f5 +fish_color_host_remote 40a02b +fish_color_status d20f39 +fish_pager_color_progress 9ca0b0 +fish_pager_color_prefix ea76cb +fish_pager_color_completion 4c4f69 +fish_pager_color_description 9ca0b0 \ No newline at end of file diff --git a/Configs/fish/.config/fish/themes/Catppuccin Macchiato.theme b/Configs/fish/.config/fish/themes/Catppuccin Macchiato.theme new file mode 100644 index 0000000..c8be912 --- /dev/null +++ b/Configs/fish/.config/fish/themes/Catppuccin Macchiato.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin Macchiato' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: 24273a + +fish_color_normal cad3f5 +fish_color_command 8aadf4 +fish_color_param f0c6c6 +fish_color_keyword ed8796 +fish_color_quote a6da95 +fish_color_redirection f5bde6 +fish_color_end f5a97f +fish_color_comment 8087a2 +fish_color_error ed8796 +fish_color_gray 6e738d +fish_color_selection --background=363a4f +fish_color_search_match --background=363a4f +fish_color_option a6da95 +fish_color_operator f5bde6 +fish_color_escape ee99a0 +fish_color_autosuggestion 6e738d +fish_color_cancel ed8796 +fish_color_cwd eed49f +fish_color_user 8bd5ca +fish_color_host 8aadf4 +fish_color_host_remote a6da95 +fish_color_status ed8796 +fish_pager_color_progress 6e738d +fish_pager_color_prefix f5bde6 +fish_pager_color_completion cad3f5 +fish_pager_color_description 6e738d \ No newline at end of file diff --git a/Configs/fish/.config/fish/themes/Catppuccin Mocha.theme b/Configs/fish/.config/fish/themes/Catppuccin Mocha.theme new file mode 100644 index 0000000..892a000 --- /dev/null +++ b/Configs/fish/.config/fish/themes/Catppuccin Mocha.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin Mocha' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: 1e1e2e + +fish_color_normal cdd6f4 +fish_color_command 89b4fa +fish_color_param f2cdcd +fish_color_keyword f38ba8 +fish_color_quote a6e3a1 +fish_color_redirection f5c2e7 +fish_color_end fab387 +fish_color_comment 7f849c +fish_color_error f38ba8 +fish_color_gray 6c7086 +fish_color_selection --background=313244 +fish_color_search_match --background=313244 +fish_color_option a6e3a1 +fish_color_operator f5c2e7 +fish_color_escape eba0ac +fish_color_autosuggestion 6c7086 +fish_color_cancel f38ba8 +fish_color_cwd f9e2af +fish_color_user 94e2d5 +fish_color_host 89b4fa +fish_color_host_remote a6e3a1 +fish_color_status f38ba8 +fish_pager_color_progress 6c7086 +fish_pager_color_prefix f5c2e7 +fish_pager_color_completion cdd6f4 +fish_pager_color_description 6c7086 \ No newline at end of file diff --git a/Configs/zsh/.zshrc b/Configs/zsh/.zshrc index ed402e2..99c0248 100644 --- a/Configs/zsh/.zshrc +++ b/Configs/zsh/.zshrc @@ -79,4 +79,10 @@ zinit cdreplay -q # β”‚ Init external programs β”‚ # ╰──────────────────────────────────────────────────────────╯ -eval "$(zoxide init --cmd cd zsh)" +# eval "$(zoxide init --cmd cd zsh)" + +# Drop into fish +if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then + # shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION='' + exec fish $LOGIN_OPTION +fi