about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/starship
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
commitc52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c (patch)
treee8b947710b467b32740598ff574982097836f66c /modules/home.legacy/conf/starship
parentchore(pkgs/yt): 1.2.1 -> 1.3.0 (diff)
downloadnixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.tar.gz
nixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.zip
refactor(modules): Move all system modules to `by-name`
From now on all modules should be added to the new `by-name` directory.
This should help remove the (superficial and utterly useless)
distinction between `home-manager` and `NixOS` modules.
Diffstat (limited to 'modules/home.legacy/conf/starship')
-rw-r--r--modules/home.legacy/conf/starship/default.nix119
1 files changed, 119 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/starship/default.nix b/modules/home.legacy/conf/starship/default.nix
new file mode 100644
index 00000000..5db6eb8b
--- /dev/null
+++ b/modules/home.legacy/conf/starship/default.nix
@@ -0,0 +1,119 @@
+{
+  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";
+          }
+        ];
+      };
+    };
+  };
+}