From 85f45a9e8a4b123895bf8dbc0b906a77d02fb03e Mon Sep 17 00:00:00 2001 From: rootiest Date: Thu, 30 Apr 2026 23:32:37 -0400 Subject: [PATCH 1/2] refactor: properly alias cb to y Instead of re-defining the same behavior, just write `cb` into the y.fish function file as an alias for y --- functions/cb.fish | 22 ---------------------- functions/y.fish | 5 +++++ 2 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 functions/cb.fish diff --git a/functions/cb.fish b/functions/cb.fish deleted file mode 100644 index 35b721b..0000000 --- a/functions/cb.fish +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (C) 2026 Rootiest -# SPDX-License-Identifier: AGPL-3.0-or-later - -# Copy to clipboard -function cb --description 'Copy to clipboard' - if type -q wl-copy - if set -q argv[1] - echo $argv | wl-copy - else - wl-copy - end - else if type -q xclip - if set -q argv[1] - echo $argv | xclip -selection clipboard - else - xclip -selection clipboard - end - else - echo "Error: No clipboard provider found." >&2 - return 1 - end -end diff --git a/functions/y.fish b/functions/y.fish index e2a11f8..1abd133 100644 --- a/functions/y.fish +++ b/functions/y.fish @@ -35,3 +35,8 @@ function y --description 'Yank to clipboard' eval $copy_cmd end end + +# Alias cb=y +function cb --wraps='y' --description 'Alias cb=y' + y $argv +end \ No newline at end of file -- 2.52.0 From bb681afa956f8eff1006a4c4196bfa5273322f53 Mon Sep 17 00:00:00 2001 From: rootiest Date: Thu, 30 Apr 2026 23:33:00 -0400 Subject: [PATCH 2/2] fix: ensure the split function handles other terminal emulators correctly --- functions/split.fish | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/functions/split.fish b/functions/split.fish index 769e191..1d6b76a 100644 --- a/functions/split.fish +++ b/functions/split.fish @@ -1,28 +1,45 @@ # Copyright (C) 2026 Rootiest # SPDX-License-Identifier: AGPL-3.0-or-later -# Run a command in a new Kitty split -function split --description 'Run a command in a new Kitty split' - if test "$TERM" != xterm-kitty - echo "Error: The 'split' command requires Kitty terminal." >&2 +# Run a command in a new terminal split +function split --description 'Run a command in a new terminal split' + set -l is_kitty 0 + set -l is_wezterm 0 + + if test "$TERM" = xterm-kitty + set is_kitty 1 + else if test "$TERM_PROGRAM" = WezTerm + set is_wezterm 1 + else + echo "Error: The 'split' command requires Kitty or WezTerm terminal." >&2 return 1 end - set -l location hsplit + set -l kitty_loc hsplit + set -l wez_loc --bottom switch $argv[1] case -h --horizontal - set location hsplit + set kitty_loc hsplit + set wez_loc --bottom set -e argv[1] case -v --vertical - set location vsplit + set kitty_loc vsplit + set wez_loc --right set -e argv[1] end if test (count $argv) -gt 0 - # Set HIDE_GREETING=1 before fish starts - kitty @ launch --location=$location --cwd=$PWD env HIDE_GREETING=1 fish -c "$argv; exec fish" + if test $is_kitty -eq 1 + kitty @ launch --location=$kitty_loc --cwd=$PWD env HIDE_GREETING=1 fish -c "$argv; exec fish" + else if test $is_wezterm -eq 1 + wezterm cli split-pane $wez_loc --cwd $PWD -- env HIDE_GREETING=1 fish -c "$argv; exec fish" >/dev/null + end else - kitty @ launch --location=$location --cwd=$PWD env HIDE_GREETING=1 fish -c "exec fish" + if test $is_kitty -eq 1 + kitty @ launch --location=$kitty_loc --cwd=$PWD env HIDE_GREETING=1 fish -c "exec fish" + else if test $is_wezterm -eq 1 + wezterm cli split-pane $wez_loc --cwd $PWD -- env HIDE_GREETING=1 fish -c "exec fish" >/dev/null + end end end -- 2.52.0