push changes

This commit is contained in:
zack 2024-11-13 20:35:13 -05:00
parent 6ea10852a9
commit 9aa6f3fdbe
No known key found for this signature in database
GPG key ID: 5F873416BCF59F35
20 changed files with 573 additions and 277 deletions

View file

@ -5,85 +5,77 @@
pkgs,
...
}:
with lib;
with lib.custom; let
with lib; let
cfg = config.apps.tools.starship;
in {
options.apps.tools.starship = with types; {
enable = mkBoolOpt false "Enable Tmux";
enable = mkEnableOption "Starship prompt";
};
config = mkIf cfg.enable {
home.packages = [
pkgs.custom.getgithost
];
programs.starship = {
enable = true;
enableZshIntegration = config.programs.zsh.enable;
settings = {
add_newline = false;
command_timeout = 1000;
scan_timeout = 10;
format = ''
$username$shlvl$kubernetes''${custom.dir}''${custom.home_dir}$directory''${custom.git_host}$git_branch$git_commit$git_state$git_status$hg_branch$docker_context$package$cmake$dart$dotnet$elixir$elm$erlang$golang$helm$java$julia$kotlin$nim$nodejs$ocaml$perl$php$purescript$python$ruby$rust$swift$terraform$vagrant$zig$nix_shell$conda$aws$gcloud$openstack$env_var$crystal$custom$cmd_duration$lua$line_break$jobs$status$character
'';
character = {
success_symbol = "[>](#89b4fa)[>](#f5c2e7)[>](#f2cdcd)";
error_symbol = "[>>>](red)";
format = "$username$directory$git_branch$git_status$python$rust$nodejs$nix_shell$cmd_duration$line_break$character";
# Username display
username = {
style_user = "blue bold";
style_root = "red bold";
format = "[$user]($style) ";
show_always = true;
};
# Modern minimal prompt character
character = {
success_symbol = "[>](blue)";
error_symbol = "[>](red)";
};
# Simplified directory display
directory = {
truncation_length = 1;
format = "[ $path ]($style)[$read_only]($read_only_style) ";
style = "fg:white bg:black bold";
read_only = " ";
read_only_style = "fg:black bg:red";
style = "bold lavender";
format = "[$path]($style) ";
read_only = " ";
};
git_commit = {commit_hash_length = 7;};
git_branch = {format = "[$symbol$branch]($style) ";};
# Streamlined git status indicators
git_branch = {
format = "[$symbol$branch]($style) ";
style = "mauve";
};
git_status = {
conflicted = "[<](white)=[$count](bright-white bold)[>](white)";
ahead = "[<](white)[$count](bright-white bold)[>](white)";
behind = "[<](white)[$count](bright-white bold)[>](white)";
diverged = "[<](white)[$ahead_count](bright-white bold)[$behind_count](bright-white)[>](white)";
untracked = "[<](white)?[$count](bright-white bold)[>](white)";
stashed = "[<](white)$[$count](bright-white bold)[>](white)";
modified = "[<](white)![$count](bright-white bold)[>](white)";
staged = "[<](white)+[$count](bright-white bold)[>](white)";
renamed = "[<](white)»[$count](bright-white bold)[>](white)";
deleted = "[<](white)[$count](bright-white bold)[>](white)";
format = "[$all_status$ahead_behind]($style) ";
style = "bold peach";
conflicted = "=";
ahead = "";
behind = "";
diverged = "";
untracked = "?";
stashed = "$";
modified = "!";
staged = "+";
renamed = "»";
deleted = "";
};
custom = {
home_dir = {
command = "echo ";
when = "[ \"$PWD\" == \"$HOME\" ]";
shell = "[\"bash\",\"--norc\",\"--noprofile\"]";
style = "fg:bright-white bg:bright-black";
format = "[ $output ]($style)";
};
dir = {
command = "echo ";
when = "[ \"$PWD\" != \"$HOME\" ]";
shell = "[\"bash\",\"--norc\",\"--noprofile\"]";
style = "fg:blue bg:bright-black";
format = "[ $output ]($style)";
};
git_host = {
command = "getgithost";
when = "git rev-parse --is-inside-work-tree 2> /dev/null";
shell = "[\"bash\",\"--norc\",\"--noprofile\"]";
style = "bright-yellow bold";
format = "at [$output]($style)";
};
# Language modules with minimal styling
python.symbol = "[](yellow) ";
rust.symbol = "[](peach) ";
nodejs.symbol = "[](green) ";
nix_shell.symbol = "[](blue) ";
# Command duration and line break
cmd_duration = {
format = "[$duration]($style) ";
style = "yellow";
};
line_break.disabled = false;
lua.symbol = "[](blue) ";
python.symbol = "[](blue) ";
hostname = {
ssh_only = true;
format = "[$hostname](bold blue) ";
disabled = false;
};
};
};
};