# oxocarbon.nvim: Installation and Configuration for Neovim

> oxocarbon.nvim is a dark and light Neovim color scheme inspired by IBM Carbon, with explicit highlights for common editor and plugin interfaces. It offers three documented installation routes, a Fennel source workflow, and a narrow transparent-background option.

**nyoom-engineering/oxocarbon.nvim** — A dark and light Neovim theme written in fennel, inspired by IBM Carbon.

- Repository: https://github.com/nyoom-engineering/oxocarbon.nvim
- Stars: 1,649 · Forks: 97
- Language: Fennel
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/nyoom-engineering-oxocarbon-nvim

## Why oxocarbon.nvim targets Neovim plugin workflows

oxocarbon.nvim solves a focused editor problem: assigning a coherent color scheme across Neovim's built-in interface and the plugins commonly placed on top of it. It provides dark and light variants inspired by the themes described by the IBM Carbon design system. Its palette centers on blues, industrial grays, black, and white, with other color families reserved for particular purposes.

The explicit plugin coverage matters as much as the palette. The README lists Vim Diagnostics, Vim LSP, Nvim-Treesitter, Telescope, Nvim-Notify, Nvim-Cmp, NvimTree, Neogit, Gitsigns, Hydra, and Flash among the interfaces for which the color scheme adds highlights. The project also states support for Semantic Highlighting. This makes it relevant to users who have adopted a plugin-oriented Neovim setup and do not want every component to rely on generic fallback colors.

The intended user is a Neovim user selecting a color scheme, not someone looking for a terminal color library, icon set, or complete appearance package. oxocarbon.nvim changes highlighting. It does not document installation of the listed plugins, configuration of their features, or a command-line interface. Readers should also not confuse this repository with an existing port for another editor. The README calls it the reference implementation and says the project is looking for ports, but the documented commands target Neovim package managers.

## Fennel source and Neovim highlight structure

The current reference implementation is written in Fennel. Based on the repository layout, theme sources are kept under `fnl/`, while `colors/` and `lua/` provide additional project files. The root includes `make.fnl`, which is the build entry point used during development. Fennel is therefore part of the theme's implementation structure rather than an incidental dependency mentioned only for contributors.

The documented development flow is to edit files under `fnl/`, compile them by running `fennel make.fnl`, and then make a pull request. A POSIX-compliant system and the `fennel` executable are required for that workflow. The README does not give a separate source-build sequence for end users, so the package-manager examples remain the concrete installation path for normal use.

At runtime, usage consists of selecting Neovim's `background` option and loading the registered `oxocarbon` color scheme. The README also documents direct calls to `vim.api.nvim_set_hl` for transparency. Those calls replace the background of `Normal`, `NormalFloat`, and `NormalNC` with `"none"`. This is an explicit post-load adjustment rather than a documented transparency option in the color scheme itself. The three groups make the approach precise, but they do not cover every Neovim window or plugin surface.

## Installing oxocarbon.nvim through Lazy.nvim or vim.pack

For Lazy.nvim, add the repository specification and set `build = false`. The other commented fields in the README are examples of optional Lazy.nvim specification fields, not required Oxocarbon configuration.

Add this specification to your Lazy.nvim setup:

```lua
return {
  "nyoom-engineering/oxocarbon.nvim",
  build = false,
}
```

The repository path identifies the project, and `build = false` tells the documented configuration not to run a build for this package. The README does not require `event`, `config`, or another Lazy.nvim field.

If you use `vim.pack`, the README supplies one `vim.pack.add` call. This route adds the Git repository URL directly:

```lua
vim.pack.add({"https://github.com/nyoom-engineering/oxocarbon.nvim"})
```

These two routes differ in configuration format but target the same `main` repository described by the README. Choose the package manager already present in your Neovim configuration instead of introducing another manager solely for the theme. After either installation path completes, load the scheme with the configuration described later in this article.

## Installing oxocarbon.nvim with rocks.nvim

rocks.nvim has two documented setup routes. The first uses a command entered through Neovim's command interface:

```vim
:Rocks install oxocarbon.nvim
```

The second declares the plugin in `rocks.toml`. The documented package name is `oxocarbon.nvim`, the version setting is `"scm-1"`, and `opt = true` enables the package's optional integration:

```toml
[plugins]
"oxocarbon.nvim" = { version = "scm-1", opt = true }
```

The repository root includes `oxocarbon.nvim-scm-1.rockspec`, which matches the package identity in the documented declaration. The README does not define a separate build command for normal installation. It also does not document update commands, lockfile behavior, version migrations, or rollback for rocks.nvim, so those operations cannot be assumed from the setup example.

This route is useful when Neovim configuration already uses rocks.nvim. If your configuration uses Lazy.nvim or `vim.pack`, the earlier documented routes keep the package declaration within the existing manager. The theme's Fennel source does not require these end users to run `fennel make.fnl`; the README identifies that command as part of the contributor workflow after changing files under `fnl/`.

## Selecting dark or light mode in oxocarbon.nvim

Set `vim.opt.background` before applying the color scheme. The documented values are `"dark"` and `"light"`. Once these lines run, the configuration requests the selected background mode and loads the registered `oxocarbon` color scheme.

Use this as the first working configuration:

```lua
vim.opt.background = "dark" -- set this to dark or light
vim.cmd.colorscheme "oxocarbon"
```

Changing `"dark"` to `"light"` is the only mode variation shown by the README. The second line assumes that the installed package registers the scheme under `oxocarbon`; it does not reference a file in the repository's `colors/` directory.

If you want the editor background to inherit the underlying background, apply the documented highlight changes after `colorscheme` has loaded:

```lua
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" })
```

The README states that the scheme uses `Termguicolors` but remains compatible with 16-color terminals. It does not provide a separate terminal configuration command or file, so `vim.opt.background` and the color scheme command are the only complete first-use instructions the project documents.

## Plugin coverage, unsupported assumptions, and Fennel maintenance

The main reason to inspect this theme is its explicit mapping for common plugins. Vim Diagnostics provides colored editor diagnostics, Vim LSP and Semantic Highlighting cover editor and language states, Nvim-Treesitter covers syntax groups, and the listed interface plugins receive dedicated highlight handling. A Neovim user can compare this scheme with a generic color scheme without resolving every named plugin integration first.

Coverage is still bounded. The README says other plugins should "just work!" and invites issues or pull requests when a plugin needs explicit highlights. It does not publish a tested compatibility matrix for unnamed plugins or enumerate every supported Neovim version. The repository also has no GitHub releases, so the README and release page provide no tagged upgrade series or release notes to use for compatibility decisions.

The Fennel source affects maintenance work for contributors. Changes begin under `fnl/`, and a POSIX-compliant system plus `fennel` are needed to compile them with `fennel make.fnl`. Users installing a packaged copy do not need to perform that contributor workflow according to the README. Contributors should use the documented command rather than assuming that editing another generated file is the preferred source workflow.

The repository is not archived, and its last push was on 2026-09-07. That confirms a recent repository update, but the absence of GitHub releases means there is no documented release cadence. Maintenance therefore has two distinct costs: package declarations must be maintained in the chosen Neovim package manager, while direct configuration such as the three transparent highlight groups must be checked after upgrading Neovim or the theme.

## oxocarbon.nvim versus the older rust branch

The repository documents an alternative implementation: an older Rust version is available on the `rust` branch. The current `main` branch identifies the Fennel project as the reference implementation, while the README directs users who want the older Rust version to that branch. This is an implementation distinction within the same project, not a separate competitor with a different installation model.

The README does not document configuration, supported Neovim versions, plugin coverage, or migration steps for the `rust` branch. It would therefore be unsafe to assume that the older branch has the same palette definitions, explicit plugin highlights, light mode, or terminal compatibility as `main`. Inspect that branch's own files before selecting it, especially if your reason for choosing Oxocarbon is a particular Fennel change or plugin mapping.

The three Neovim package-manager routes are closer alternatives in operational terms. Lazy.nvim uses a repository specification with `build = false`. `vim.pack` accepts the repository URL through `vim.pack.add`. rocks.nvim supports a `:Rocks install` command and a `rocks.toml` entry using `"scm-1"` with `opt = true`. These routes should provide access to the same repository but leave version selection, updates, and cleanup to their respective managers.

Use the current Fennel implementation unless you have a specific reason to inspect the older Rust branch. For either implementation, verify actual syntax and interface colors in your Neovim setup before removing a working theme.

## Conclusion

Adopt oxocarbon.nvim if you use Neovim and want an IBM Carbon-inspired palette with defined colors for LSP, Treesitter, diagnostics, and several popular plugins. Do not choose it if you need a published release history, documented rollback process, or an existing port for another editor. Before replacing your current theme, verify that Lazy.nvim, vim.pack, or rocks.nvim completes its documented installation path, then inspect both dark and light mode, transparency, and the plugins whose colors affect your work.

## FAQ

### How do I install oxocarbon.nvim with Lazy.nvim?

Add the repository specification shown in the README and set `build = false`. Then set `background` to `"dark"` or `"light"` and run `vim.cmd.colorscheme "oxocarbon"`.

### Does oxocarbon.nvim support dark and light backgrounds?

Yes. Set `vim.opt.background` to `"dark"` or `"light"` before loading the `oxocarbon` color scheme.

### How do I make the oxocarbon.nvim background transparent?

After loading the color scheme, set the `bg` value of `Normal`, `NormalFloat`, and `NormalNC` to `"none"` with `vim.api.nvim_set_hl`.

## Sources

- [Issues](https://github.com/nyoom-engineering/oxocarbon.nvim/issues)
- [License: MIT](https://github.com/nyoom-engineering/oxocarbon.nvim/blob/main/LICENSE)
- [nyoom-engineering/oxocarbon.nvim on GitHub](https://github.com/nyoom-engineering/oxocarbon.nvim)
- [README](https://github.com/nyoom-engineering/oxocarbon.nvim/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nyoom-engineering-oxocarbon-nvim
