Skip to content

Instantly share code, notes, and snippets.

@flexiondotorg
Created December 2, 2024 16:19
Show Gist options
  • Save flexiondotorg/d823f23a2c0b2f1f4fd181e521b1618f to your computer and use it in GitHub Desktop.
Save flexiondotorg/d823f23a2c0b2f1f4fd181e521b1618f to your computer and use it in GitHub Desktop.
A delightful Catppuccin theme for Starship
add_newline = false
command_timeout = 1000
format = "[](surface1)$os[](bg:surface2 fg:surface1)$username$sudo[](bg:overlay0 fg:surface2)$hostname[](bg:mauve fg:overlay0)$directory[](fg:mauve bg:peach)$c$dart$dotnet$elixir$elm$erlang$golang$haskell$haxe$java$julia$kotlin$lua$nim$nodejs$rlang$ruby$rust$perl$php$python$scala$swift$zig$package$git_branch[](fg:peach bg:yellow)$git_status[](fg:yellow bg:teal)$container$direnv$nix_shell$cmd_duration$jobs$shlvl$status$character"
palette = "catppuccin_mocha"
[c]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[character]
disabled = false
error_symbol = "(fg:red bg:pink)[](fg:pink) "
format = "$symbol"
success_symbol = "[](fg:blue) "
[cmd_duration]
format = "[  $duration]($style)"
min_time = 2500
min_time_to_notify = 60000
show_notifications = false
style = "fg:base bg:teal"
[container]
format = "[ $symbol $name]($style)"
style = "fg:base bg:teal"
symbol = "󱋩"
[dart]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[directory]
format = "[ $path]($style)[$read_only]($read_only_style)"
home_symbol = ""
read_only = " 󰈈"
read_only_style = "bold fg:crust bg:mauve"
style = "fg:base bg:mauve"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
Apps = "󰵆"
Audio = ""
Crypt = "󰌾"
Desktop = ""
Development = ""
Documents = "󰈙"
Downloads = "󰉍"
Dropbox = ""
Games = "󰊴"
Keybase = "󰯄"
Music = "󰎄"
Pictures = ""
Public = ""
Quickemu = ""
Studio = "󰡇"
Vaults = "󰌿"
Videos = ""
Volatile = "󱪃"
Websites = "󰖟"
Zero = "󰎡"
nix-config = "󱄅"
[direnv]
allowed_msg = ""
denied_msg = ""
disabled = false
format = "[ $loaded]($style)"
loaded_msg = "󰐍"
not_allowed_msg = ""
style = "fg:base bg:teal"
symbol = ""
unloaded_msg = "󰙧"
[dotnet]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[elixir]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[elm]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[erlang]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[git_branch]
format = "[ $symbol $branch]($style)"
style = "fg:base bg:peach"
symbol = ""
[git_status]
ahead = "󰜹"
behind = "󰜰"
conflicted = "󰳤 "
deleted = " "
diverged = ""
format = "[ $all_status$ahead_behind]($style)"
modified = " "
renamed = " "
staged = " "
stashed = " "
style = "fg:base bg:yellow"
typechanged = " "
untracked = " "
up_to_date = "󰤓"
[golang]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[haskell]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = "󰲒"
[haxe]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[hostname]
disabled = false
format = "[ $hostname]($style)[$ssh_symbol](bg:overlay0 fg:maroon)"
ssh_only = false
ssh_symbol = " 󰖈"
style = "bg:overlay0 fg:red"
[java]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = "󰬷"
[jobs]
format = "[ $symbol $number]($style)"
style = "fg:base bg:teal"
symbol = "󰣖"
[julia]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[kotlin]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[lua]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[nim]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[nix_shell]
format = "[ $symbol]($style)"
style = "fg:base bg:teal"
symbol = "󱄅"
[nodejs]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[os]
disabled = false
format = "$symbol"
style = ""
[os.symbols]
AlmaLinux = "[](fg:text bg:surface1)"
Alpine = "[](fg:blue bg:surface1)"
Amazon = "[](fg:peach bg:surface1)"
Android = "[](fg:green bg:surface1)"
Arch = "[󰣇](fg:sapphire bg:surface1)"
Artix = "[](fg:sapphire bg:surface1)"
CentOS = "[](fg:mauve bg:surface1)"
Debian = "[](fg:red bg:surface1)"
DragonFly = "[](fg:teal bg:surface1)"
EndeavourOS = "[](fg:mauve bg:surface1)"
Fedora = "[](fg:blue bg:surface1)"
FreeBSD = "[](fg:red bg:surface1)"
Garuda = "[](fg:sapphire bg:surface1)"
Gentoo = "[](fg:lavender bg:surface1)"
Illumos = "[](fg:peach bg:surface1)"
Kali = "[](fg:blue bg:surface1)"
Linux = "[](fg:yellow bg:surface1)"
Macos = "[](fg:text bg:surface1)"
Manjaro = "[](fg:green bg:surface1)"
Mint = "[󰣭](fg:teal bg:surface1)"
NixOS = "[](fg:sky bg:surface1)"
OpenBSD = "[](fg:yellow bg:surface1)"
Pop = "[](fg:sapphire bg:surface1)"
Raspbian = "[](fg:maroon bg:surface1)"
RedHatEnterprise = "[](fg:red bg:surface1)"
Redhat = "[](fg:red bg:surface1)"
RockyLinux = "[](fg:green bg:surface1)"
SUSE = "[](fg:green bg:surface1)"
Solus = "[](fg:blue bg:surface1)"
Ubuntu = "[](fg:peach bg:surface1)"
Unknown = "[](fg:text bg:surface1)"
Void = "[](fg:green bg:surface1)"
Windows = "[󰖳](fg:sky bg:surface1)"
openSUSE = "[](fg:green bg:surface1)"
[package]
format = "[ $version]($style)"
style = "fg:base bg:peach"
version_format = "$raw"
[palettes.catppuccin_mocha]
base = "#1e1e2e"
blue = "#89b4fa"
crust = "#11111b"
flamingo = "#f2cdcd"
green = "#a6e3a1"
lavender = "#b4befe"
mantle = "#181825"
maroon = "#eba0ac"
mauve = "#cba6f7"
overlay0 = "#6c7086"
overlay1 = "#7f849c"
overlay2 = "#9399b2"
peach = "#fab387"
pink = "#f5c2e7"
red = "#f38ba8"
rosewater = "#f5e0dc"
sapphire = "#74c7ec"
sky = "#89dceb"
subtext0 = "#a6adc8"
subtext1 = "#bac2de"
surface0 = "#313244"
surface1 = "#45475a"
surface2 = "#585b70"
teal = "#94e2d5"
text = "#cdd6f4"
yellow = "#f9e2af"
[perl]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[php]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = "󰌟"
[python]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[rlang]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[ruby]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[rust]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[scala]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[shlvl]
disabled = false
format = "[ $symbol]($style)"
repeat = false
style = "fg:surface1 bg:teal"
symbol = "󱆃"
threshold = 3
[status]
disabled = false
format = "$symbol"
map_symbol = true
not_executable_symbol = "[](fg:teal bg:pink)[  $common_meaning](fg:red bg:pink)"
not_found_symbol = "[](fg:teal bg:pink)[ 󰩌 $common_meaning](fg:red bg:pink)"
sigint_symbol = "[](fg:teal bg:pink)[  $signal_name](fg:red bg:pink)"
signal_symbol = "[](fg:teal bg:pink)[ ⚡ $signal_name](fg:red bg:pink)"
style = ""
success_symbol = "[](fg:teal bg:blue)"
symbol = "[](fg:teal bg:pink)[  $status](fg:red bg:pink)"
[sudo]
disabled = false
format = "[ $symbol]($style)"
style = "fg:rosewater bg:surface2"
symbol = "󰌋"
[swift]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
[time]
disabled = true
[username]
format = "[ $user]($style)"
show_always = true
style_root = "fg:red bg:surface2"
style_user = "fg:green bg:surface2"
[username.aliases]
martin = "󰝴"
root = "󰱯"
[zig]
format = "[ $symbol]($style)"
style = "fg:base bg:peach"
symbol = ""
@flexiondotorg
Copy link
Author

flexiondotorg commented Dec 2, 2024

As featured in Episode 47 of Linux Matters podcast 🐧️🎙️

  • Put the above in ~/.config/starship.toml.
  • Ensure you have a current version of Starship and Nerd Fonts installed.
  • If you want your user to be represented by a Ninja 🥷 then replace martin with your username in the line that reads martin = "󰝴".
  • If you need help to understand what this prompt is showing, execute starship explain.

@ymauray
Copy link

ymauray commented Jan 22, 2025

Works like a treat on Windows 11 using PowerShell and Window Terminal ! Now on to the Mac !
Thanks a lot !

@rizz360
Copy link

rizz360 commented Jan 22, 2025

Beautiful! Thanks

@pr4wn
Copy link

pr4wn commented Jan 22, 2025

This is really useful, wimpy. I had to add the odd space after git status characters. as they were being truncated. This could be a limitation of my terminal emulator, so no biggie.

Have added it to my dotfiles repo.

Thanks.

@dwvisser
Copy link

I have been a fan of Starship for a while, apparently. This theme produced several error messages for me, because I was still on starship 1.10.3. I re-ran the install script, getting v1.22.1, and now things look great (once I also updated my Nerd font that is).

@jarrydstan
Copy link

Is it just me or is all of the icons just a blank box? Is this a limitation of macOS? :(

@ymauray
Copy link

ymauray commented Jan 22, 2025

Is it just me or is all of the icons just a blank box? Is this a limitation of macOS? :(

It's not just you. I didn't have time to check what's wrong, though, but I have a nice collection of blank boxes on MacOS. It's not a font problem, I can see the apple and the ninja just fine, but the rest is ... suboptimal ^^

image

@flexiondotorg
Copy link
Author

flexiondotorg commented Jan 23, 2025

What terminal are you using? I don't have a problem on macOS with alacritty. I remember reading iTerm has additional configuration options you have to fiddle with to make it work nicely, but I don't know what they are.

@pr4wn
Copy link

pr4wn commented Jan 23, 2025

What terminal are you using? I don't have a problem on macOS with alacritty. I remember reading iTerm has additional configuration options you have to fiddle with to make it work nicely, but I don't know what they are.

I'm using mate-terminal, fish shell, i3 and Arch, btw :) I tested it with alacritty which behaves properly and made me suspect the terminal emulator.

@jarrydstan
Copy link

jarrydstan commented Jan 23, 2025

What terminal are you using? I don't have a problem on macOS with alacritty. I remember reading iTerm has additional configuration options you have to fiddle with to make it work nicely, but I don't know what they are.

I am using Warp terminal, but also tried on iTerm and the default terminal, all the same!
I also can't see the icons in the gist either so maybe its just my mac

@flexiondotorg
Copy link
Author

I am using Warp terminal, but also tried on iTerm and the default terminal, all the same! I also can't see the icons in the gist either so maybe its just my mac

It sounds like Nerd Fonts is not installed correctly.

@ymauray
Copy link

ymauray commented Jan 23, 2025

In my case, I have FiraCode Nerd Font Mono installed.
I am using the default terminal on an M2 macbook air.

image

You can see the Apple icon and the Devil icon in the prompt, and the terminal is configured to use the font.

@dwvisser
Copy link

I’m also successfully using Fira Code Nerd Font Mono, in my case in Windows Terminal and in VS Code on Windows.

@flexiondotorg
Copy link
Author

flexiondotorg commented Jan 24, 2025

In my case, I have FiraCode Nerd Font Mono installed. I am using the default terminal on an M2 macbook air.

I have no idea if the default Terminal can support starship.

Take a look at:

@ymauray
Copy link

ymauray commented Jan 24, 2025

I do have the glyphs, that's not the problem. I just don't have any info in the prompt.

image

But I need to investigate more. Maybe there is simply nothing to display ?

@flexiondotorg
Copy link
Author

Between @popey and I, we've got this prompt working on macOS with iTerm, alacrity, and Ghosty terminals.

@popey
Copy link

popey commented Jan 25, 2025

Yup, here's a screenshot with Ghostty, Alacritty and iTerm2 using this starship config on macOS. I'm using BlexMono Nerd Font Mono, which is a patched version of the IBM Plex Mono font.

image

@ymauray
Copy link

ymauray commented Jan 25, 2025

yep, works like a charm with iTerm2, but not with the default terminal.

@jarrydstan
Copy link

I am using Warp terminal, but also tried on iTerm and the default terminal, all the same! I also can't see the icons in the gist either so maybe its just my mac

It sounds like Nerd Fonts is not installed correctly.

I found the issue in my warp terminal... they have a "Font" section in their appearance settings waaaay down the bottom, so changing that fixed it in the warp terminal.. not sure how to get it to work on the default terminal, but I never use that so no biggy, thanks for you config!

@imochoa
Copy link

imochoa commented Jan 27, 2025

Yup, here's a screenshot with Ghostty, Alacritty and iTerm2 using this starship config on macOS. I'm using BlexMono Nerd Font Mono, which is a patched version of the IBM Plex Mono font.
image

In the bottom left terminal, the apple and ninja emojis are cut off on the right (which is what is happening for me as well)

Has anyone had that problem and fixed it? 🤔

UPDATE
If I put an empty space after the symbol in the TOML file it renders correctly. I wonder if there's a better solution than modifying this file though...

@popey
Copy link

popey commented Jan 27, 2025

Yeah, I noticed that too. I switched to Ghostty so it's no longer an issue for me :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment