Files
nixos-config/home/terminal/shell/starship.nix
T
2026-03-31 16:53:11 +02:00

144 lines
4.0 KiB
Nix

{ config, pkgs, ... }:
let
configFile = "starship/starship.toml";
toTOML = (pkgs.formats.toml {}).generate;
in
{
environment.sessionVariables = {
STARSHIP_CONFIG = "${config.xdg.configHome}/${configFile}";
STARSHIP_LOG = "error";
};
users.users.someone.packages = [ pkgs.starship ];
xdg.configFile = {
"${configFile}".source = toTOML "starship.toml" {
"$schema" = "https://starship.rs/config-schema.json";
add_newline = true;
scan_timeout = 5;
command_timeout = 500;
# IMPORTANT: no trailing backslashes
format = "[](color_orange)$os$username[](bg:color_yellow fg:color_orange)$directory[](fg:color_yellow bg:color_aqua)$git_branch$git_status[](fg:color_aqua bg:color_blue)$c$cpp$rust$golang$nodejs$php$java$kotlin$haskell$python[](fg:color_blue bg:color_bg3)$docker_context$conda$pixi[](fg:color_bg3 bg:color_bg1)$time[ ](fg:color_bg1)$line_break$character";
palette = "gruvbox_dark";
palettes.gruvbox_dark = {
color_fg0 = "#fbf1c7";
color_bg1 = "#3c3836";
color_bg3 = "#665c54";
color_blue = "#458588";
color_aqua = "#689d6a";
color_green = "#98971a";
color_orange = "#d65d0e";
color_purple = "#b16286";
color_red = "#cc241d";
color_yellow = "#d79921";
};
os = {
disabled = false;
style = "bg:color_orange fg:color_fg0";
symbols = {
Windows = "󰍲";
Ubuntu = "󰕈";
SUSE = "";
Raspbian = "󰐿";
Mint = "󰣭";
Macos = "󰀵";
Manjaro = "";
Linux = "󰌽";
Gentoo = "󰣨";
Fedora = "󰣛";
Alpine = "";
Amazon = "";
Android = "";
AOSC = "";
Arch = "󰣇";
Artix = "󰣇";
EndeavourOS = "";
CentOS = "";
Debian = "󰣚";
Redhat = "󱄛";
RedHatEnterprise = "󱄛";
Pop = "";
};
};
username = {
show_always = true;
style_user = "bg:color_orange fg:color_fg0";
style_root = "bg:color_orange fg:color_fg0";
format = "[ $user ]($style)";
};
directory = {
style = "fg:color_fg0 bg:color_yellow";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "…/";
substitutions = {
Documents = "󰈙 ";
Downloads = " ";
Music = "󰝚 ";
Pictures = " ";
Developer = "󰲋 ";
};
};
git_branch = {
symbol = "";
style = "bg:color_aqua";
format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
};
git_status = {
style = "bg:color_aqua";
format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
};
nodejs.symbol = "";
c.symbol = " ";
cpp.symbol = " ";
rust.symbol = "";
golang.symbol = "";
php.symbol = "";
java.symbol = "";
kotlin.symbol = "";
haskell.symbol = "";
python.symbol = "";
docker_context.symbol = "";
time = {
disabled = false;
time_format = "%R";
style = "bg:color_bg1";
format = "[[  $time ](fg:color_fg0 bg:color_bg1)]($style)";
};
line_break.disabled = false;
character = {
disabled = false;
success_symbol = "[](bold fg:color_green)";
error_symbol = "[](bold fg:color_red)";
vimcmd_symbol = "[](bold fg:color_green)";
vimcmd_replace_one_symbol = "[](bold fg:color_purple)";
vimcmd_replace_symbol = "[](bold fg:color_purple)";
vimcmd_visual_symbol = "[](bold fg:color_yellow)";
};
};
"fish/conf.d/starship.fish".text = ''
starship init fish | source
'';
"fish/completions/starship.fish".source =
"${pkgs.starship}/share/fish/vendor_completions.d/starship.fish";
};
}