refactor(functions): standardize documentation, metadata, and wrappers #6
@@ -1,3 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Inserts the directory path (dirname) of the last argument from the previous command
|
||||
function __insert_previous_path_head
|
||||
# Get the last command tokens
|
||||
set -l tokens (string split -n " " -- $history[1])
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Provides interactive history substitution using old/new pattern or sudo fallback
|
||||
function __interactive_history_sub
|
||||
set -l current_line (commandline -b)
|
||||
set -l last_cmd $history[1]
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Substitutes text in the command line using the ^old^new pattern from the previous command
|
||||
function __substitute_typo
|
||||
set -l cursor_pos (commandline -C)
|
||||
set -l cmd (commandline)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Removes the first token from the command line and places the cursor at the start
|
||||
function _replace_command_token --description 'Remove first token from commandline and place cursor at start'
|
||||
set -l cmd (commandline)
|
||||
set -l rest (string replace -r '^\S+' '' -- $cmd)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function antigravity
|
||||
# alias antigravity=antigravity
|
||||
function antigravity --wraps='antigravity' --description 'alias antigravity=antigravity'
|
||||
# In fish, we pipe stderr using '2>|' to another command
|
||||
command antigravity $argv 2>| grep -v "'app' is not in the list of known options" >&2
|
||||
end
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function bash --wraps=bash --description 'bash switches to bash shell'
|
||||
# bash switches to bash shell
|
||||
function bash --wraps='bash' --description 'bash switches to bash shell'
|
||||
set SHELL $(which bash) # Set shell to bash
|
||||
command bash $argv # run bash
|
||||
set SHELL $(which fish) # Reset shell
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function bd-pull -d "Pull new Gitea issues into local Beads and link them"
|
||||
# Pull new Gitea issues into local Beads and link them
|
||||
function bd-pull --description 'Pull new Gitea issues into local Beads and link them'
|
||||
if not set -q argv[1]; echo "Need repo owner/name"; return 1; end
|
||||
if not set -q GITEA_TOKEN; echo "\$GITEA_TOKEN not set"; return 1; end
|
||||
|
||||
set -l REPO $argv[1]
|
||||
set -l GITEA_URL "https://git.rootiest.dev"
|
||||
if not set -q GITEA_URL; echo "\$GITEA_URL not set"; return 1; end
|
||||
set -l IMPORT_COUNT 0
|
||||
|
||||
echo (set_color blue)"📡 Checking Gitea: $REPO..."(set_color normal)
|
||||
|
||||
+2
-1
@@ -12,7 +12,8 @@
|
||||
# bkg firefox
|
||||
# bkg code .
|
||||
#
|
||||
function bkg
|
||||
# Execute bkg
|
||||
function bkg --description 'Execute bkg'
|
||||
# Check if a command was provided as an argument.
|
||||
if test -z "$argv[1]"
|
||||
echo "Usage: bkg <command> [arguments...]"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Switch to or create a git branch
|
||||
function branch --description 'Switch to or create a git branch'
|
||||
if not git rev-parse --is-inside-work-tree >/dev/null 2>&1
|
||||
echo "Not a git repo."
|
||||
|
||||
+7
-2
@@ -1,6 +1,11 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function cat --wraps=bat --description 'alias cat=bat'
|
||||
bat --plain --no-pager $argv
|
||||
# alias cat=bat
|
||||
function cat --wraps='bat' --description 'alias cat=bat'
|
||||
if type -q bat
|
||||
bat --plain --no-pager $argv
|
||||
else
|
||||
command cat $argv
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# 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]
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function cffetch --wraps='clear;fastfetch' --description 'alias cffetch=clear;fastfetch'
|
||||
# alias cffetch=clear;fastfetch
|
||||
function cffetch --description 'alias cffetch=clear;fastfetch'
|
||||
clear
|
||||
if which fastfetch >/dev/null 2>&1
|
||||
if ls ~/.fastfetch.jsonc >/dev/null 2>&1
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function cheat --description 'alias cheat=cheat -c'
|
||||
command cheat -c $argv
|
||||
# alias cheat=cheat -c
|
||||
function cheat --wraps='cheat' --description 'alias cheat=cheat -c'
|
||||
if type -q cheat
|
||||
command cheat -c $argv
|
||||
else if type -q tldr
|
||||
tldr $argv
|
||||
else
|
||||
man $argv
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function check_fish_deps --description "Check all fish-related dependencies"
|
||||
# Check all fish-related dependencies
|
||||
function check_fish_deps --description 'Check all fish-related dependencies'
|
||||
set -l required fish fisher starship fzf zoxide direnv paru
|
||||
set -l integrations wakatime tailscale
|
||||
set -l recommended eza lsd bat btop dust duf prettyping most rg lazygit lazydocker trash kitty wezterm
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function claude-resume
|
||||
# Execute claude-resume
|
||||
function claude-resume --description 'Execute claude-resume'
|
||||
if not type -q claude
|
||||
echo "Error: The 'claude' command is not installed or not in PATH." >&2
|
||||
return 1
|
||||
end
|
||||
if not type -q save_claude_session
|
||||
echo "Error: The companion function 'save_claude_session' is missing." >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
if test -f .claude_session
|
||||
set -l sid (cat .claude_session)
|
||||
claude --resume $sid
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function cleanup -d "Log orphans to ~/.removed_orphans and remove them"
|
||||
# Log orphans to ~/.removed_orphans and remove them
|
||||
function cleanup --description 'Log orphans to ~/.removed_orphans and remove them'
|
||||
set -l orphans (pacman -Qtdq)
|
||||
if test -n "$orphans"
|
||||
echo "📝 Logging orphans to ~/.removed_orphans..."
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function clone --wraps=clone-in-kitty --description 'alias clone=clone-in-kitty'
|
||||
# alias clone=clone-in-kitty
|
||||
function clone --wraps='clone-in-kitty' --description 'alias clone=clone-in-kitty'
|
||||
if test "$TERM" != xterm-kitty
|
||||
echo "Error: The 'clone' command requires Kitty terminal." >&2
|
||||
return 1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# alias clonet=clone-in-kitty --type=tab
|
||||
function clonet --wraps='clone-in-kitty --type=tab' --description 'alias clonet=clone-in-kitty --type=tab'
|
||||
if test "$TERM" != xterm-kitty
|
||||
echo "Error: The 'clonet' command requires Kitty terminal." >&2
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function code-resume
|
||||
# Execute code-resume
|
||||
function code-resume --description 'Execute code-resume'
|
||||
if test -f .claude_session
|
||||
set -l sid (cat .claude_session)
|
||||
echo "Resuming Claude session: $sid"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function detach
|
||||
# Execute detach
|
||||
function detach --description 'Execute detach'
|
||||
set -l show_help 0
|
||||
set -l args
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Convert DNG raw to 10-bit HDR AVIF
|
||||
function dng2avif --description 'Convert DNG raw to 10-bit HDR AVIF'
|
||||
set -l options (fish_opt -s h -l help)
|
||||
set -a options (fish_opt -s i -l input -r)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Pull and restart docker compose containers
|
||||
function dockup --description 'Pull and restart docker compose containers'
|
||||
# Define colors
|
||||
set -l clr_error (set_color red)
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function docker
|
||||
# Execute docker
|
||||
function docker --description 'Execute docker'
|
||||
if test -n "$argv[1]"
|
||||
switch $argv[1]
|
||||
case ps
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function du
|
||||
# Execute du
|
||||
function du --description 'Execute du'
|
||||
set cmd ""
|
||||
set args
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function dusize
|
||||
# alias dusize=du
|
||||
function dusize --wraps='du' --description 'alias dusize=du'
|
||||
du -sh (test -n "$argv[1]"; and echo $argv[1]; or echo .)
|
||||
end
|
||||
|
||||
+11
-2
@@ -1,6 +1,15 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function edit --wraps=nvim --description 'alias edit=nvim'
|
||||
nvim $argv
|
||||
# alias edit=nvim
|
||||
function edit --wraps='nvim' --description 'alias edit=nvim'
|
||||
if type -q nvim
|
||||
nvim $argv
|
||||
else if set -q EDITOR
|
||||
$EDITOR $argv
|
||||
else if type -q nano
|
||||
nano $argv
|
||||
else
|
||||
vi $argv
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_bang_all
|
||||
# Execute expand_bang_all
|
||||
function expand_bang_all --description 'Execute expand_bang_all'
|
||||
set -l token $argv[1]
|
||||
if test -z "$token"; set token (commandline -t); end
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_bang_caret
|
||||
# Execute expand_bang_caret
|
||||
function expand_bang_caret --description 'Execute expand_bang_caret'
|
||||
# Split the last history item into a list
|
||||
set -l tokens (string split -n ' ' -- $history[1])
|
||||
# tokens[1] is the command, tokens[2] is the first argument
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_bang_minus_n
|
||||
# Execute expand_bang_minus_n
|
||||
function expand_bang_minus_n --description 'Execute expand_bang_minus_n'
|
||||
set -l token $argv[1]
|
||||
if test -z "$token"; set token (commandline -t); end
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_bang_search
|
||||
# Execute expand_bang_search
|
||||
function expand_bang_search --description 'Execute expand_bang_search'
|
||||
set -l token $argv[1]
|
||||
if test -z "$token"
|
||||
set token (commandline -t)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_bang_string
|
||||
# Execute expand_bang_string
|
||||
function expand_bang_string --description 'Execute expand_bang_string'
|
||||
# Fish 4.x passes the matched token as argv[1]
|
||||
set -l token $argv[1]
|
||||
if test -z "$token"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
function expand_typo_sub
|
||||
# Execute expand_typo_sub
|
||||
function expand_typo_sub --description 'Execute expand_typo_sub'
|
||||
# In newer Fish, the matched token is often passed as $argv[1]
|
||||
# if the abbr is set up correctly. We'll fallback to commandline just in case.
|
||||
set -l last_cmd $history[1]
|
||||
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
function fc --description "Edit and execute the last command (Bash-style fc)"
|
||||
# Edit and execute the last command (Bash-style fc)
|
||||
function fc --description 'Edit and execute the last command (Bash-style fc)'
|
||||
set -l tmpfile (mktemp /tmp/fish_fc.XXXXXX).fish
|
||||
|
||||
if count $argv >/dev/null
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# alias ffetch=fastfetch
|
||||
function ffetch --wraps='fastfetch' --description 'alias ffetch=fastfetch'
|
||||
if which fastfetch >/dev/null 2>&1
|
||||
if ls ~/.fastfetch.jsonc >/dev/null 2>&1
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function fish_right_prompt
|
||||
# Execute fish_right_prompt
|
||||
function fish_right_prompt --description 'Execute fish_right_prompt'
|
||||
# 1. Docker Context in Blue
|
||||
set -l docker_ctx (docker context show 2>/dev/null)
|
||||
if test -n "$docker_ctx"; and test "$docker_ctx" != default
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function gemini-resume
|
||||
# Execute gemini-resume
|
||||
function gemini-resume --description 'Execute gemini-resume'
|
||||
if not type -q gemini-cli
|
||||
echo "Error: The 'gemini-cli' command is not installed or not in PATH." >&2
|
||||
return 1
|
||||
end
|
||||
if not type -q save_gemini_session
|
||||
echo "Error: The companion function 'save_gemini_session' is missing." >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
if test -f .gemini_session
|
||||
set -l sid (cat .gemini_session)
|
||||
# Use --resume (or -r) to jump back in
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function get-color --wraps='/home/rootiest/scripts/hex2rgb.sh "$(wl-colorpicker-plasma)"' --description 'alias get-color=/home/rootiest/scripts/hex2rgb.sh "$(wl-colorpicker-plasma)"'
|
||||
/home/rootiest/scripts/hex2rgb.sh "$(wl-colorpicker-plasma)" $argv
|
||||
|
||||
end
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
function gi --description "Generate .gitignore files using the gitignore.io API"
|
||||
# Generate .gitignore files using the gitignore.io API
|
||||
function gi --description 'Generate .gitignore files using the gitignore.io API'
|
||||
# Define the flags
|
||||
argparse h/help d/description l/list -- $argv
|
||||
or return 1
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function gip -d "Show all public IP addresses"
|
||||
# Show all public IP addresses
|
||||
function gip --description 'Show all public IP addresses'
|
||||
echo -n "IPv4: "
|
||||
curl -4 -s --max-time 2 https://icanhazip.com || echo "Not detected"
|
||||
echo -n "IPv6: "
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function gip4 -d "Get public IPv4 address"
|
||||
# Get public IPv4 address
|
||||
function gip4 --wraps='curl' --description 'Get public IPv4 address'
|
||||
curl -4 -s https://icanhazip.com
|
||||
end
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function gip6 -d "Get public IPv6 address"
|
||||
# Get public IPv6 address
|
||||
function gip6 --description 'Get public IPv6 address'
|
||||
# Use -6 to force IPv6 and --fail to catch network errors
|
||||
set -l ip (curl -6 -s --fail https://icanhazip.com 2>/dev/null)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Sync main, prune remotes, and delete orphaned branches
|
||||
function git-clean --description 'Sync main, prune remotes, and delete orphaned branches'
|
||||
set -l options h/help f/force
|
||||
argparse $options -- $argv
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function gitui --description 'alias gitui=gitui -t mocha.ron'
|
||||
# alias gitui=gitui -t mocha.ron
|
||||
function gitui --wraps='gitui' --description 'alias gitui=gitui -t mocha.ron'
|
||||
command gitui -t frappe.ron $argv
|
||||
|
||||
end
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Fetch updates and show git status
|
||||
function gitup --description 'Fetch updates and show git status'
|
||||
# Check if we are even in a git repository
|
||||
if not git rev-parse --is-inside-work-tree >/dev/null 2>&1
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function hist -d "Search fish history and put it in the prompt"
|
||||
# Search fish history and put it in the prompt
|
||||
function hist --description 'Search fish history and put it in the prompt'
|
||||
set -l selected (history | fzf --reverse --height 40% --with-nth 3..)
|
||||
|
||||
if test -n "$selected"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# List directories only
|
||||
function lD --description 'List directories only'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --only-dirs --long --icons --color=auto --hyperlink $argv
|
||||
|
||||
+2
-1
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function less --wraps=most --description 'alias less=most'
|
||||
# alias less=most
|
||||
function less --wraps='most' --description 'alias less=most'
|
||||
if which most >/dev/null 2>&1
|
||||
most $argv
|
||||
else
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Safely edit and re-verify Limine configuration
|
||||
function limine-edit --description 'Safely edit and re-verify Limine configuration'
|
||||
# 1. Open the config with sudoedit
|
||||
sudoedit /boot/limine.conf
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function lock
|
||||
# alias lock=loginctl
|
||||
function lock --wraps='loginctl' --description 'alias lock=loginctl'
|
||||
loginctl lock-session
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# List all files
|
||||
function ls --description 'List all files'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza -l -a --icons --color=auto --hyperlink $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Reversed time-sorted listing
|
||||
function lsr --description 'Reversed time-sorted listing'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --oneline --sort=modified --reverse --icons --color=auto --hyperlink $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Size-sorted listing
|
||||
function lss --description 'Size-sorted listing'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --oneline --long --all --sort=size --icons --color=auto --hyperlink --color-scale=size --color-scale-mode=gradient $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Full recursive tree listing
|
||||
function lstree --description 'Full recursive tree listing'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --tree --icons --color=auto --hyperlink $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Tree listing, depth 2
|
||||
function lt --description 'Tree listing, depth 2'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --tree --level=2 --icons --color=auto --hyperlink $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Reversed time-sorted listing
|
||||
function ltr --description 'Reversed time-sorted listing'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --long --all --sort=modified --icons --hyperlink --color=auto --color-scale=age --color-scale-mode=gradient $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Extension-sorted listing
|
||||
function lx --description 'Extension-sorted listing'
|
||||
if which eza >/dev/null 2>&1
|
||||
eza --long --all --sort=extension --icons --color=auto --hyperlink $argv
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function mkdir
|
||||
# Execute mkdir
|
||||
function mkdir --description 'Execute mkdir'
|
||||
if status is-interactive
|
||||
command mkdir -p $argv
|
||||
else
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function monitors
|
||||
# 0. Capture the ID of the pane we are starting in (Top-Left)
|
||||
set local_id $KITTY_WINDOW_ID
|
||||
|
||||
# Define remote commands
|
||||
set racknerd_cmd "ssh -t racknerd btop"
|
||||
set server_cmd "ssh -t rootiest-server btop"
|
||||
set mini_cmd "ssh -t racknerd-mini btop"
|
||||
|
||||
# 1. Split vertically from Top-Left to create Top-Right (RackNerd)
|
||||
set rack_id (kitty @ launch --location=vsplit --cwd=current sh -c "$racknerd_cmd")
|
||||
|
||||
# 2. Return focus to Top-Left and split horizontally to create Bottom-Left (Server)
|
||||
kitty @ focus-window --match "id:$local_id"
|
||||
set server_id (kitty @ launch --location=hsplit --cwd=current sh -c "$server_cmd")
|
||||
|
||||
# 3. Focus Top-Right (RackNerd) and split horizontally to create Bottom-Right (Mini)
|
||||
kitty @ focus-window --match "id:$rack_id"
|
||||
set mini_id (kitty @ launch --location=hsplit --cwd=current sh -c "$mini_cmd")
|
||||
|
||||
# 4. Final focus back to the Top-Left to launch local btop
|
||||
kitty @ focus-window --match "id:$local_id"
|
||||
|
||||
# Run local btop
|
||||
btop
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function nlazyup --wraps='nvim --headless "+Lazy! sync" +qa' --description 'alias nlazyup=nvim --headless "+Lazy! sync" +qa'
|
||||
nvim --headless "+Lazy! sync" +qa $argv
|
||||
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function nnotes --wraps='cd~/vaults/Rootiest Notes/;nvim' --wraps='cd ~/vaults/Rootiest Notes/;nvim' --wraps='cd ~/vaults/Rootiest\\ Notes/;nvim' --description 'alias nnotes=cd ~/vaults/Rootiest\\ Notes/;nvim'
|
||||
cd ~/vaults/Rootiest\ Notes/;nvim $argv
|
||||
|
||||
end
|
||||
@@ -1,7 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function nvimup --wraps='nvim "+UpdateNeovim"' --wraps='NVIMUPDATER_HEADLESS=1 nvim "+UpdateNeovim"' --description 'alias nvimup=NVIMUPDATER_HEADLESS=1 nvim "+UpdateNeovim"'
|
||||
NVIMUPDATER_HEADLESS=1 nvim "+UpdateNeovim" $argv
|
||||
|
||||
end
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Put from clipboard
|
||||
function p --description 'Put from clipboard'
|
||||
# Check for help flag
|
||||
if contains -- -h $argv; or contains -- --help $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Interactively search and remove an installed package using fzf
|
||||
function parur --description 'Interactively search and remove an installed package using fzf'
|
||||
# 1. Use command substitution to get the package list from fzf
|
||||
set -l pkg_list (
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Paste from clipboard
|
||||
function paste --description 'Paste from clipboard'
|
||||
if type -q wl-paste
|
||||
wl-paste $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# prettyping with default nolegend
|
||||
function ping --description 'prettyping with default nolegend'
|
||||
if command -q prettyping
|
||||
# Check if the user specifically asked for the legend
|
||||
|
||||
+1
-1
@@ -5,6 +5,6 @@
|
||||
# This runs `paru` with the `-S` flag to install one or more packages.
|
||||
# The `$argv` variable passes all arguments given to the `pkg` function
|
||||
# directly to the `paru` command.
|
||||
function pkg
|
||||
function pkg --wraps='paru' --description 'directly to the `paru` command.'
|
||||
paru -S $argv
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function ports -d "Show active network listeners"
|
||||
# Show active network listeners
|
||||
function ports --wraps='sudo' --description 'Show active network listeners'
|
||||
sudo lsof -iTCP -sTCP:LISTEN -P -n
|
||||
end
|
||||
|
||||
+14
-4
@@ -1,10 +1,20 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function qr -d "Generate a QR code from text or pipe"
|
||||
if set -q argv[1]
|
||||
echo $argv | qrencode -t utf8
|
||||
# Generate a QR code from text or pipe
|
||||
function qr --description 'Generate a QR code from text or pipe'
|
||||
if type -q qrencode
|
||||
if set -q argv[1]
|
||||
echo $argv | qrencode -t utf8
|
||||
else
|
||||
cat | qrencode -t utf8
|
||||
end
|
||||
else
|
||||
cat | qrencode -t utf8
|
||||
if set -q argv[1]
|
||||
curl -s "qrenco.de/$argv"
|
||||
else
|
||||
set -l input (cat)
|
||||
curl -s "qrenco.de/$input"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# alias rawfish=env NO_TMUX=1 fish
|
||||
function rawfish --wraps='env NO_TMUX=1 fish' --description 'alias rawfish=env NO_TMUX=1 fish'
|
||||
env NO_TMUX=1 fish $argv
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function replay --description "Run Bash commands replaying changes in Fish"
|
||||
# Run Bash commands replaying changes in Fish
|
||||
function replay --description 'Run Bash commands replaying changes in Fish'
|
||||
switch "$argv"
|
||||
case -v --version
|
||||
echo "replay, version 1.2.1"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# alias rg=rg --hyperlink-format=kitty
|
||||
function rg --description 'alias rg=rg --hyperlink-format=kitty'
|
||||
if test "$TERM" = xterm-kitty
|
||||
command rg --hyperlink-format=kitty $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Ultimate rm: trash, list, empty, and secure-erase
|
||||
function rm --description 'Ultimate rm: trash, list, empty, and secure-erase'
|
||||
# 1. No arguments: Show the Trash contents (Quick view)
|
||||
if not set -q argv[1]
|
||||
|
||||
+61
-3
@@ -1,7 +1,65 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function sbver --wraps='~/sbctl-verify-clean.sh' --description 'alias sbver=~/sbctl-verify-clean.sh'
|
||||
~/sbctl-verify-clean.sh $argv
|
||||
|
||||
###############################################################################
|
||||
# Purpose: Verifies Secure Boot status of EFI binaries using 'sbctl'.
|
||||
#
|
||||
# Behavior:
|
||||
# - Filters out 'invalid PE header' noise from sbctl output.
|
||||
# - Parsers output to count successfully signed vs. unsigned images.
|
||||
# - Color-codes output: Green for verified (✓), Red for failed (✗).
|
||||
# - Provides a final summary of the system's signature status.
|
||||
#
|
||||
# Arguments:
|
||||
# --brief : Suppresses individual file status and only shows the final summary.
|
||||
###############################################################################
|
||||
|
||||
function sbver --description 'Verifies Secure Boot status of EFI binaries using sbctl'
|
||||
if not type -q sbctl
|
||||
echo "Error: 'sbctl' is not installed."
|
||||
return 1
|
||||
end
|
||||
|
||||
# ANSI color codes (Fish uses set_color for easier management)
|
||||
set RED (set_color red)
|
||||
set GREEN (set_color green)
|
||||
set NC (set_color normal)
|
||||
|
||||
# Flags
|
||||
set brief_mode false
|
||||
if test "$argv[1]" = "--brief"
|
||||
set brief_mode true
|
||||
end
|
||||
|
||||
# Counters
|
||||
set pass_count 0
|
||||
set fail_count 0
|
||||
|
||||
# Run and process sbctl output
|
||||
# Fish doesn't use 'done < <()'; we pipe directly into the while loop
|
||||
sudo sbctl verify 2>&1 | grep -v -i 'invalid pe header' | while read -l line
|
||||
if string match -q "*✓*" -- "$line"
|
||||
set pass_count (math $pass_count + 1)
|
||||
if not $brief_mode
|
||||
echo -e "$GREEN$line$NC"
|
||||
end
|
||||
else if string match -q "*✗*" -- "$line"
|
||||
set fail_count (math $fail_count + 1)
|
||||
if not $brief_mode
|
||||
echo -e "$RED$line$NC"
|
||||
end
|
||||
else
|
||||
if not $brief_mode
|
||||
echo "$line"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Summary
|
||||
echo
|
||||
if test $fail_count -eq 0
|
||||
echo -e "$GREEN✅ All images are signed ($pass_count verified)$NC"
|
||||
else
|
||||
echo -e "$RED❌ Some images are not signed ($fail_count failed, $pass_count passed)$NC"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Turn off the display using KDE PowerDevil
|
||||
function screensleep --description 'Turn off the display using KDE PowerDevil'
|
||||
# Optional: 1-second delay to ensure no keystrokes wake it immediately
|
||||
sleep 1
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
# This runs `paru` with the search flags.
|
||||
# The `$argv` variable passes all arguments given to the `search` function
|
||||
# directly to the `paru` command.
|
||||
function search
|
||||
function search --wraps='paru' --description 'directly to the `paru` command.'
|
||||
paru $argv
|
||||
end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function spark --description Sparklines
|
||||
# Sparklines
|
||||
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]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# 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
|
||||
|
||||
+12
-4
@@ -1,10 +1,18 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function spwin --wraps='~/.config/kitty/spawn-window.sh' --description 'alias spwin=~/.config/kitty/spawn-window.sh'
|
||||
if test "$TERM" != xterm-kitty
|
||||
echo "Error: The 'spwin' command requires Kitty terminal." >&2
|
||||
# spawn window in kitty or wezterm
|
||||
function spwin --wraps='~/.config/kitty/spawn-window.sh' --description 'spawn window in kitty or wezterm'
|
||||
if test "$TERM" = xterm-kitty
|
||||
if test -x ~/.config/kitty/spawn-window.sh
|
||||
~/.config/kitty/spawn-window.sh $argv
|
||||
else
|
||||
kitty @ launch --type=window $argv
|
||||
end
|
||||
else if test "$TERM_PROGRAM" = WezTerm
|
||||
wezterm cli spawn $argv
|
||||
else
|
||||
echo "Error: The 'spwin' command requires Kitty or WezTerm." >&2
|
||||
return 1
|
||||
end
|
||||
~/.config/kitty/spawn-window.sh $argv
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Alias ssh to kitten ssh when using Kitty terminal
|
||||
function ssh --description 'Alias ssh to kitten ssh when using Kitty terminal'
|
||||
if test "$TERM" = xterm-kitty
|
||||
kitten ssh $argv
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Run Steam while inhibiting system sleep
|
||||
function steam-dl --description 'Run Steam while inhibiting system sleep'
|
||||
echo "Inhibiting sleep while Steam downloads..."
|
||||
systemd-inhibit --why="Active Download" --who="User" --what=idle:sleep steam
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function superpowers --description "Toggle superpowers extension for Gemini and Claude"
|
||||
# Toggle superpowers extension for Gemini and Claude
|
||||
function superpowers --description 'Toggle superpowers extension for Gemini and Claude'
|
||||
set -l scope_gemini workspace
|
||||
set -l scope_claude project
|
||||
set -l mode ""
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function swapstat --description "View colorized zRAM and swappiness status"
|
||||
# View colorized zRAM and swappiness status
|
||||
function swapstat --description 'View colorized zRAM and swappiness status'
|
||||
set -l swappiness (sysctl -n vm.swappiness)
|
||||
set -l zdata (zramctl --bytes --noheadings --output DATA,TOTAL /dev/zram0 2>/dev/null)
|
||||
|
||||
|
||||
+17
-3
@@ -1,7 +1,21 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function tab --wraps='konsole --new-tab --workdir "$cdto"' --description 'alias tab=konsole --new-tab --workdir "$cdto"'
|
||||
konsole --new-tab --workdir "$cdto" $argv
|
||||
|
||||
# Spawn a new tab in the current terminal
|
||||
function tab --description 'Spawn a new tab in the current terminal'
|
||||
set -l dir "$cdto"
|
||||
if test -z "$dir"
|
||||
set dir "$PWD"
|
||||
end
|
||||
|
||||
if test "$TERM" = xterm-kitty
|
||||
kitty @ launch --type=tab --cwd="$dir" $argv
|
||||
else if test "$TERM_PROGRAM" = WezTerm
|
||||
wezterm cli spawn --cwd "$dir" $argv
|
||||
else if set -q KONSOLE_VERSION
|
||||
konsole --new-tab --workdir "$dir" $argv
|
||||
else
|
||||
echo "Error: No supported terminal found. Try Kitty, WezTerm, or Konsole." >&2
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function tailart --wraps='tailscale file get ~/Pictures/Art/' --description 'alias tailart=tailscale file get ~/Pictures/Art/'
|
||||
tailscale file get ~/Pictures/Art/ $argv
|
||||
end
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Kill all tmux sessions except the current one
|
||||
function tmux-clean --description 'Kill all tmux sessions except the current one'
|
||||
# Get a list of all session names that are NOT currently attached
|
||||
set sessions (tmux list-sessions -F '#{session_name} #{session_attached}' | string match -rv ' 1$' | string split -f1 ' ')
|
||||
|
||||
+2
-2
@@ -1,14 +1,14 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function top --wraps=btop --description 'Use btop as a modern replacement for top'
|
||||
# Use btop as a modern replacement for top
|
||||
function top --wraps='btop' --description 'Use btop as a modern replacement for top'
|
||||
# 1. Check if btop is actually installed
|
||||
if type -q btop
|
||||
# 2. Launch btop with any arguments passed
|
||||
btop $argv
|
||||
else
|
||||
# 3. Fallback to the original system top if btop is missing
|
||||
echo "btop not found, falling back to classic top..."
|
||||
command top $argv
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
# Function for upgrading the system with paru.
|
||||
# This runs `paru` with the `-Syu` flags to sync, refresh, and upgrade all
|
||||
# packages, and adds `--no-confirm` to bypass the confirmation prompt.
|
||||
function upgrade
|
||||
function upgrade --wraps='paru' --description 'packages, and adds `--no-confirm` to bypass the confirmation prompt.'
|
||||
paru -Syu --noconfirm
|
||||
end
|
||||
|
||||
+9
-2
@@ -1,7 +1,14 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function view --wraps='neovim -R' --wraps='nvim -R' --description 'alias view=nvim -R'
|
||||
nvim -R $argv
|
||||
# alias view=nvim -R
|
||||
function view --wraps='nvim -R' --description 'alias view=nvim -R'
|
||||
if type -q nvim
|
||||
nvim -R $argv
|
||||
else if type -q less
|
||||
less $argv
|
||||
else
|
||||
command cat $argv
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Run a command while inhibiting system sleep
|
||||
function wake-lock --description 'Run a command while inhibiting system sleep'
|
||||
if test (count $argv) -eq 0
|
||||
echo "Usage: wake-lock [command] [args...]"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Yank to clipboard
|
||||
function y --description 'Yank to clipboard'
|
||||
# Check for help flag
|
||||
if contains -- -h $argv; or contains -- --help $argv
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Copyright (C) 2026 Rootiest
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
function zellij --description 'alias zellij=zellij options --theme catppuccin-mocha'
|
||||
# alias zellij=zellij options --theme catppuccin-mocha
|
||||
function zellij --wraps='zellij' --description 'alias zellij=zellij options --theme catppuccin-mocha'
|
||||
command zellij options --theme catppuccin-mocha $argv
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user