nix/home-manager/common/software/cli/starship.nix

115 lines
3 KiB
Nix
Raw Normal View History

{ config, lib, ... }:
2024-02-14 05:31:14 +01:00
let
2024-02-18 12:59:12 +01:00
usernameBG = "#${config.lib.stylix.colors.base08}";
directoryBG = "#${config.lib.stylix.colors.base09}";
statusBG = "#${config.lib.stylix.colors.base0A}";
errorBG = "#${config.lib.stylix.colors.base0B}";
timeBG = "#${config.lib.stylix.colors.base06}";
usernameFG = "#${config.lib.stylix.colors.base06}";
directoryFG = "#${config.lib.stylix.colors.base07}";
statusFG = "#${config.lib.stylix.colors.base01}";
errorFG = "#${config.lib.stylix.colors.base00}";
timeFG = "#${config.lib.stylix.colors.base0C}";
2024-03-19 01:39:24 +01:00
# blackColor = "#${config.lib.stylix.colors.base00}";
# whiteColor = "#${config.lib.stylix.colors.base06}";
2024-02-14 05:31:14 +01:00
in
2024-02-18 12:33:13 +01:00
{
2024-02-15 14:00:13 +01:00
programs.starship = {
enable = true;
enableBashIntegration = true;
settings = {
2024-01-19 05:13:18 +01:00
format = lib.concatStrings [
2024-03-20 03:44:14 +01:00
# "[](${usernameBG})"
# "$username"
# "$hostname"
# "[](bg:${directoryBG} fg:${usernameBG})"
"[](${directoryBG})"
2024-01-19 05:13:18 +01:00
"$directory"
2024-02-18 12:59:12 +01:00
"[](fg:${directoryBG} bg:${statusBG})"
2024-02-06 05:39:16 +01:00
"$git_branch"
2024-01-19 05:13:18 +01:00
"$git_status"
"$rust"
"$docker_context"
2024-02-06 05:28:33 +01:00
"$nix_shell"
2024-02-18 12:59:12 +01:00
"[](fg:${statusBG} bg:${errorBG})"
2024-01-19 05:25:55 +01:00
"$status"
2024-02-18 12:59:12 +01:00
"[ ](fg:${errorBG})"
2024-01-19 05:13:18 +01:00
];
username = {
show_always = true;
2024-02-18 12:59:12 +01:00
style_user = "fg:${usernameFG} bg:${usernameBG}";
style_root = "fg:${usernameFG} bg:${usernameBG}";
2024-01-19 06:00:54 +01:00
format = "[$user]($style)";
2024-01-19 05:13:18 +01:00
disabled = false;
};
2024-01-19 05:18:47 +01:00
hostname = {
ssh_only = true;
2024-02-18 12:59:12 +01:00
style = "fg:${usernameFG} bg:${usernameBG}";
2024-01-19 05:21:53 +01:00
format = "[@$hostname]($style)";
2024-01-19 05:18:47 +01:00
disabled = false;
};
2024-01-19 05:13:18 +01:00
os = {
2024-02-18 12:59:12 +01:00
style = "bg:${usernameBG}";
2024-02-18 12:33:13 +01:00
disabled = true;
2024-01-19 05:13:18 +01:00
};
2024-02-06 05:37:34 +01:00
nix_shell = {
2024-02-18 12:33:13 +01:00
disabled = false;
2024-02-06 05:45:13 +01:00
heuristic = true;
2024-02-06 05:56:04 +01:00
symbol = " ";
2024-02-18 12:33:13 +01:00
format = "[$symbol]($style)";
2024-02-18 12:59:12 +01:00
style = "fg:${statusFG} bg:${statusBG}";
2024-02-06 05:37:34 +01:00
};
2024-01-19 05:13:18 +01:00
directory = {
2024-02-18 12:59:12 +01:00
style = "fg:${directoryFG} bg:${directoryBG}";
2024-01-19 05:13:18 +01:00
format = "[ $path ]($style)";
2024-02-06 05:41:03 +01:00
truncation_length = 3;
2024-01-19 05:13:18 +01:00
truncation_symbol = "/";
substitutions = {
Documents = "󰈙 ";
Downloads = " ";
Music = " ";
Pictures = " ";
};
};
git_branch = {
symbol = "";
2024-02-18 12:59:12 +01:00
style = "fg:${statusFG} bg:${statusBG}";
2024-02-06 05:41:53 +01:00
format = "[ $symbol $branch ]($style)";
2024-01-19 05:13:18 +01:00
};
git_status = {
2024-02-18 12:59:12 +01:00
style = "fg:${statusFG} bg:${statusBG}";
2024-02-18 12:33:13 +01:00
format = "[$all_status$ahead_behind ]($style)";
2024-01-19 05:13:18 +01:00
};
2024-01-19 06:07:17 +01:00
status = {
2024-02-18 12:59:12 +01:00
style = "fg:${errorFG} bg:${errorBG}";
2024-02-18 12:43:50 +01:00
format = "[ $status]($style)";
2024-01-19 06:07:49 +01:00
disabled = false;
2024-01-19 05:13:18 +01:00
};
2024-04-01 05:38:00 +02:00
rust = {
disabled = false;
format = "[ via $symbol($version )]($style)";
style = "fg:${statusFG} bg:${statusBG}";
};
2024-01-19 05:13:18 +01:00
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
2024-02-18 12:59:12 +01:00
style = "fg:${timeFG} bg:${timeBG}";
2024-01-19 06:06:20 +01:00
format = "[ $time]($style)";
2024-01-19 05:13:18 +01:00
};
};
2024-02-15 14:00:13 +01:00
};
}
2024-02-18 12:33:13 +01:00