nix/home-manager/modules/shell/starship.nix

215 lines
7.4 KiB
Nix
Raw Normal View History

2024-12-02 03:57:34 -07:00
{ ... }: {
# Shell prompt
programs.starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = true;
format = ""
# Left powerline
+ "[](fg:242)[](fg:238)"
+ "$os"
+ "[ ](fg:007 bg:prev_bg)"
+ "[$username@$hostname](bg:prev_bg)"
+ "[ ](fg:007 bg:prev_bg)"
+ "$shell$shlvl"
+ "[ ](fg:007 bg:prev_bg)"
+ "$directory"
+ "[ ](bg:prev_bg)[](fg:prev_bg bg:none)"
# Middle filling
+ "$fill"
# Right powerline
+ "[](fg:238 bg:none)[ ](bg:prev_fg)"
+ "\${custom.status}"
+ "\${custom.time}"
+ "[ ](fg:007 bg:prev_bg)"
+ "\${custom.date}"
+ "[ ](fg:007 bg:prev_bg)"
+ "$battery"
+ "[](fg:prev_bg)[ ](fg:242)"
# Left prompter
+ "\n[ ](fg:242)";
# Right prompter
right_format = "[ ](fg:242)";
os = {
disabled = false;
style = "bg:238 fg:007";
symbols = {
Arch = "󰣇";
Ubuntu = "󰕈";
NixOS = "󱄅";
};
};
username = {
disabled = false;
format = "[$user]($style)";
style_user = "bg:prev_bg fg:#63D0EE bold";
style_root = "bg:prev_bg fg:#EFA9B1 bold";
show_always = true;
};
hostname = {
disabled = false;
ssh_only = false;
ssh_symbol = "🌐 ";
trim_at = "";
style = "bg:prev_bg fg:prev_fg";
format = "[$ssh_symbol$hostname]($style)";
};
shell = {
disabled = false;
format = "[$indicator]($style)";
style = "fg:#FFFFFF bg:prev_bg";
};
shlvl = {
disabled = false;
threshold = 2;
symbol = "";
repeat = false;
format = "[ \\(](bg:prev_bg fg:#FFFFFF)[$symbol$shlvl]($style)[\\)](bg:prev_bg fg:#FFFFFF)";
style = "bg:prev_bg fg:#F5F543";
};
directory = {
disabled = false;
home_symbol = "~";
read_only = " ";
truncate_to_repo = true;
use_logical_path = true;
fish_style_pwd_dir_length = 1;
truncation_length = 3;
style = "bold fg:#63D0EE bg:prev_bg";
read_only_style = "bold fg:#63D0EE bg:prev_bg";
format = "[$read_only]($read_only_style)[$path]($style)";
repo_root_format = "[$read_only]($read_only_style)[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)";
};
# [status]
# disabled = false
# recognize_signal_code = false
# map_symbol = false
# success_symbol = "✔"
# symbol = "✘"
# # TODO Figure out status-dependent styling
# style = "bold fg:#26FF05 bg:prev_bg"
# format = "[$status $symbol]($style)"
custom.status = {
disabled = false;
when = ''test "$?" -ne 0'';
command = ''echo "$?"'';
style = "bg:238 fg:#EFA9B1";
symbol = "";
format = "[$output $symbol]($style)";
};
custom.time = {
disabled = false;
when = true;
command = ''date +"%I:%M:%S"'';
description = "The current local time";
style = "bg:238 fg:#63D0EE bold";
format = "[$output]($style)";
};
custom.date = {
disabled = false;
when = true;
command = ''date +"%b %-d %Y"'';
2024-12-02 03:57:34 -07:00
description = "The current local date";
style = "bg:238 fg:#E5B9E9 bold";
format = "[$output]($style)";
};
battery = {
disabled = false;
format = "[$symbol$percentage ]($style)";
display = [
{
threshold = 10;
discharging_symbol = "󰂃 ";
charging_symbol = "󰂄 ";
style = "bold fg:#EFA9B1 bg:prev_bg";
}
{
threshold = 20;
discharging_symbol = "󰁻 ";
charging_symbol = "󰂄 ";
style = "bold fg:#FF9933 bg:prev_bg";
}
{
threshold = 30;
discharging_symbol = "󰁼 ";
charging_symbol = "󰂄 ";
style = "bold fg:#FF9933 bg:prev_bg";
}
{
threshold = 40;
discharging_symbol = "󰁽 ";
charging_symbol = "󰂄 ";
style = "bold fg:#F8E45C bg:prev_bg";
}
{
threshold = 50;
discharging_symbol = "󰁾 ";
charging_symbol = "󰂄 ";
style = "bold fg:#F8E45C bg:prev_bg";
}
{
threshold = 60;
discharging_symbol = "󰁿 ";
charging_symbol = "󰂄 ";
style = "bold fg:#FFFFFF bg:prev_bg";
}
{
threshold = 70;
discharging_symbol = "󰂀 ";
charging_symbol = "󰂄 ";
style = "bold fg:#FFFFFF bg:prev_bg";
}
{
threshold = 75;
discharging_symbol = "󰂀 ";
charging_symbol = "󰂄 ";
style = "bold fg:green bg:prev_bg";
}
{
threshold = 80;
discharging_symbol = "󰂁 ";
charging_symbol = "󰂄 ";
style = "bold fg:green bg:prev_bg";
}
{
threshold = 97;
discharging_symbol = "󰁹 ";
charging_symbol = "󰂄 ";
style = "bold fg:green bg:prev_bg";
}
{
threshold = 100;
discharging_symbol = "󰁹 ";
charging_symbol = "󰂄 ";
style = "bold fg:green bg:prev_bg";
}
];
};
fill = {
disabled = false;
style = "fg:242";
symbol = "";
};
};
};
}