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 ""
 | 
					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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user