{ 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"; }; }