about summary refs log tree commit diff stats
path: root/hm/soispha/conf/starship/default.nix
blob: b4c879b52a2db7507dc6c63d358757f29545dbc1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{
  lib,
  nixosConfig,
  ...
}: {
  programs.starship = {
    enable = true;
    enableZshIntegration = true;
    settings = {
      add_newline = false;
      format = lib.concatStrings [
        "$directory"
        "$username"
        "$cmd_duration"
        "$status"
        "$character"
      ];
      right_format = lib.concatStrings (
        [
          "$time"
          "$git_metrics"
          "$git_branch"
          "$git_status"
          "$git_commit"
          "$git_state"
        ]
        ++ 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 \($signal_number\)))]($style)'';
      };
      time = {
        format = ''[\[$time\]]($style)'';
      };
      username = {
        format = "as [$user]($style) ";
      };
      git_status = {
        ahead = "⇡$count";
        diverged = "⇕⇡$ahead_count⇣$behind_count";
        behind = "⇣$count";
      };
      git_metrics = {
        disabled = false;
        ignore_submodules = true;
      };
      git_state = {};
      git_commit = {
        tag_disabled = false;
        tag_symbol = "v";
        format = ''[(\[($hash$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";
      };
      battery = {
        # '󰁹 '
        #   '󰂄 '
        #   '󰂃 '
        #   '󰁽 '
        #   '󰂎 '
        display = [
          {
            threshold = 10;
            style = "bold red";
          }
          {
            threshold = 30;
            style = "bold blue";
          }
          {
            threshold = 50;
            style = "bold green";
          }
        ];
      };
    };
  };
}