144 lines
4.0 KiB
Nix
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";
|
|
};
|
|
}
|