Skip to content

Configuration ​

SilkCircuit is highly customizable while providing sensible defaults.

Basic Setup ​

lua
require("silkcircuit").setup({
  transparent = false,     -- Enable transparent background
  terminal_colors = true,  -- Configure terminal colors
  dim_inactive = false,    -- Dim inactive windows
  variant = "neon",        -- Theme variant
})

Configuration Options ​

variant ​

Choose your theme variant:

lua
variant = "neon"     -- 100% intensity (default)
variant = "vibrant"  -- 85% intensity
variant = "soft"     -- 70% intensity
variant = "glow"     -- Ultra-dark backgrounds
variant = "dawn"     -- Light theme

You can also switch variants at runtime:

vim
:SilkCircuit dawn

transparent ​

Enable transparent backgrounds for terminal transparency:

lua
transparent = true

TIP

When using transparency, you may want to adjust your terminal's background blur settings for best results.

terminal_colors ​

Configure Neovim's built-in terminal colors:

lua
terminal_colors = true  -- Apply theme to :terminal

dim_inactive ​

Dim unfocused windows:

lua
dim_inactive = true  -- Reduce brightness of inactive splits

Styling Options ​

Customize syntax highlighting styles:

lua
require("silkcircuit").setup({
  styles = {
    comments = { italic = true },
    keywords = { bold = true },
    functions = { bold = true, italic = true },
    variables = {},
    strings = { italic = true },
  },
})

Available style options:

  • italic: Render in italic
  • bold: Render in bold
  • underline: Add underline
  • strikethrough: Add strikethrough

Plugin Integrations ​

Enable or disable specific plugin integrations:

lua
require("silkcircuit").setup({
  integrations = {
    telescope = true,    -- Telescope
    neotree = true,      -- Neo-tree
    notify = true,       -- nvim-notify
    cmp = true,          -- nvim-cmp
    mini = true,         -- mini.nvim
    -- See :h silkcircuit-integrations for full list
  },
})

All 39 integrations ship enabled and their highlights load whether or not the plugin is installed, so the only reason to touch this table is to turn one off. The newer keys are blink_cmp, fzf_lua, oil, trouble, lazy, grug_far, treesitter_context, fidget, neotest, and dropbar; see :h silkcircuit-integrations for the full list.

Custom Highlights ​

Override any highlight group:

lua
require("silkcircuit").setup({
  on_highlights = function(highlights, colors)
    -- Use theme colors
    highlights.Function = { fg = colors.cyan, bold = true }
    highlights.Comment = { fg = colors.comment, italic = true }

    -- Or custom colors
    highlights.MyCustomGroup = { fg = "#ff00ff", bg = "#000000" }
  end,
})

Available Colors ​

The colors table includes:

ColorDescription
purpleKeywords, control flow
cyanFunctions, methods
pinkTags, booleans
pink_softStrings
coralNumbers, constants
yellowClasses, types
greenSuccess, git add
redErrors, git delete
grayLine numbers, glyphs
commentComments (purple)
bgBackground
fgForeground

Persistent Preferences ​

SilkCircuit automatically saves your variant preference. When you switch variants with :SilkCircuit dawn, it will remember your choice for future sessions.

Preferences are stored in ~/.local/share/nvim/silkcircuit_preferences.json.

Example Configurations ​

Minimal Setup ​

lua
require("silkcircuit").setup({})
vim.cmd.colorscheme("silkcircuit")

Light Theme User ​

lua
require("silkcircuit").setup({
  variant = "dawn",
  styles = {
    comments = { italic = true },
  },
})

Maximum Effect ​

lua
require("silkcircuit").setup({
  variant = "glow",
  transparent = true,
  styles = {
    comments = { italic = true },
    keywords = { bold = true },
    functions = { bold = true, italic = true },
    strings = { italic = true },
  },
})