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;
|
2024-12-02 12:58:56 -07:00
|
|
|
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 = "─";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|