diff --git a/home-manager/common/software/cli/bash.d/starship-theme.nix b/home-manager/common/software/cli/bash.d/starship-theme.nix new file mode 100644 index 00000000..6d11c23a --- /dev/null +++ b/home-manager/common/software/cli/bash.d/starship-theme.nix @@ -0,0 +1,98 @@ +{ config, pkgs, lib, ... }: + +let + orangeColor = "#f0810e"; + yellowColor = "#f9b931"; + blueColor = "#446e86"; + whiteColor = "#f8f2e6"; + blackColor = "#2f312e"; +in +{ + programs.starship.settings = { + format = lib.concatStrings [ + "[](${orangeColor})" + "$os" + "$username" + "[](bg:${yellowColor} fg:${orangeColor})" + "$directory" + "[](fg:${yellowColor} bg:${blueColor})" + "$git_branch" + "$git_status" + "[ ](fg:${blueColor})" + # "[](fg:${blueColor} bg:#86BBD8)" + # "$c" + # "$elixir" + # "$elm" + # "$golang" + # "$gradle" + # "$haskell" + # "$java" + # "$julia" + # "$nodejs" + # "$nim" + "$rust" + # "$scala" + # "[](fg:#86BBD8 bg:#06969A)" + "$docker_context" + # "[](fg:#06969A bg:#33658A)" + "$time" + # "[ ](fg:#33658A)" + ]; + + username = { + show_always = true; + style_user = "fg:${blackColor} bg:${orangeColor}"; + style_root = "fg:${blackColor} bg:${orangeColor}"; + format = "[$user ]($style)"; + disabled = false; + }; + + os = { + style = "bg:${orangeColor}"; + disabled = true; + }; + + directory = { + style = "fg:${blackColor} bg:${yellowColor}"; + format = "[ $path ]($style)"; + truncation_length = 3; + truncation_symbol = "…/"; + substitutions = { + Documents = "󰈙 "; + Downloads = " "; + Music = " "; + Pictures = " "; + }; + }; + + git_branch = { + symbol = ""; + style = "fg:${whiteColor} bg:${blueColor}"; + format = "[ $symbol $branch ]($style)"; + }; + + git_status = { + style = "fg:${whiteColor} bg:${blueColor}"; + format = "[$all_status$ahead_behind ]($style)"; + }; + + nodejs = { + symbol = ""; + style = "bg:#86BBD8"; + format = "[ $symbol ($version) ]($style)"; + }; + + nim = { + symbol = "󰆥 "; + style = "bg:#86BBD8"; + format = "[ $symbol ($version) ]($style)"; + }; + + time = { + disabled = false; + time_format = "%R"; # Hour:Minute Format + style = "bg:#33658A"; + format = "[ ♥ $time ]($style)"; + }; + }; +} \ No newline at end of file diff --git a/home-manager/common/software/cli/bash.d/starship.toml b/home-manager/common/software/cli/bash.d/starship.toml deleted file mode 100644 index 983acba3..00000000 --- a/home-manager/common/software/cli/bash.d/starship.toml +++ /dev/null @@ -1,144 +0,0 @@ -format = """ -[](#9A348E)\ -$os\ -$username\ -[](bg:#DA627D fg:#9A348E)\ -$directory\ -[](fg:#DA627D bg:#FCA17D)\ -$git_branch\ -$git_status\ -[](fg:#FCA17D bg:#86BBD8)\ -$c\ -$elixir\ -$elm\ -$golang\ -$gradle\ -$haskell\ -$java\ -$julia\ -$nodejs\ -$nim\ -$rust\ -$scala\ -[](fg:#86BBD8 bg:#06969A)\ -$docker_context\ -[](fg:#06969A bg:#33658A)\ -$time\ -[ ](fg:#33658A)\ -""" - -# Disable the blank line at the start of the prompt -# add_newline = false - -# You can also replace your username with a neat symbol like  or disable this -# and use the os module below -[username] -show_always = true -style_user = "bg:#9A348E" -style_root = "bg:#9A348E" -format = '[$user ]($style)' -disabled = false - -# An alternative to the username module which displays a symbol that -# represents the current operating system -[os] -style = "bg:#9A348E" -disabled = true # Disabled by default - -[directory] -style = "bg:#DA627D" -format = "[ $path ]($style)" -truncation_length = 3 -truncation_symbol = "…/" - -# Here is how you can shorten some long paths by text replacement -# similar to mapped_locations in Oh My Posh: -[directory.substitutions] -"Documents" = "󰈙 " -"Downloads" = " " -"Music" = " " -"Pictures" = " " -# Keep in mind that the order matters. For example: -# "Important Documents" = " 󰈙 " -# will not be replaced, because "Documents" was already substituted before. -# So either put "Important Documents" before "Documents" or use the substituted version: -# "Important 󰈙 " = " 󰈙 " - -[c] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[docker_context] -symbol = " " -style = "bg:#06969A" -format = '[ $symbol $context ]($style)' - -[elixir] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[elm] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[git_branch] -symbol = "" -style = "bg:#FCA17D" -format = '[ $symbol $branch ]($style)' - -[git_status] -style = "bg:#FCA17D" -format = '[$all_status$ahead_behind ]($style)' - -[golang] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[gradle] -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[haskell] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[java] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[julia] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[nodejs] -symbol = "" -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[nim] -symbol = "󰆥 " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[rust] -symbol = "" -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[scala] -symbol = " " -style = "bg:#86BBD8" -format = '[ $symbol ($version) ]($style)' - -[time] -disabled = false -time_format = "%R" # Hour:Minute Format -style = "bg:#33658A" -format = '[ ♥ $time ]($style)' diff --git a/home-manager/common/software/cli/bash.nix b/home-manager/common/software/cli/bash.nix index ab69bbb7..7783c795 100644 --- a/home-manager/common/software/cli/bash.nix +++ b/home-manager/common/software/cli/bash.nix @@ -30,11 +30,11 @@ ]; }; + imports = [ ./bash.d/starship-theme.nix ]; programs = { starship = { enable = true; enableBashIntegration = true; - settings = builtins.readFile ./bash.d/starship.toml; }; bash = { enable = true;