From ddbfed1dd98b0dfbb11afd02f02f14327392382c Mon Sep 17 00:00:00 2001 From: Ismo Vuorinen Date: Wed, 4 Feb 2026 01:17:37 +0200 Subject: [PATCH] chore(fish): update fisher, plugins, and Catppuccin themes Update fisher to v4.4.8 with uninstall alias and rate limit handling. Add catppuccin/fish plugin, consolidate Latte theme into Mocha as light/dark variants, and add Frappe and Macchiato themes. Set Catppuccin Mocha as the default theme in config. --- config/fish/config.fish | 2 + config/fish/fish_plugins | 3 +- config/fish/functions/fisher.fish | 27 +++++--- config/fish/themes/Catppuccin Frappe.theme | 61 +++++++++++++++++++ config/fish/themes/Catppuccin Latte.theme | 30 --------- config/fish/themes/Catppuccin Macchiato.theme | 61 +++++++++++++++++++ config/fish/themes/Catppuccin Mocha.theme | 35 ++++++++++- 7 files changed, 178 insertions(+), 41 deletions(-) create mode 100644 config/fish/themes/Catppuccin Frappe.theme delete mode 100644 config/fish/themes/Catppuccin Latte.theme create mode 100644 config/fish/themes/Catppuccin Macchiato.theme diff --git a/config/fish/config.fish b/config/fish/config.fish index 16c4301..5316197 100644 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -2,6 +2,8 @@ # │ fish/config.fish │ # ╰──────────────────────────────────────────────────────────╯ +fish_config theme choose "Catppuccin Mocha" + test -e "$HOME/.config/fish/alias.fish" && source "$HOME/.config/fish/alias.fish" diff --git a/config/fish/fish_plugins b/config/fish/fish_plugins index ff4f233..fa94a69 100644 --- a/config/fish/fish_plugins +++ b/config/fish/fish_plugins @@ -1,4 +1,5 @@ jorgebucaran/fisher -ilancosman/tide@v6 jethrokuan/z ivuorinen/phpenv.fish +ilancosman/tide@v6 +catppuccin/fish diff --git a/config/fish/functions/fisher.fish b/config/fish/functions/fisher.fish index e915cb8..4f5be4f 100644 --- a/config/fish/functions/fisher.fish +++ b/config/fish/functions/fisher.fish @@ -1,17 +1,18 @@ 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 fisher_version 4.4.8 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 "Usage: fisher install Install plugins" + echo " fisher remove Remove installed plugins" + echo " fisher uninstall Remove installed plugins (alias)" + 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" @@ -19,9 +20,11 @@ function fisher --argument-names cmd --description "A plugin manager for Fish" 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 + case install update remove uninstall isatty || read --local --null --array stdin && set --append argv $stdin + test "$cmd" = uninstall && set cmd remove + set --local install_plugins set --local update_plugins set --local remove_plugins @@ -38,6 +41,8 @@ function fisher --argument-names cmd --description "A plugin manager for Fish" echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1 end set arg_plugins $file_plugins + else if test "$cmd" = install && ! set --query old_plugins[1] + set --append arg_plugins $file_plugins end for plugin in $arg_plugins @@ -86,6 +91,7 @@ function fisher --argument-names cmd --description "A plugin manager for Fish" if test -e $plugin command cp -Rf $plugin/* $source else + set resp (command mktemp) set temp (command mktemp -d) set repo (string split -- \@ $plugin) || set repo[2] HEAD @@ -98,8 +104,13 @@ function fisher --argument-names cmd --description "A plugin manager for Fish" echo Fetching (set_color --underline)\$url(set_color normal) - if command curl -q --silent -L \$url | command tar -xzC \$temp -f - 2>/dev/null + set http (command curl -q --silent -L -o \$resp -w %{http_code} \$url) + + if test \"\$http\" = 200 && command tar -xzC \$temp -f \$resp 2>/dev/null command cp -Rf \$temp/*/* $source + else if test \"\$http\" = 403 + echo fisher: GitHub API rate limit exceeded \(HTTP 403\) >&2 + command rm -rf $source else echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2 command rm -rf $source diff --git a/config/fish/themes/Catppuccin Frappe.theme b/config/fish/themes/Catppuccin Frappe.theme new file mode 100644 index 0000000..c0a0fec --- /dev/null +++ b/config/fish/themes/Catppuccin Frappe.theme @@ -0,0 +1,61 @@ +# name: 'Catppuccin Frappé' +# url: 'https://github.com/catppuccin/fish' + +[light] +# preferred_background: eff1f5 +fish_color_normal 4c4f69 +fish_color_command 1e66f5 +fish_color_param dd7878 +fish_color_keyword 8839ef +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 + +[dark] +# preferred_background: 303446 +fish_color_normal c6d0f5 +fish_color_command 8caaee +fish_color_param eebebe +fish_color_keyword ca9ee6 +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 + diff --git a/config/fish/themes/Catppuccin Latte.theme b/config/fish/themes/Catppuccin Latte.theme deleted file mode 100644 index 1c0ec74..0000000 --- a/config/fish/themes/Catppuccin Latte.theme +++ /dev/null @@ -1,30 +0,0 @@ -# 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 diff --git a/config/fish/themes/Catppuccin Macchiato.theme b/config/fish/themes/Catppuccin Macchiato.theme new file mode 100644 index 0000000..db9dd03 --- /dev/null +++ b/config/fish/themes/Catppuccin Macchiato.theme @@ -0,0 +1,61 @@ +# name: 'Catppuccin Macchiato' +# url: 'https://github.com/catppuccin/fish' + +[light] +# preferred_background: eff1f5 +fish_color_normal 4c4f69 +fish_color_command 1e66f5 +fish_color_param dd7878 +fish_color_keyword 8839ef +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 + +[dark] +# preferred_background: 24273a +fish_color_normal cad3f5 +fish_color_command 8aadf4 +fish_color_param f0c6c6 +fish_color_keyword c6a0f6 +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 + diff --git a/config/fish/themes/Catppuccin Mocha.theme b/config/fish/themes/Catppuccin Mocha.theme index b1fe2b8..9611c09 100644 --- a/config/fish/themes/Catppuccin Mocha.theme +++ b/config/fish/themes/Catppuccin Mocha.theme @@ -1,11 +1,41 @@ # name: 'Catppuccin Mocha' # url: 'https://github.com/catppuccin/fish' -# preferred_background: 1e1e2e +[light] +# preferred_background: eff1f5 +fish_color_normal 4c4f69 +fish_color_command 1e66f5 +fish_color_param dd7878 +fish_color_keyword 8839ef +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 + +[dark] +# preferred_background: 1e1e2e fish_color_normal cdd6f4 fish_color_command 89b4fa fish_color_param f2cdcd -fish_color_keyword f38ba8 +fish_color_keyword cba6f7 fish_color_quote a6e3a1 fish_color_redirection f5c2e7 fish_color_end fab387 @@ -28,3 +58,4 @@ fish_pager_color_progress 6c7086 fish_pager_color_prefix f5c2e7 fish_pager_color_completion cdd6f4 fish_pager_color_description 6c7086 +