{ 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"; } ]; }; }; }; }