Update fish config
This commit is contained in:
parent
ebf99b520a
commit
b42c0dc31a
41
fish/conf.d/fish_prompt.fish
Normal file
41
fish/conf.d/fish_prompt.fish
Normal file
@ -0,0 +1,41 @@
|
||||
function fish_prompt
|
||||
# Check the last command status and set the error color
|
||||
if test $status -eq 0
|
||||
set error_color "\033[38;2;0;255;180m" # rgb(0, 255, 180) for success
|
||||
else
|
||||
set error_color "\033[38;2;255;53;94m" # rgb(255, 53, 94) for error
|
||||
end
|
||||
|
||||
# Get SSH session status
|
||||
if test -n "$SSH_CONNECTION"
|
||||
set ssh_color "\033[38;2;255;149;0m" # rgb(255, 149, 0) for SSH
|
||||
else
|
||||
set ssh_color "\033[38;2;82;82;82m" # rgb(82, 82, 82) for non-SSH
|
||||
end
|
||||
|
||||
# Try to get the git branch, avoid error if not in a git repo
|
||||
set git_color "\033[38;2;82;82;82m" # Default git color when not in a git repo
|
||||
if test -d .git
|
||||
set git_branch (git rev-parse --abbrev-ref HEAD)
|
||||
if test -n "$git_branch"
|
||||
switch $git_branch
|
||||
case 'main' 'master'
|
||||
set git_color "\033[38;2;178;98;44m" # rgb(178, 98, 44) for main/master
|
||||
case 'dev'
|
||||
set git_color "\033[38;2;54;159;150m" # rgb(54, 159, 150) for dev
|
||||
case '*'
|
||||
set git_color "\033[38;2;255;255;255m" # rgb(255, 255, 255) for other branches
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Set the user color
|
||||
if test $USER = "root"
|
||||
set user_color "\033[38;2;255;53;94m" # rgb(255, 53, 94) for root
|
||||
else
|
||||
set user_color "\033[38;2;0;255;180m" # rgb(0, 255, 180) for non-root users
|
||||
end
|
||||
|
||||
# Print the custom prompt with the symbol and different colors
|
||||
echo -n -e "$ssh_color❯$git_color❯$user_color❯$error_color❯\033[0m "
|
||||
end
|
37
fish/conf.d/fish_right_prompt.fish
Normal file
37
fish/conf.d/fish_right_prompt.fish
Normal file
@ -0,0 +1,37 @@
|
||||
function fish_right_prompt
|
||||
# Check if we're in a Git repo
|
||||
set git_dir (git rev-parse --show-toplevel 2>/dev/null)
|
||||
if test -n "$git_dir"
|
||||
# Escape
|
||||
set escaped_git_dir (string replace "/" "\\/" $git_dir)
|
||||
|
||||
# Get the repo name
|
||||
set repo_name (basename $git_dir)
|
||||
|
||||
# Relative path in git
|
||||
set relative_path (string replace -r "^$escaped_git_dir/" "" (pwd))
|
||||
|
||||
# RGB color codes
|
||||
set repo_color "\033[38;2;55;120;130m" # RGB for repo name (dark cyan)
|
||||
set separator_color "\033[38;2;178;98;44m" # RGB for separator (bronze)
|
||||
set path_color "\033[38;2;82;82;82m" # RGB for path (gray)
|
||||
set reset_color "\033[0m" # Reset color
|
||||
|
||||
# Ensure the relative path starts with a single slash
|
||||
if not string match -r "^/" $relative_path
|
||||
set relative_path "/$relative_path"
|
||||
end
|
||||
|
||||
# Check if we're at the Git root or inside the repo
|
||||
if test "$relative_path" = ""
|
||||
# At the repo root
|
||||
printf "$repo_color$repo_name$reset_color"
|
||||
else
|
||||
# Inside the repo, print the repo name, separator, and path
|
||||
printf "$repo_color$repo_name$separator_color $path_color$relative_path$reset_color"
|
||||
end
|
||||
else
|
||||
# Not in a Git repo, use the default prompt_pwd function
|
||||
prompt_pwd
|
||||
end
|
||||
end
|
@ -1,43 +1,5 @@
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
end
|
||||
|
||||
set -U fish_greeting ""
|
||||
|
||||
function fish_prompt
|
||||
# Check the last command status and set the error color
|
||||
if test $status -eq 0
|
||||
set error_color "\033[38;2;0;255;180m" # rgb(0, 255, 180) for success
|
||||
else
|
||||
set error_color "\033[38;2;255;53;94m" # rgb(255, 53, 94) for error
|
||||
end
|
||||
|
||||
# Get SSH session status
|
||||
if test -n "$SSH_CONNECTION"
|
||||
set ssh_color "\033[38;2;255;149;0m" # rgb(255, 149, 0) for SSH
|
||||
else
|
||||
set ssh_color "\033[38;2;82;82;82m" # rgb(82, 82, 82) for non-SSH
|
||||
end
|
||||
|
||||
# Try to get the git branch, avoid error if not in a git repo
|
||||
set git_color "\033[38;2;82;82;82m" # Default git color when not in a git repo
|
||||
if test -d .git
|
||||
set git_branch (git rev-parse --abbrev-ref HEAD)
|
||||
if test -n "$git_branch"
|
||||
switch $git_branch
|
||||
case 'main' 'master'
|
||||
set git_color "\033[38;2;178;98;44m" # rgb(178, 98, 44) for main/master
|
||||
case 'dev'
|
||||
set git_color "\033[38;2;54;159;150m" # rgb(54, 159, 150) for dev
|
||||
case '*'
|
||||
set git_color "\033[38;2;255;255;255m" # rgb(255, 255, 255) for other branches
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Set the user color
|
||||
if test $USER = "root"
|
||||
set user_color "\033[38;2;255;53;94m" # rgb(255, 53, 94) for root
|
||||
else
|
||||
set user_color "\033[38;2;0;255;180m" # rgb(0, 255, 180) for non-root users
|
||||
end
|
||||
|
||||
# Print the custom prompt with the symbol and different colors
|
||||
echo -n -e "$ssh_color❯$git_color❯$user_color❯$error_color❯\033[0m "
|
||||
end
|
Loading…
Reference in New Issue
Block a user