feature(starship): add font and themes

This commit is contained in:
Serĉanto de Scio 2024-09-24 02:06:17 +10:00
parent e3d22e6206
commit 870864cf9a
Signed by: sercanto
GPG key ID: A4122FF3971B6865
12 changed files with 863 additions and 4 deletions

View file

@ -56,7 +56,6 @@
font-awesome font-awesome
hack-font # A typeface designed for source code hack-font # A typeface designed for source code
jetbrains-mono jetbrains-mono
nerdfonts # Iconic font aggregator, collection, & patcher
open-sans # Used in in my polybar configuration open-sans # Used in in my polybar configuration
xkcd-font # Font based handwriting in xkcd comics xkcd-font # Font based handwriting in xkcd comics
]; ];

View file

@ -61,7 +61,6 @@
font-awesome font-awesome
hack-font # A typeface designed for source code hack-font # A typeface designed for source code
jetbrains-mono jetbrains-mono
nerdfonts # Iconic font aggregator, collection, & patcher
open-sans # Used in in my polybar configuration open-sans # Used in in my polybar configuration
xkcd-font # Font based handwriting in xkcd comics xkcd-font # Font based handwriting in xkcd comics
]; ];

View file

@ -1,3 +1,3 @@
[ [
./profiles/starship.nix ./profiles/starship
] ]

View file

@ -0,0 +1,134 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Sets user-defined palette
# Palettes must be defined _after_ this line
palette = "catppuccin_mocha"
# Starship modules
[character]
# Note the use of Catppuccin color 'peach'
success_symbol = "[[󰄛](green) ](peach)"
error_symbol = "[[󰄛](red) ](peach)"
vimcmd_symbol = "[󰄛 ](subtext1)" # For use with zsh-vi-mode
[git_branch]
style = "bold mauve"
[directory]
truncation_length = 4
style = "bold lavender"
# Palette definitions
[palettes.catppuccin_latte]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
[palettes.catppuccin_frappe]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
[palettes.catppuccin_macchiato]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"

View file

@ -0,0 +1,129 @@
format = """
[](#3B4252)\
$python\
$username\
[](bg:#434C5E fg:#3B4252)\
$directory\
[](fg:#434C5E bg:#4C566A)\
$git_branch\
$git_status\
[](fg:#4C566A bg:#86BBD8)\
$c\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
[](fg:#86BBD8 bg:#06969A)\
$docker_context\
[](fg:#06969A bg:#33658A)\
$time\
[ ](fg:#33658A)\
"""
command_timeout = 5000
# Disable the blank line at the start of the prompt
# add_newline = false
# You can also replace your username with a neat symbol like  to save some space
[username]
show_always = true
style_user = "bg:#3B4252"
style_root = "bg:#3B4252"
format = '[$user ]($style)'
[directory]
style = "bg:#434C5E"
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) $path'
[elixir]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[git_branch]
symbol = ""
style = "bg:#4C566A"
format = '[ $symbol $branch ]($style)'
[git_status]
style = "bg:#4C566A"
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = " "
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)'
[python]
style = "bg:#3B4252"
format = '[(\($virtualenv\) )]($style)'
[rust]
symbol = ""
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[ $time ]($style)'

View file

@ -0,0 +1,124 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
format = """
[](fg:#003b46 bg:#004f5e)\
[](fg:#004f5e bg:#006374)\
[](fg:#006374 bg:#007a8a)\
[](fg:#007a8a bg:#0093a3)\
[](fg:#0093a3 bg:#003b46)\
[](fg:#003b46 bg:#e6454b)\
$username\
[](fg:#e6454b bg:#ff6a4b)\
$battery\
[](fg:#ff6a4b bg:#ffcc66)\
$directory\
[](fg:#ffcc66 bg:#85b57a)\
$git_branch\
$git_status\
[](fg:#85b57a bg:#4da6a6)\
$cmd_duration\
[](fg:#4da6a6 bg:#3a82e6)\
[](fg:#3a82e6 bg:#8c4de6)\
[](fg:#8c4de6)\
$fill\
[---](fg:#ffcc66)
$character\
"""
right_format = """
[󰇥](bold fg:#ffcc66 )
"""
# scheme: "Deep Oceanic Next"
# author: "spearkkk (https://github.com/spearkkk/deep-oceanic-next)"
# base00: "003b46" # background
# base01: "004f5e" # black
# base02: "006374" # bright black
# base03: "007a8a" # grey
# base04: "0093a3" # light grey
# base05: "dce3e8" # foreground
# base06: "e6ebf0" # white
# base07: "f0f5f5" # bright white
# base08: "e6454b" # red
# base09: "ff6a4b" # orange
# base0A: "ffcc66" # yellow
# base0B: "85b57a" # green
# base0C: "4da6a6" # cyan/aqua
# base0D: "3a82e6" # blue
# base0E: "8c4de6" # magenta/purple
# base0F: "e673a3" # pink
# base10: "001114" # darker black
# base11: "000a0d" # darkest black
# base12: "ff5a61" # bright red
# base13: "ffdd80" # bright yellow
# base14: "99d8a0" # bright green
# base15: "66cccc" # bright cyan
# base16: "4da6ff" # bright blue
# base17: "a366ff" # bright purple
palette = "deep_oceanic_next"
[palettes.deep_oceanic_next]
black = "#003b46"
red = "#e6454b"
green = "#85b57a"
blue = "#3a82e6"
yellow = "#ffcc66"
purple = "#8c4de6"
cyan = "#4da6a6"
white = "#dce3e8"
bright-black = "#004f5e"
bright-red = "#ff9999"
bright-green = "#c7e6c7"
bright-blue = "#99ccff"
bright-yellow = "#ffb380"
bright-purple = "#d4a1ff"
bright-cyan = "#99e6e6"
bright-white = "#e6ebf0"
[os]
disabled = true
[username]
show_always = true
style_user = "bg:#f99157 bold fg:#003b46"
style_root = "bg:#f99157 bold fg:#003b46"
format = "[ 󰀄 $user ](bold fg:#003b46 bg:#e6454b)"
# Battery configuration
[battery]
format = "[ $symbol$percentage ](bold fg:#003b46 bg:#ff6a4b)"
[[battery.display]]
threshold = 100
[directory]
truncation_symbol = "…/"
truncation_length = 6
format = "[ $path ](bold fg:#003b46 bg:#ffcc66)"
[git_branch]
symbol = ""
format = "[ $symbol $branch ](bold fg:#003b46 bg:#85b57a)"
[git_status]
format = "[$all_status$ahead_behind ](bold fg:#003b46 bg:#85b57a)"
[package]
disabled = true
[time]
disabled = false
time_format = "%r"
style = "bg:#003b46 fg:white"
format = "[ $time ](bold fg:#003b46 bg:#b26cff)"
[cmd_duration]
format = "[ $duration ](bold fg:#003b46 bg:#4da6a6)"
[fill]
symbol = " "
[character]
error_symbol = "[✗](bold red)"

View file

@ -12,6 +12,13 @@ in {
enable = mkEnableOption "to enable the starship prompt."; enable = mkEnableOption "to enable the starship prompt.";
}; };
config = mkIf (cfg.enable) { config = mkIf (cfg.enable) {
programs.starship.enable = true; fonts.packages = with pkgs; [
nerdfonts # Iconic font aggregator, collection, & patcher
];
programs.starship = {
enable = true;
presets = ["nerd-font-symbols"];
settings = pkgs.lib.importTOML ./dracula.toml;
};
}; };
} }

View file

@ -0,0 +1,137 @@
# code ~/.config/starship.toml
format = """
[ ](bg:#303030 fg:#c7c7c7)\
$username\
[](bg:#303030 fg:#707070)\
$directory\
$git_branch\
$git_status\
[](#303030)\
\n$character
"""
# 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 = "fg:#b69676 bg:#303030"
style_root = "fg:white bg:#303030"
format = '[$user]($style)'
disabled = false
[status]
style = 'bg:#303030'
symbol = '[✘ ](fg:red bg:#303030)'
success_symbol = '[✔ ](fg:green bg:#303030)'
format = '[[$signal_name ](fg:red bg:#303030)$symbol]($style)'
map_symbol = false
disabled = false
[character]
success_symbol = '[](bold green)'
error_symbol = '[✘](fg:red)'
[cmd_duration]
min_time = 1
style = 'bg:#303030 fg:#909090'
format = '[ took [$duration](bold fg:#909090 bg:#303030)  ]($style)'
[hostname]
ssh_only = false
style = 'fg:white bg:#303030'
format = '[@$hostname ]($style)'
disabled = false
# An alternative to the username module which displays a symbol that
# represents the current operating system
[os]
style = "bg:#303030"
disabled = true # Disabled by default
[directory]
style = "fg:white bg:#303030"
format = "[  $path ]($style)"
truncation_length = 9
truncation_symbol = "~/…/"
truncate_to_repo = true
home_symbol = '~'
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
#"~/" = "~./"
"~" = " ~"
[fill]
symbol = ' '
#symbol = '・'
[c]
symbol = ""
style = "bg:#303030"
format = '[ $symbol ]($style)'
[docker_context]
symbol = " "
style = "bg:#303030"
format = '[ $symbol $context ]($style) $path'
[git_branch]
style = "fg:white bg:#303030"
format = '[](fg:#707070 bg:#303030)[  ](fg:#D6D5CB bg:#303030)[](fg:#FFC0CB bg:#303030)[ $branch ](bold $style)'
truncation_length = 15
[git_status]
style = "fg:#0a96d6 bg:#303030"
conflicted = "~"
up_to_date = " "
untracked = "?"
ahead = "⇡${count}"
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
behind = "⇣${count}"
stashed = "*"
modified = " "
staged = '[++\($count\)](fg:#56b60a bg:#303030)'
renamed = " "
deleted = " "
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = "go"
style = "fg:#FFFFFF bg:#303030"
format = '[ $symbol ](bold $style)'
[java]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[nodejs]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[python]
# Display the version of python from inside a local venv.
#
# Note this will only work when the venv is inside the project and it will only
# work in the directory that contains the venv dir but maybe this is ok?
symbol = ' '
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[rust]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#303030 fg:#567676"
format = '[$time ]($style)'

View file

@ -0,0 +1,42 @@
# Use the color palette
palette = "dracula"
[aws]
style = "bold orange"
[character]
error_symbol = "[λ](bold red)"
success_symbol = "[λ](bold green)"
[cmd_duration]
style = "bold yellow"
[directory]
style = "bold green"
[git_branch]
style = "bold pink"
[git_status]
style = "bold red"
[hostname]
style = "bold purple"
[username]
format = "[$user]($style) on "
style_user = "bold cyan"
# Define Dracula color palette
[palettes.dracula]
background = "#282a36"
current_line = "#44475a"
foreground = "#f8f8f2"
comment = "#6272a4"
cyan = "#8be9fd"
green = "#50fa7b"
orange = "#ffb86c"
pink = "#ff79c6"
purple = "#bd93f9"
red = "#ff5555"
yellow = "#f1fa8c"

View file

@ -0,0 +1,212 @@
format = """
$os\
[\uE0B0](fg:bar_one bg:bar_two)\
$custom$directory\
[\uE0B0](fg:bar_two bg:bar_three)\
$git_branch\
$git_status\
[\uE0B0](fg:bar_three bg:bar_four)\
$c\
$dart\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$lua\
$nodejs\
$nim\
$php\
$python\
$rlang\
$ruby\
$rust\
$scala\
[\uE0B0](fg:bar_four)\
"""
right_format = """
[\uE0B2](fg:bar_three)\
$time\
"""
palette = 'theme'
# Defines the colour palette for the theme
[palettes.theme]
bar_one = '#C0CAF5'
bar_two = '#6992D7'
bar_three = '#394260'
bar_four = '#212736'
bar_five = '#1D2230'
text_one = '#090C0C'
text_two = '#EEEEEE'
text_three = '#A3AED2'
[os]
style = 'bg:bar_one fg:text_one'
format = '[ $symbol ]($style)'
disabled = false
[os.symbols]
Alpine = ''
Amazon = ''
Android = ''
Arch = ''
CentOS = ''
Debian = ''
DragonFly = ''
Emscripten = ''
EndeavourOS = ''
Fedora = ''
FreeBSD = ''
Garuda = '󰛓'
Gentoo = ''
HardenedBSD = '󰞌'
Illumos = '󰈸'
Linux = ''
Macos = ''
Manjaro = ''
Mariner = ''
MidnightBSD = ''
Mint = ''
NetBSD = ''
NixOS = ''
OpenBSD = '󰈺'
SUSE = ''
OracleLinux = '󰌷'
Pop = ''
Raspbian = ''
Redhat = ''
RedHatEnterprise = ''
Redox = '󰀘'
Solus = '󰠳'
openSUSE = ''
Ubuntu = ''
Unknown = ''
Windows = '󰍲'
[directory]
truncation_length = 0
truncation_symbol = '.../'
truncate_to_repo = false
fish_style_pwd_dir_length = 1
style = 'bold fg:text_two bg:bar_two'
format = '[ $path ]($style)'
[custom.home]
when = ' test "$HOME" = "$PWD" '
style = 'bold fg:text_two bg:bar_two'
symbol = ' '
[custom.folder]
when = ' test "$HOME" != "$PWD" '
style = 'bold fg:text_two bg:bar_two'
symbol = ' '
[directory.substitutions]
'Documents' = ' '
'Downloads' = ' '
'Music' = ' '
'Pictures' = ' '
[git_branch]
symbol = ' '
style = 'fg:text_three bg:bar_three'
format = '[ $symbol $branch ]($style)'
[git_status]
style = 'fg:text_three bg:bar_three'
format = '[$all_status$ahead_behind ]($style)'
[c]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[dart]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[elixir]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[golang]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[java]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[lua]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[php]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[python]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) (\($virtualenv\) )]($style)'
[rlang]
symbol = 'ﳒ '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[ruby]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[rust]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[scala]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = '%R' # Hour:Minute Format
style = 'fg:text_three bg:bar_three'
format = '[  $time ]($style)'

View file

@ -0,0 +1,41 @@
format = """
$directory\
[](fg:#769ff0 bg:#394260)\
$git_branch\
$git_status\
[](fg:#394260)\
"""
right_format = """
[](fg:#292E42)\
$character\
[](fg:#1d2230 bg:#292E42)\
$time
"""
add_newline = false
[character]
format = "$symbol"
success_symbol = "[✔ ](fg:#c3e88d bg:#292E42)"
error_symbol = "[✘ ](fg:#c53b53 bg:#292E42)"
[directory]
truncation_length = 6
style = "fg:#1a1b26 bg:#769ff0"
format = "[ $path ]($style)"
[git_branch]
symbol = ""
style = "bg:#394260"
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
[git_status]
style = "bg:#394260"
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#1d2230"
format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'

View file

@ -0,0 +1,35 @@
# ~/.config/starship.toml
# Inserts a blank line between shell prompts
add_newline = true
# Change the default prompt format
format = """\
[](238)$env_var\
$all[](238)$character"""
# Change the default prompt characters
[character]
success_symbol = "[](238)"
error_symbol = "[](238)"
# Shows the username
[username]
style_user = "white bold"
style_root = "black bold"
format = "者 [$user]($style) "
disabled = false # disable in powershell
show_always = true
[hostname]
ssh_only = false
format = "on [$hostname](bold yellow) "
disabled = false
[directory]
truncation_length = 3
truncation_symbol = "…/"
home_symbol = " ~"
read_only_style = "197"
read_only = "  "
format = "at [$path]($style)[$read_only]($read_only_style) "