- Published on
My WezTerm & Starship Setup on macOS

TOC
My WezTerm & Starship Setup on macOS
A concise guide to how I configure WezTerm and the Starship prompt on my new Mac.
Environment Setup on macOS
Install with Homebrew
brew install wezterm brew install starship
Create configuration directories
mkdir -p ~/.config/wezterm
Enable Starship in your shell (e.g. in
~/.zshrc
or~/.bash_profile
):# At the end of your shell config eval "$(starship init zsh)"
WezTerm Configuration
Put this in ~/.config/wezterm/wezterm.lua
:
local wezterm = require("wezterm")
config = wezterm.config_builder()
config = {
automatically_reload_config = true,
color_scheme = "Nord (Gogh)",
enable_tab_bar = false,
-- window_decorations = "RESIZE",
window_close_confirmation = "NeverPrompt",
default_cursor_style = "BlinkingBar",
background = {
{
source = {
Color = "#2E3440", -- dark purple
-- Image = "~/Pictures/wallpapers/wallhaven.png",
},
width = "100%",
height = "100%",
-- width = "Cover",
-- height = "Cover",
opacity = 0.99,
},
},
window_padding = {
left = 3,
right = 3,
top = 0,
bottom = 0,
},
initial_rows = 50,
initial_cols = 100,
}
return config
Highlights
- Auto-reload your config on save
- Nord (Gogh) color scheme
- Minimal UI: no tab bar, no close confirmation prompt
- Custom background with subtle opacity
- Comfortable padding and size defaults
Starship Prompt Configuration
Preset from here
Save this as ~/.config/starship.toml
:
fformat = """\
[╭╴](fg:arrow)\
$username\
$os\
$git_branch\
(\
at \
$directory\
)\
$cmd_duration\
(\
via \
$python\
$conda\
$nodejs\
$c\
$rust\
$java\
)
[╰─](fg:arrow)$character\
"""
# Add the modules you need
# Disable the blank line at the start of the prompt
add_newline = true
palette = "normal"
[palettes.normal]
arrow = "#333533"
os = "#16f4d0"
os_admin = "#e4ff1a"
directory = "#9ffff5"
time = "#bdfffd"
node = "#a5e6ba"
git = "#f17f29"
git_status = "#DFEBED"
python = "#edf67d"
conda = "#70e000"
java = "#F86279"
rust = "#ffdac6"
clang = "#caf0f8"
duration = "#ce4257"
text_color = "#EDF2F4"
text_light = "#26272A"
# I disabled some modules (Rust, Java...) since some things aren't installed in my machine, enable them if you need.
[username]
style_user = 'bold os'
style_root = 'bold os_admin'
format = '[ $user](fg:$style) '
disabled = false
show_always = true
[os]
format = "on [($name)]($style) "
style = "bold blue"
disabled = true
[os.symbols]
Alpine = " "
Arch = " "
Debian = " "
EndeavourOS = " "
Fedora = " "
Linux = " "
Macos = " "
Manjaro = " "
Mint = " "
NixOS = " "
openSUSE = " "
Pop = " "
SUSE = " "
Ubuntu = " "
Windows = " "
[character]
success_symbol = "[](fg:arrow)"
error_symbol = "[](fg:red)"
[directory]
format = "[$path](bold $style)[$read_only]($read_only_style) "
truncation_length = 2
style = "fg:directory"
read_only_style = "fg:directory"
before_repo_root_style = "fg:directory"
truncation_symbol = "…/"
truncate_to_repo = true
read_only =" "
[time]
disabled = true
format = "at [ $time]($style)"
time_format = "%H:%M"
style = "bold fg:time"
[cmd_duration]
format = "took [ $duration]($style) "
style = "bold fg:duration"
min_time = 500
[git_branch]
format = "via [$symbol$branch]($style) "
style = "bold fg:git"
symbol = " "
[git_status]
format = '[ $all_status$ahead_behind ]($style)'
style = "fg:text_color bg:git"
disabled = true
[docker_context]
disabled=true
symbol = " "
[package]
disabled=true
[fill]
symbol = " "
[nodejs]
format = "[ $symbol$version ]($style)"
style = "bg:node fg:text_light"
symbol = " "
version_format = "${raw}"
disabled=false
[python]
disabled=false
format = '[ ${symbol}${pyenv_prefix}(${version})( \($virtualenv\)) ]($style)'
symbol = " "
version_format = "${raw}"
style = "bg:python fg:text_light"
[conda]
format = "[ $symbol$environment ]($style)"
style = "bg:conda fg:text_light"
ignore_base = false
disabled = false
symbol = " "
[java]
format = "[ $symbol$version ]($style)"
style = "bg:java fg:text_light"
version_format = "${raw}"
symbol = " "
disabled = true
[c]
format = "[ $symbol($version(-$name)) ]($style)"
style = "bg:clang fg:text_light"
symbol = " "
version_format = "${raw}"
disabled=true
[rust]
format ="[ $symbol$version ]($style)"
style = "bg:rust fg:text_light"
symbol = " "
version_format = "${raw}"
disabled=true