A collection of elegant, cohesive themes for the Ghostty terminal by Black Atom Industries
This repository is a Ghostty adapter for the Black Atom theme ecosystem. In the Black Atom architecture:
- The core repository is the single source of truth for all theme definitions
- Each adapter implements these themes for a specific platform (Neovim, VS Code, Alacritty, etc.)
- The adapter uses templates to transform core theme definitions into platform-specific files
This modular approach ensures consistent colors and styling across all supported platforms while allowing for platform-specific optimizations.
Black Atom includes multiple theme collections, each with its own distinct style:
Collection | Themes | Description |
---|---|---|
JPN | koyo-hiru, koyo-yoru, tsuki-yoru | Japanese-inspired themes |
Stations | engineering, operations, medical, research | Space station-inspired themes |
Terra | seasons (spring, summer, fall, winter) × time (day, night) | Earth season-inspired themes |
CRBN | null, supr | Minimalist carbon themes |
All themes are available in both dark and light variants.
- Ghostty terminal emulator
- Black Atom Core (for adapting themes)
- Clone this repository:
git clone https://github.com/black-atom-industries/ghostty.git
cd ghostty
- Adapt the theme files using Black Atom Core:
# From the core repository
black-atom-core adapt
- Copy the adapted
.conf
files to your Ghostty themes directory:
COPY_PATH=~/.config/ghostty/themes
mkdir -p $COPY_PATH
cp themes/*/*.conf $COPY_PATH
Ghostty supports various ways to use themes. Below are the recommended methods for using Black Atom themes with Ghostty.
After installing the themes to your Ghostty themes directory, you can use the built-in theme
option:
# In your ~/.config/ghostty/config file
theme = black-atom-jpn-koyo-yoru
You can also specify different themes for light and dark mode:
# Use different themes based on system appearance
theme = dark:black-atom-terra-fall-night,light:black-atom-terra-fall-day
Don't forget to reload your configuration after changing the theme.
Alternatively, you can directly include a theme file:
# In your ~/.config/ghostty/config file
include ~/.config/ghostty/themes/black-atom-jpn-koyo-yoru.conf
For Ghostty to find themes by name, they must be placed in one of these directories:
$XDG_CONFIG_HOME/ghostty/themes
(typically~/.config/ghostty/themes
)$PREFIX/share/ghostty/themes
# Create the themes directory if it doesn't exist
mkdir -p ~/.config/ghostty/themes
# Copy the generated theme files
cp themes/*/*.conf ~/.config/ghostty/themes/
To see all available themes including the Black Atom themes:
ghostty +list-themes
Ghostty themes are simple configuration files that set color options. Black Atom themes define the following properties:
# Basic terminal colors
background = #value
foreground = #value
cursor-color = #value
cursor-text = #value
selection-background = #value
selection-foreground = #value
# 16-color palette
palette = 0=#value # black
palette = 1=#value # dark red
...
palette = 15=#value # white
For more information on Ghostty themes, see the official documentation.
Our templates use the Eta template engine syntax to inject theme values from the Black Atom core definitions:
background = <%= theme.ui.bg.default %>
foreground = <%= theme.ui.fg.default %>
cursor-color = <%= theme.ui.fg.accent %>
# ...and so on
To create a new template:
- Create a
.template.conf
file in the appropriate collection directory - Use template variables to reference color values from the core definitions
- Add the template to
black-atom-adapter.json
- Adapt the theme using the core CLI
To adapt all themes from the templates, run the black-atom-core adapt
command from the directory of this repository.
# Adapt all themes
black-atom-core adapt
This will process all template files defined in black-atom-adapter.json
and create the corresponding .conf
files.
For theme development, it's more efficient to use symlinks rather than copying files. This allows you to see changes immediately after adapting new theme files without having to copy them again:
# Create the Ghostty themes directory if it doesn't exist
mkdir -p ~/.config/ghostty/themes
# Create symlinks for all theme files
find ~/repos/black-atom-industries/ghostty/themes -name "*.conf" -type f -exec ln -sf {} ~/.config/ghostty/themes/ \;
Alternatively, you can create symlinks for specific collections:
# JPN Collection
ln -sf ~/repos/black-atom-industries/ghostty/themes/jpn/black-atom-jpn-koyo-hiru.conf ~/.config/ghostty/themes/
ln -sf ~/repos/black-atom-industries/ghostty/themes/jpn/black-atom-jpn-koyo-yoru.conf ~/.config/ghostty/themes/
ln -sf ~/repos/black-atom-industries/ghostty/themes/jpn/black-atom-jpn-tsuki-yoru.conf ~/.config/ghostty/themes/
# Stations Collection
ln -sf ~/repos/black-atom-industries/ghostty/themes/stations/black-atom-stations-engineering.conf ~/.config/ghostty/themes/
ln -sf ~/repos/black-atom-industries/ghostty/themes/stations/black-atom-stations-operations.conf ~/.config/ghostty/themes/
ln -sf ~/repos/black-atom-industries/ghostty/themes/stations/black-atom-stations-medical.conf ~/.config/ghostty/themes/
ln -sf ~/repos/black-atom-industries/ghostty/themes/stations/black-atom-stations-research.conf ~/.config/ghostty/themes/
# And so on for Terra and CRBN collections...
With symlinks in place, your workflow becomes:
- Make changes to templates
- Run
black-atom-core adapt
- Reload Ghostty to see changes immediately
Contributions are welcome! If you'd like to improve existing themes or add new features:
- Fork the repository
- Create a feature branch
- Make your changes
- Create a pull request
MIT - See LICENSE for details
- Black Atom Core - Core theme definitions
- Black Atom for Neovim - Neovim adapter
- Black Atom for Zed - Zed editor adapter
- Black Atom for Obsidian - Obsidian adapter