dotfiles/home/modules/starship/config/settings.nix
2025-01-14 16:17:42 -06:00

88 lines
2.2 KiB
Nix
Executable file

{
flake,
lib,
...
}: let
inherit
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
makeColor = c:
"#"
+ c;
makeStyle = bg: fg:
"bg:"
+ bg
+ " fg:"
+ fg
+ " bold";
surround = fg: text:
"[](fg:"
+ makeColor colours.base
+ " bg:"
+ fg
+ ")"
+ "[](fg:"
+ fg
+ ")"
+ text
+ "[](fg:"
+ fg
+ ")";
in {
add_newline = false;
character = let
makeChar = bg: c:
surround (makeColor bg) ("["
+ c
+ "]("
+ makeStyle (makeColor bg) (makeColor colours.crust)
+ ")");
in {
error_symbol = makeChar colours.maroon "";
format = "$symbol";
success_symbol = makeChar colours.teal "λ";
};
cmd_duration = {
format = surround (makeColor colours.mauve) "[ $duration]($style)";
min_time = 0;
show_milliseconds = true;
style = makeStyle (makeColor colours.mauve) (makeColor colours.crust);
};
directory = {
format = surround (makeColor colours.blue) "[󰉋 $path]($style)[$read_only]($read_only_style)";
read_only = " ";
read_only_style = makeStyle (makeColor colours.blue) (makeColor colours.crust);
style = makeStyle (makeColor colours.blue) (makeColor colours.crust);
truncation_length = 1;
truncate_to_repo = false;
};
git_branch = {
format = surround (makeColor colours.peach) "[$symbol $branch]($style)";
style = makeStyle (makeColor colours.peach) (makeColor colours.crust);
symbol = "";
};
git_status = {
format = "[ \\[$all_status$ahead_behind\\]]($style)";
style = makeStyle (makeColor colours.yellow) (makeColor colours.crust);
};
hostname = {
format = surround (makeColor colours.sapphire) "[$ssh_symbol$hostname]($style)";
ssh_symbol = "󰖟 ";
style = makeStyle (makeColor colours.sapphire) (makeColor colours.crust);
};
pijul_channel = {
disabled = false;
format = surround (makeColor colours.peach) "[$symbol $channel]($style)";
style = makeStyle (makeColor colours.peach) (makeColor colours.crust);
symbol = "";
};
format = lib.concatStrings [
"$hostname"
"$directory"
"$pijul_channel"
"$git_branch"
"$cmd_duration"
"$character "
];
}