

Oxocarbon is a High-Contrast accessible colorscheme inspired by IBM Carbon. It delivers class-leading readability without strain by adhering to WCAG 2.1 guidelines.
There are 9 variants to the theme: standard theme, an OLED variant, Compatibility variants for both, Monochrom variants for each of those, and a PRINT variant.
The standard theme features a consistent dark background, modeled after a focus on the editor

The OLED theme is the same as the standard theme, but optimized for OLED and MiniLED displays with a pure black background and dimmed menus

The compatibility variants provide contrast for tabs and menus to enable a more consistent experience on traditional VSCode layouts
A hallmark of Oxocarbon is the attention to font styling alongside color, which is highlighted in the monochrome variants.
The PRINT variant inverts Oxocarbon OLED Monochrom to create a paper-friendly light theme for printing and e-ink displays
- Comprehensive semantic highlighting
- Carefully crafted color palette for maximum contrast and readability
- Monochrome and Compatibility variants for a more traditional feel
- Support for various editor features:
- Semantic tokens
- Git decorations
- Debug & Testing
- Terminal colors
- Status bar indicators
- Editor widgets and overlays
- Bracket pair colorization
- Remote Development
- Inlay hints
- Peek view
- Printing
- Diff editor
- Jupyter Notebook support
- Quick input
- Menu styling
- Gauge indicators
- Minimap customization
- Banner styling
- Cursor Chat
Any language with a TextMate parser and/or semantic highlighting support is supported (i.e. almost all of them).
Oxocarbon also provides handrolled syntax highlighting for:
- C
- Rust
- Go
- Lisp
- Java
- Haskell
- OCaml
- Verilog
- Markdown
- TOML
Install using your package manager of choice: Oxocarbon Theme - Visual Studio Marketplace, Oxocarbon Theme - Open VSX Registry
Alternatively, a VSIX package can be found under releases
- Download repository source as ZIP
- Unpack in
~/.vscode/extensions
(VSCode) or~/.cursor/extensions
(Cursor) - Reload editor then set theme to either
oxocarbon
oroxocarbon OLED
It is recommended to enable Semantic Parsing by default
{
"editor.semanticHighlighting.enabled": true,
}
Rust semantic parsing is buggy, so it is recommended to default back to TextMate parsing. In your settings.json
:
{
"[rust]": {
"editor.semanticHighlighting.enabled": false,
},
}
It is recommended to disable Bracket Pair Colorization by default and enable it on a case-by-case basis
{
"editor.bracketPairColorization.enabled": false,
"[commonlisp]": {
"editor.bracketPairColorization.enabled": true,
},
}
(optional) Install the Liga SFMono Nerd Font
font for the best experience
{
"editor.fontFamily": "Liga SFMono Nerd Font, monospace",
"editor.fontLigatures": true,
"editor.fontSize": 14,
}
On HiDPI/Retina displays, you may find text rendering improved by adjusting font anti-aliasing.
{
"workbench.fontAliasing": "auto",
}
(optional) enable smooth scrolling and cursor effects
{
"editor.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": "on",
"terminal.integrated.smoothScrolling": true,
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.enableVisualBell": true,
}
An opinionated settings.json
, keybindings.json
, and list of extensions are also provided under assets/
in the GitHub repository. On UNIX systems, you may clone this repository, install Cursor, and run make install
to install the configuration.
The following requires Cargo
/Rust
. Changes should be made in oxocarbon.toml
To generate the JSON file, run make
in the root directory. To test the colorscheme, press F5
Reference the Theme Color Reference & Semantic Highlight Guide for highlight groups.
Additionally, add the following in your keybindings.json
to use cmd+shift+i
to inspect the highlight at cursor
{
"key": "cmd+shift+i",
"command": "editor.action.inspectTMScopes"
}
You may also run make dev
for file watcher & incremental compilation
Before contributing, it's recommended to read through the style guide. Discussion primarily takes place on the Nyoom Engineering Discord Server.
The project is vendored under the MIT license.
Preliminary support for autogenerating themes from VSCode implementation(s)
Note, these are provided as-is under nightly releases
Uses the Zed Team's theme_importer
crate
Depends on gpui
for the time being, so ensure dependencies
E.g. on macOS (make sure full Xcode is installed, not just command-line-tools)
# need cmake
nix shell nixpkgs#cmake nixpkgs#jq
# use app toolchain
sudo xcode-select -s /Applications/Xcode.app
# install metal toolchain
xcodebuild -downloadComponent MetalToolchain
# build gpui, translate themes, bundle
make zed
# install theme + dotfiles
make install-zed
# run zed
zed
Uses in-house json2tm
crate, works with Textmate-compatible editors
# translate themes
make textmate
# (optional) install to Sublime user folder (macOS only)
make install-sublime
# (optional) install to Textmate (macOS only)
make install-textmate
Tested with; including but not limited to
- Textmate
- Sublime Text
- Atom (deprecated)
- RStudio
As the Textmate themes only affect the code window, compatibility variants are not generated
Generates complementary themes for Sublime Text UI. Uses in-house json2st
crate
# translate themes
make sublime-ui
# (optional) install to Sublime user folder (macOS only)
make install-sublime-ui
(not recommended)
Uses Jetbrain's colorSchemeTool
# translate themes
make intellij
# settings -> color theme -> cog -> manual import
Use Microsoft's Theme Converter for Visual Studio, requires .NET Desktop & the Visual Studio extension development enviornment. JSON files are in themes
Convert any VSCode theme
./scripts/vsc.sh <input.json>
# e.g. convert material theme
./scripts/vsc.sh ./assets/Community-Material-Theme-Darker-High-Contrast.json
Patch Cursor to use VSCode's Proprietary Marketplace instead of OpenVSX
./scripts/patch-cursor-marketplace.sh
Benchmark the Neon implementation
./scripts/benchneon.py --iterations 2 --warmups 0 --tokens 1000 --color-keys 200