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

98 lines
2.2 KiB
Nix
Raw Normal View History

{ config, lib, ... }:
2024-02-14 05:31:14 +01:00
let
2024-02-18 10:41:59 +01:00
gitColor = "#${config.lib.stylix.colors.base08}";
hostnameColor = "#${config.lib.stylix.colors.base0A}";
dirColor = "#${config.lib.stylix.colors.base0C}";
timeColor = "#${config.lib.stylix.colors.base00}";
redColor = "#${config.lib.stylix.colors.base09}";
2024-02-14 05:31:14 +01:00
in
{
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-02-18 10:41:59 +01:00
"$os"
"» "
2024-01-19 05:13:18 +01:00
"$username"
2024-01-19 05:18:47 +01:00
"$hostname"
2024-02-18 10:41:59 +01:00
" »"
2024-01-19 05:13:18 +01:00
"$directory"
2024-02-18 10:41:59 +01:00
" »"
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-01-19 05:25:55 +01:00
"$status"
2024-02-18 10:41:59 +01:00
2024-01-19 05:13:18 +01:00
];
username = {
show_always = true;
2024-02-18 10:41:59 +01:00
style_user = "fg:${hostnameColor}";
style_root = "fg:${hostnameColor}";
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 10:41:59 +01:00
style = "fg:${hostnameColor}";
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 10:41:59 +01:00
style = "fg:${hostnameColor}";
disabled = false;
2024-01-19 05:13:18 +01:00
};
2024-02-06 05:37:34 +01:00
nix_shell = {
2024-02-18 10:41:59 +01:00
disabled = true;
2024-02-06 05:45:13 +01:00
heuristic = true;
2024-02-06 05:56:04 +01:00
symbol = " ";
2024-02-06 05:48:35 +01:00
format = "[$symbol$state(\($name\))]($style)";
2024-02-18 10:41:59 +01:00
style = "fg:${gitColor}";
2024-02-06 05:37:34 +01:00
};
2024-01-19 05:13:18 +01:00
directory = {
2024-02-18 10:41:59 +01:00
style = "fg:${dirColor}";
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 10:41:59 +01:00
style = "fg:${gitColor}";
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 10:41:59 +01:00
style = "fg:${gitColor}";
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 10:41:59 +01:00
style = "fg:${redColor}";
format = "[$status ]($style) » ";
2024-01-19 06:07:49 +01:00
disabled = false;
2024-01-19 05:13:18 +01:00
};
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
2024-02-18 10:41:59 +01:00
style = "fg:${timeColor}";
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
};
}