about summary refs log blame commit diff stats
path: root/hm/soispha/conf/starship/default.nix
blob: 5db6eb8b020847b96762c80a8d90ba0913d4524b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

              
       
     



                                
                                  
                    





                                        



                        
                 



                                         
                        





                                              
                                                                           
              
                                         


                                       

                                                                
                    
                                                    



                                                        
                        
                                 








                                                                                
                    
                        
                             
                                           

                                
                            




                                                     
                



                                                                                                                
        


















                                 


        
{
  lib,
  nixosConfig,
  pkgs,
  ...
}: {
  programs.starship = {
    enable = true;
    enableZshIntegration = true;
    settings = {
      add_newline = false;
      format = lib.concatStrings [
        "$directory"
        "$username"
        "$cmd_duration"
        "$status"
        "$character"
      ];
      right_format = lib.concatStrings (
        [
          "$git_metrics"
          "$git_branch"
          "$git_status"
          "$git_commit"
          "$git_state"
          "$time"
        ]
        ++ lib.optional
        nixosConfig.soispha.laptop.enable
        "$battery"
      );
      scan_timeout = 20;
      character = {
        # success_symbol = "[❯](bold blue)";
        # a = "⬢";
        success_symbol = "[](bold blue)";
        error_symbol = "[](bold red)";
      };
      status = {
        disabled = false;
        format = "([($common_meaning )($status)( $signal_name)]($style) )";
      };
      time = {
        disabled = false;
        format = "[\\[$time\\]]($style)";
      };
      username = {
        format = "as [$user]($style) ";
      };
      git_branch = {
        format = "[($symbol$branch(:$remote_branch) )]($style)";
      };
      git_status = {
        disabled = true;
        format = "([\\[$ahead_behind\\]]($style) )";
        ahead = "⇡$count";
        diverged = "⇕⇡$ahead_count⇣$behind_count";
        behind = "⇣$count";
      };
      git_metrics = {
        disabled = true;
        ignore_submodules = true;
      };
      git_state = {
        format = "[\($state( $progress_current of $progress_total)\)]($style) ";
        rebase = "[rebasing](bold magenta)";
        merge = "[merging](bold yellow)";
        revert = "[reverting](bold blue)";
        cherry_pick = "[picking](bold red)";
        bisect = "[bisecting](bold red)";
        am = "[applying](bold green)";
        am_or_rebase = "[applying/rebasing](bold yellow)";
      };
      git_commit = {
        disabled = true;
        tag_disabled = false;
        tag_symbol = "v";
        format = "[(\\[$tag\\] )]($style)";
      };
      directory = {
        truncate_to_repo = true;
        read_only = " 󰌾";
        before_repo_root_style = "black bold dimmed";
      };
      cmd_duration = {
        min_time = 2000; # Milliseconds
        style = "bold white";
      };
      custom = {
        # status_output = {
        #   format = "$output";
        #   command = "if test $STARSHIP_CMD_STATUS -ne 0; then echo \"bold red\"; else echo \"bold cyan\"; fi";
        #   shell = [ "${pkgs.dash}" ];
        # };
      };
      battery = {
        # '󰁹 '
        #   '󰂄 '
        #   '󰂃 '
        #   '󰁽 '
        #   '󰂎 '
        display = [
          {
            threshold = 10;
            style = "bold red";
          }
          {
            threshold = 30;
            style = "bold blue";
          }
          {
            threshold = 50;
            style = "bold green";
          }
        ];
      };
    };
  };
}