feat: extend nvim plugin highlights + add tmux target

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 22:24:19 +02:00
parent 799601134d
commit e61f892841
10 changed files with 1329 additions and 1 deletions

View File

@@ -12,7 +12,7 @@ Regenerates all theme files from `src/*.yaml` via Jinja2 templates into `dist/`.
## Architecture
Apex is a **theme factory** — a build system that generates native theme configs for 14+ applications from a single semantic color specification.
Apex is a **theme factory** — a build system that generates native theme configs for 18 applications from a single semantic color specification.
**Data flow:**
1. `src/neon.yaml` and `src/aeon.yaml` define the canonical color palette and semantic roles
@@ -46,3 +46,8 @@ Before modifying `src/*.yaml`, consult `GEMINI.md` to verify that any new or cha
## Validation
After changes, run `uv run build.py` and inspect relevant files in `dist/`. For Neovim-specific validation, `scripts/nvim-audit.sh` is available.
## Scripts
- `scripts/release.sh` — Per-app versioning and Gitea release automation. Usage: `bash scripts/release.sh <semver>`. Discovers changed apps via git diff, updates `meta.yaml` version fields, builds, and publishes tarballs. Supports `--dry-run`.
- `scripts/nvim-audit.sh` — Validates the built Neovim theme by running headless Neovim. Requires `dist/nvim/colors/apex-neon.lua` to exist first.

View File

@@ -238,6 +238,353 @@ function M.load()
CmpItemKindMethod = { fg = p.azure },
CmpItemKindKeyword = { fg = p.sacred },
CmpItemKindVariable = { fg = p.text },
-- PLUGINS: BLINK.CMP (Completion) ----------------------------------------
BlinkCmpMenu = { fg = p.text, bg = p.panel },
BlinkCmpMenuBorder = { fg = p.border, bg = p.panel },
BlinkCmpMenuSelection = { fg = p.ink, bg = p.razor, bold = true },
BlinkCmpScrollBarThumb = { bg = p.stealth },
BlinkCmpScrollBarGutter = { bg = p.panel },
BlinkCmpLabel = { fg = p.text },
BlinkCmpLabelDeprecated = { fg = p.dim, strikethrough = true },
BlinkCmpLabelMatch = { fg = p.tech, bold = true },
BlinkCmpKindText = { fg = p.text },
BlinkCmpKindMethod = { fg = p.azure },
BlinkCmpKindFunction = { fg = p.azure },
BlinkCmpKindConstructor = { fg = p.amber },
BlinkCmpKindField = { fg = p.text },
BlinkCmpKindVariable = { fg = p.text },
BlinkCmpKindClass = { fg = p.amber },
BlinkCmpKindInterface = { fg = p.amber },
BlinkCmpKindModule = { fg = p.amber },
BlinkCmpKindProperty = { fg = p.text },
BlinkCmpKindUnit = { fg = p.tech },
BlinkCmpKindValue = { fg = p.tech },
BlinkCmpKindEnum = { fg = p.amber },
BlinkCmpKindKeyword = { fg = p.sacred },
BlinkCmpKindSnippet = { fg = p.toxic },
BlinkCmpKindColor = { fg = p.tech },
BlinkCmpKindFile = { fg = p.text },
BlinkCmpKindReference = { fg = p.tech },
BlinkCmpKindFolder = { fg = p.text },
BlinkCmpKindEnumMember = { fg = p.tech },
BlinkCmpKindConstant = { fg = p.tech },
BlinkCmpKindStruct = { fg = p.amber },
BlinkCmpKindEvent = { fg = p.amber },
BlinkCmpKindOperator = { fg = p.text },
BlinkCmpKindTypeParameter = { fg = p.amber },
BlinkCmpGhostText = { fg = p.stealth, italic = true },
BlinkCmpDoc = { fg = p.text, bg = p.panel },
BlinkCmpDocBorder = { fg = p.border, bg = p.panel },
BlinkCmpDocSeparator = { fg = p.border, bg = p.panel },
BlinkCmpDocCursorLine = { bg = p.border },
BlinkCmpSignatureHelp = { fg = p.text, bg = p.panel },
BlinkCmpSignatureHelpBorder = { fg = p.border, bg = p.panel },
BlinkCmpSignatureHelpActiveParameter = { fg = p.ink, bg = p.tech, bold = true },
BlinkCmpSource = { fg = p.dim },
-- PLUGINS: BUFFERLINE -----------------------------------------------------
BufferLineBackground = { fg = p.dim, bg = p.panel },
BufferLineFill = { bg = p.panel },
BufferLineBuffer = { fg = p.dim, bg = p.panel },
BufferLineBufferSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineBufferVisible = { fg = p.dim, bg = p.panel },
BufferLineTab = { fg = p.dim, bg = p.panel },
BufferLineTabSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineTabClose = { fg = p.razor, bg = p.panel },
BufferLineModified = { fg = p.tech, bg = p.panel },
BufferLineModifiedSelected = { fg = p.tech, bg = p.void },
BufferLineModifiedVisible = { fg = p.tech, bg = p.panel },
BufferLineSeparator = { fg = p.border, bg = p.panel },
BufferLineSeparatorSelected = { fg = p.border, bg = p.void },
BufferLineSeparatorVisible = { fg = p.border, bg = p.panel },
BufferLineIndicatorSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButton = { fg = p.dim, bg = p.panel },
BufferLineCloseButtonSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButtonVisible = { fg = p.dim, bg = p.panel },
BufferLineDiagnostic = { fg = p.dim, bg = p.panel },
BufferLineDiagnosticSelected = { fg = p.dim, bg = p.void },
BufferLineError = { fg = p.alert, bg = p.panel },
BufferLineErrorSelected = { fg = p.alert, bg = p.void, bold = true },
BufferLineWarning = { fg = p.amber, bg = p.panel },
BufferLineWarningSelected = { fg = p.amber, bg = p.void, bold = true },
BufferLineInfo = { fg = p.tech, bg = p.panel },
BufferLineInfoSelected = { fg = p.tech, bg = p.void, bold = true },
BufferLineHint = { fg = p.dim, bg = p.panel },
BufferLineHintSelected = { fg = p.dim, bg = p.void, bold = true },
BufferLinePick = { fg = p.razor, bg = p.panel, bold = true },
BufferLinePickSelected = { fg = p.razor, bg = p.void, bold = true },
BufferLinePickVisible = { fg = p.razor, bg = p.panel, bold = true },
-- PLUGINS: WHICH-KEY ------------------------------------------------------
WhichKey = { fg = p.razor, bold = true },
WhichKeySeparator = { fg = p.stealth },
WhichKeyGroup = { fg = p.tech },
WhichKeyDesc = { fg = p.text },
WhichKeyFloat = { bg = p.panel },
WhichKeyBorder = { fg = p.border, bg = p.panel },
WhichKeyTitle = { fg = p.ink, bg = p.razor, bold = true },
WhichKeyNormal = { fg = p.text, bg = p.panel },
WhichKeyValue = { fg = p.dim },
WhichKeyIcon = { fg = p.azure },
WhichKeyIconAzure = { fg = p.azure },
WhichKeyIconGreen = { fg = p.toxic },
WhichKeyIconYellow = { fg = p.amber },
WhichKeyIconRed = { fg = p.razor },
WhichKeyIconPurple = { fg = p.sacred },
WhichKeyIconCyan = { fg = p.tech },
-- PLUGINS: TROUBLE --------------------------------------------------------
TroubleNormal = { fg = p.text, bg = p.void },
TroubleNormalNC = { fg = p.dim, bg = p.void },
TroubleText = { fg = p.text },
TroubleCount = { fg = p.ink, bg = p.razor, bold = true },
TroubleError = { fg = p.alert },
TroubleWarning = { fg = p.amber },
TroubleHint = { fg = p.dim },
TroubleInfo = { fg = p.tech },
TroubleSource = { fg = p.dim },
TroubleCode = { fg = p.stealth },
TroubleLocation = { fg = p.dim },
TroubleFile = { fg = p.tech, bold = true },
TroubleIndent = { fg = p.border },
TroublePos = { fg = p.dim },
TroubleSignError = { fg = p.alert },
TroubleSignWarning = { fg = p.amber },
TroubleSignHint = { fg = p.dim },
TroubleSignInfo = { fg = p.tech },
TroublePreview = { fg = p.ink, bg = p.razor },
TroubleFocusText = { fg = p.text, bold = true },
-- PLUGINS: INDENT-BLANKLINE -----------------------------------------------
IblIndent = { fg = p.border },
IblScope = { fg = p.stealth },
IblWhitespace = { fg = p.border },
-- PLUGINS: NEOGIT ---------------------------------------------------------
NeogitBranch = { fg = p.razor, bold = true },
NeogitRemote = { fg = p.tech },
NeogitHunkHeader = { fg = p.text, bg = p.panel, bold = true },
NeogitHunkHeaderHighlight = { fg = p.ink, bg = p.tech, bold = true },
NeogitDiffAdd = { fg = p.toxic, bg = p.void },
NeogitDiffDelete = { fg = p.razor, bg = p.void },
NeogitDiffContext = { fg = p.dim, bg = p.void },
NeogitDiffAddHighlight = { fg = p.toxic, bg = p.panel },
NeogitDiffDeleteHighlight = { fg = p.razor, bg = p.panel },
NeogitDiffContextHighlight = { fg = p.text, bg = p.panel },
NeogitCommitViewHeader = { fg = p.ink, bg = p.razor, bold = true },
NeogitFilePath = { fg = p.tech, underline = true },
NeogitDiffHeader = { fg = p.amber, bold = true },
NeogitDiffHeaderHighlight = { fg = p.ink, bg = p.amber, bold = true },
NeogitObjectId = { fg = p.dim },
NeogitStashes = { fg = p.sacred },
NeogitRebaseDone = { fg = p.toxic },
NeogitFold = { fg = p.stealth },
-- PLUGINS: AERIAL (Symbols Outline) --------------------------------------
AerialLine = { fg = p.ink, bg = p.razor },
AerialLineNC = { fg = p.dim, bg = p.panel },
AerialNormal = { fg = p.text, bg = p.void },
AerialGuide = { fg = p.border },
AerialClass = { fg = p.amber },
AerialClassIcon = { fg = p.amber },
AerialFunction = { fg = p.azure },
AerialFunctionIcon = { fg = p.azure },
AerialMethod = { fg = p.azure },
AerialMethodIcon = { fg = p.azure },
AerialConstructor = { fg = p.amber },
AerialField = { fg = p.text },
AerialVariable = { fg = p.text },
AerialEnum = { fg = p.amber },
AerialEnumIcon = { fg = p.amber },
AerialInterface = { fg = p.amber },
AerialModule = { fg = p.amber },
AerialNamespace = { fg = p.amber },
AerialPackage = { fg = p.amber },
AerialProperty = { fg = p.text },
AerialStruct = { fg = p.amber },
AerialType = { fg = p.amber },
AerialTypeParameter = { fg = p.amber },
AerialConstant = { fg = p.tech },
AerialString = { fg = p.toxic },
AerialNumber = { fg = p.tech },
AerialBoolean = { fg = p.tech },
AerialKey = { fg = p.sacred },
AerialKeyword = { fg = p.sacred },
AerialOperator = { fg = p.text },
AerialNull = { fg = p.dim },
AerialArray = { fg = p.tech },
AerialObject = { fg = p.amber },
AerialEvent = { fg = p.amber },
-- PLUGINS: DAP-UI ---------------------------------------------------------
DapUIScope = { fg = p.tech, bold = true },
DapUIType = { fg = p.amber },
DapUIDecoration = { fg = p.border },
DapUIThread = { fg = p.toxic },
DapUIStoppedThread = { fg = p.razor, bold = true },
DapUICurrentFrameName = { fg = p.razor, bold = true },
DapUISource = { fg = p.dim },
DapUILineNumber = { fg = p.stealth },
DapUIFloatBorder = { fg = p.border, bg = p.panel },
DapUIFloatNormal = { fg = p.text, bg = p.panel },
DapUIWatchesEmpty = { fg = p.dim },
DapUIWatchesValue = { fg = p.toxic },
DapUIWatchesError = { fg = p.alert },
DapUIBreakpointsPath = { fg = p.tech },
DapUIBreakpointsInfo = { fg = p.dim },
DapUIBreakpointsCurrentLine = { fg = p.razor, bold = true },
DapUIBreakpointsDisabledLine = { fg = p.stealth },
DapUIEndofBuffer = { fg = p.void },
DapUIModifiedValue = { fg = p.amber, bold = true },
DapUIStop = { fg = p.razor },
DapUIStepOver = { fg = p.tech },
DapUIStepInto = { fg = p.tech },
DapUIStepBack = { fg = p.tech },
DapUIStepOut = { fg = p.tech },
DapUIRestart = { fg = p.toxic },
DapUIUnavailable = { fg = p.stealth },
DapUIPlayPause = { fg = p.toxic },
-- PLUGINS: DAP VIRTUAL TEXT -----------------------------------------------
NvimDapVirtualText = { fg = p.dim, italic = true },
NvimDapVirtualTextChanged = { fg = p.amber, italic = true },
NvimDapVirtualTextError = { fg = p.alert, italic = true },
NvimDapVirtualTextInfo = { fg = p.tech, italic = true },
-- PLUGINS: NVIM-NOTIFY ----------------------------------------------------
NotifyERRORBorder = { fg = p.razor },
NotifyWARNBorder = { fg = p.amber },
NotifyINFOBorder = { fg = p.tech },
NotifyDEBUGBorder = { fg = p.stealth },
NotifyTRACEBorder = { fg = p.sacred },
NotifyERRORIcon = { fg = p.razor },
NotifyWARNIcon = { fg = p.amber },
NotifyINFOIcon = { fg = p.tech },
NotifyDEBUGIcon = { fg = p.stealth },
NotifyTRACEIcon = { fg = p.sacred },
NotifyERRORTitle = { fg = p.razor, bold = true },
NotifyWARNTitle = { fg = p.amber, bold = true },
NotifyINFOTitle = { fg = p.tech, bold = true },
NotifyDEBUGTitle = { fg = p.stealth, bold = true },
NotifyTRACETitle = { fg = p.sacred, bold = true },
NotifyERRORBody = { fg = p.text, bg = p.panel },
NotifyWARNBody = { fg = p.text, bg = p.panel },
NotifyINFOBody = { fg = p.text, bg = p.panel },
NotifyDEBUGBody = { fg = p.dim, bg = p.panel },
NotifyTRACEBody = { fg = p.dim, bg = p.panel },
-- PLUGINS: SATELLITE (Scrollbar) -----------------------------------------
SatelliteBar = { bg = p.panel },
SatelliteCursor = { fg = p.razor },
SatellitePosition = { fg = p.dim },
SatelliteError = { fg = p.alert },
SatelliteWarning = { fg = p.amber },
SatelliteHint = { fg = p.dim },
SatelliteInfo = { fg = p.tech },
SatelliteSearch = { fg = p.tech },
SatelliteGit = { fg = p.toxic },
SatelliteMark = { fg = p.amber },
-- PLUGINS: OIL.NVIM (File Explorer) --------------------------------------
OilDir = { fg = p.tech, bold = true },
OilDirIcon = { fg = p.tech },
OilLink = { fg = p.sacred, italic = true },
OilLinkTarget = { fg = p.sacred },
OilCopy = { fg = p.amber, bold = true },
OilMove = { fg = p.amber },
OilChange = { fg = p.tech },
OilCreate = { fg = p.toxic, bold = true },
OilDelete = { fg = p.razor, bold = true },
OilPermissionNone = { fg = p.stealth },
OilPermissionRead = { fg = p.tech },
OilPermissionWrite = { fg = p.amber },
OilPermissionExecute = { fg = p.toxic },
OilTypeDir = { fg = p.tech },
OilTypeFile = { fg = p.text },
OilTypeLink = { fg = p.sacred },
OilTypeSpecial = { fg = p.razor },
OilSize = { fg = p.dim },
OilMtime = { fg = p.stealth },
-- PLUGINS: NEOTEST --------------------------------------------------------
NeotestPassed = { fg = p.toxic },
NeotestFailed = { fg = p.razor },
NeotestRunning = { fg = p.amber },
NeotestSkipped = { fg = p.dim },
NeotestUnknown = { fg = p.stealth },
NeotestTest = { fg = p.text },
NeotestFile = { fg = p.tech },
NeotestDir = { fg = p.tech, bold = true },
NeotestNamespace = { fg = p.amber },
NeotestMarked = { fg = p.razor, bold = true },
NeotestTarget = { fg = p.razor },
NeotestAdapterName = { fg = p.sacred, bold = true },
NeotestWinSelect = { fg = p.tech, bold = true },
NeotestFocused = { bold = true },
NeotestIndent = { fg = p.border },
NeotestExpandMarker = { fg = p.dim },
NeotestWatching = { fg = p.amber },
-- PLUGINS: GRUG-FAR (Search & Replace) -----------------------------------
GrugFarResultsHeader = { fg = p.ink, bg = p.razor, bold = true },
GrugFarResultsMatch = { fg = p.void, bg = p.tech, bold = true },
GrugFarResultsMatchAdded = { fg = p.toxic },
GrugFarResultsMatchRemoved = { fg = p.razor },
GrugFarResultsLineNo = { fg = p.dim },
GrugFarResultsPath = { fg = p.tech, underline = true },
GrugFarResultsStats = { fg = p.dim },
GrugFarInputLabel = { fg = p.amber, bold = true },
GrugFarInputPlaceholder = { fg = p.stealth },
GrugFarHelpHeader = { fg = p.dim, bold = true },
GrugFarHelpWinHeader = { fg = p.ink, bg = p.panel, bold = true },
-- PLUGINS: TWINNY (AI Ghost Text) ----------------------------------------
TwinnyAccept = { fg = p.stealth, italic = true },
TwinnyHint = { fg = p.stealth, italic = true },
-- PLUGINS: GITSIGNS (extended) -------------------------------------------
GitSignsCurrentLineBlame = { fg = p.stealth, italic = true },
GitSignsAddNr = { fg = p.toxic },
GitSignsChangeNr = { fg = p.tech },
GitSignsDeleteNr = { fg = p.razor },
GitSignsAddLn = { fg = p.toxic, bg = p.panel },
GitSignsChangeLn = { fg = p.tech, bg = p.panel },
GitSignsDeleteLn = { fg = p.razor, bg = p.panel },
GitSignsAddPreview = { fg = p.toxic, bg = p.panel },
GitSignsDeletePreview = { fg = p.razor, bg = p.panel },
GitSignsAddInline = { fg = p.void, bg = p.toxic },
GitSignsDeleteInline = { fg = p.void, bg = p.razor },
GitSignsChangeInline = { fg = p.void, bg = p.tech },
GitSignsUntracked = { fg = p.dim },
-- PLUGINS: RENDER-MARKDOWN ------------------------------------------------
RenderMarkdownH1 = { fg = p.razor, bold = true },
RenderMarkdownH2 = { fg = p.amber, bold = true },
RenderMarkdownH3 = { fg = p.tech, bold = true },
RenderMarkdownH4 = { fg = p.toxic, bold = true },
RenderMarkdownH5 = { fg = p.sacred, bold = true },
RenderMarkdownH6 = { fg = p.azure, bold = true },
RenderMarkdownH1Bg = { bg = p.panel },
RenderMarkdownH2Bg = { bg = p.panel },
RenderMarkdownH3Bg = { bg = p.panel },
RenderMarkdownH4Bg = { bg = p.panel },
RenderMarkdownH5Bg = { bg = p.panel },
RenderMarkdownH6Bg = { bg = p.panel },
RenderMarkdownCode = { bg = p.panel },
RenderMarkdownCodeInline = { fg = p.toxic, bg = p.panel },
RenderMarkdownBullet = { fg = p.razor },
RenderMarkdownQuote = { fg = p.stealth, italic = true },
RenderMarkdownDash = { fg = p.border },
RenderMarkdownLink = { fg = p.tech, underline = true },
RenderMarkdownSign = { bg = p.void },
RenderMarkdownMath = { fg = p.tech },
RenderMarkdownTableHead = { fg = p.ink, bg = p.razor, bold = true },
RenderMarkdownTableRow = { fg = p.text },
RenderMarkdownTableFill = { fg = p.border },
RenderMarkdownTodo = { fg = p.void, bg = p.amber, bold = true },
RenderMarkdownUnchecked = { fg = p.stealth },
RenderMarkdownChecked = { fg = p.toxic },
}
for group, highlight in pairs(groups) do
@@ -376,6 +723,41 @@ function M.load()
end
end
-- PLUGINS: LUALINE --------------------------------------------------------
-- Export lualine theme from palette for use in lualine config
M.lualine = {
normal = {
a = { fg = p.ink, bg = p.razor, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
insert = {
a = { fg = p.ink, bg = p.toxic, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
visual = {
a = { fg = p.ink, bg = p.tech, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
replace = {
a = { fg = p.ink, bg = p.amber, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
command = {
a = { fg = p.ink, bg = p.sacred, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
inactive = {
a = { fg = p.dim, bg = p.panel },
b = { fg = p.dim, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
}
M.load()
return M

View File

@@ -238,6 +238,353 @@ function M.load()
CmpItemKindMethod = { fg = p.azure },
CmpItemKindKeyword = { fg = p.sacred },
CmpItemKindVariable = { fg = p.text },
-- PLUGINS: BLINK.CMP (Completion) ----------------------------------------
BlinkCmpMenu = { fg = p.text, bg = p.panel },
BlinkCmpMenuBorder = { fg = p.border, bg = p.panel },
BlinkCmpMenuSelection = { fg = p.ink, bg = p.razor, bold = true },
BlinkCmpScrollBarThumb = { bg = p.stealth },
BlinkCmpScrollBarGutter = { bg = p.panel },
BlinkCmpLabel = { fg = p.text },
BlinkCmpLabelDeprecated = { fg = p.dim, strikethrough = true },
BlinkCmpLabelMatch = { fg = p.tech, bold = true },
BlinkCmpKindText = { fg = p.text },
BlinkCmpKindMethod = { fg = p.azure },
BlinkCmpKindFunction = { fg = p.azure },
BlinkCmpKindConstructor = { fg = p.amber },
BlinkCmpKindField = { fg = p.text },
BlinkCmpKindVariable = { fg = p.text },
BlinkCmpKindClass = { fg = p.amber },
BlinkCmpKindInterface = { fg = p.amber },
BlinkCmpKindModule = { fg = p.amber },
BlinkCmpKindProperty = { fg = p.text },
BlinkCmpKindUnit = { fg = p.tech },
BlinkCmpKindValue = { fg = p.tech },
BlinkCmpKindEnum = { fg = p.amber },
BlinkCmpKindKeyword = { fg = p.sacred },
BlinkCmpKindSnippet = { fg = p.toxic },
BlinkCmpKindColor = { fg = p.tech },
BlinkCmpKindFile = { fg = p.text },
BlinkCmpKindReference = { fg = p.tech },
BlinkCmpKindFolder = { fg = p.text },
BlinkCmpKindEnumMember = { fg = p.tech },
BlinkCmpKindConstant = { fg = p.tech },
BlinkCmpKindStruct = { fg = p.amber },
BlinkCmpKindEvent = { fg = p.amber },
BlinkCmpKindOperator = { fg = p.text },
BlinkCmpKindTypeParameter = { fg = p.amber },
BlinkCmpGhostText = { fg = p.stealth, italic = true },
BlinkCmpDoc = { fg = p.text, bg = p.panel },
BlinkCmpDocBorder = { fg = p.border, bg = p.panel },
BlinkCmpDocSeparator = { fg = p.border, bg = p.panel },
BlinkCmpDocCursorLine = { bg = p.border },
BlinkCmpSignatureHelp = { fg = p.text, bg = p.panel },
BlinkCmpSignatureHelpBorder = { fg = p.border, bg = p.panel },
BlinkCmpSignatureHelpActiveParameter = { fg = p.ink, bg = p.tech, bold = true },
BlinkCmpSource = { fg = p.dim },
-- PLUGINS: BUFFERLINE -----------------------------------------------------
BufferLineBackground = { fg = p.dim, bg = p.panel },
BufferLineFill = { bg = p.panel },
BufferLineBuffer = { fg = p.dim, bg = p.panel },
BufferLineBufferSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineBufferVisible = { fg = p.dim, bg = p.panel },
BufferLineTab = { fg = p.dim, bg = p.panel },
BufferLineTabSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineTabClose = { fg = p.razor, bg = p.panel },
BufferLineModified = { fg = p.tech, bg = p.panel },
BufferLineModifiedSelected = { fg = p.tech, bg = p.void },
BufferLineModifiedVisible = { fg = p.tech, bg = p.panel },
BufferLineSeparator = { fg = p.border, bg = p.panel },
BufferLineSeparatorSelected = { fg = p.border, bg = p.void },
BufferLineSeparatorVisible = { fg = p.border, bg = p.panel },
BufferLineIndicatorSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButton = { fg = p.dim, bg = p.panel },
BufferLineCloseButtonSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButtonVisible = { fg = p.dim, bg = p.panel },
BufferLineDiagnostic = { fg = p.dim, bg = p.panel },
BufferLineDiagnosticSelected = { fg = p.dim, bg = p.void },
BufferLineError = { fg = p.alert, bg = p.panel },
BufferLineErrorSelected = { fg = p.alert, bg = p.void, bold = true },
BufferLineWarning = { fg = p.amber, bg = p.panel },
BufferLineWarningSelected = { fg = p.amber, bg = p.void, bold = true },
BufferLineInfo = { fg = p.tech, bg = p.panel },
BufferLineInfoSelected = { fg = p.tech, bg = p.void, bold = true },
BufferLineHint = { fg = p.dim, bg = p.panel },
BufferLineHintSelected = { fg = p.dim, bg = p.void, bold = true },
BufferLinePick = { fg = p.razor, bg = p.panel, bold = true },
BufferLinePickSelected = { fg = p.razor, bg = p.void, bold = true },
BufferLinePickVisible = { fg = p.razor, bg = p.panel, bold = true },
-- PLUGINS: WHICH-KEY ------------------------------------------------------
WhichKey = { fg = p.razor, bold = true },
WhichKeySeparator = { fg = p.stealth },
WhichKeyGroup = { fg = p.tech },
WhichKeyDesc = { fg = p.text },
WhichKeyFloat = { bg = p.panel },
WhichKeyBorder = { fg = p.border, bg = p.panel },
WhichKeyTitle = { fg = p.ink, bg = p.razor, bold = true },
WhichKeyNormal = { fg = p.text, bg = p.panel },
WhichKeyValue = { fg = p.dim },
WhichKeyIcon = { fg = p.azure },
WhichKeyIconAzure = { fg = p.azure },
WhichKeyIconGreen = { fg = p.toxic },
WhichKeyIconYellow = { fg = p.amber },
WhichKeyIconRed = { fg = p.razor },
WhichKeyIconPurple = { fg = p.sacred },
WhichKeyIconCyan = { fg = p.tech },
-- PLUGINS: TROUBLE --------------------------------------------------------
TroubleNormal = { fg = p.text, bg = p.void },
TroubleNormalNC = { fg = p.dim, bg = p.void },
TroubleText = { fg = p.text },
TroubleCount = { fg = p.ink, bg = p.razor, bold = true },
TroubleError = { fg = p.alert },
TroubleWarning = { fg = p.amber },
TroubleHint = { fg = p.dim },
TroubleInfo = { fg = p.tech },
TroubleSource = { fg = p.dim },
TroubleCode = { fg = p.stealth },
TroubleLocation = { fg = p.dim },
TroubleFile = { fg = p.tech, bold = true },
TroubleIndent = { fg = p.border },
TroublePos = { fg = p.dim },
TroubleSignError = { fg = p.alert },
TroubleSignWarning = { fg = p.amber },
TroubleSignHint = { fg = p.dim },
TroubleSignInfo = { fg = p.tech },
TroublePreview = { fg = p.ink, bg = p.razor },
TroubleFocusText = { fg = p.text, bold = true },
-- PLUGINS: INDENT-BLANKLINE -----------------------------------------------
IblIndent = { fg = p.border },
IblScope = { fg = p.stealth },
IblWhitespace = { fg = p.border },
-- PLUGINS: NEOGIT ---------------------------------------------------------
NeogitBranch = { fg = p.razor, bold = true },
NeogitRemote = { fg = p.tech },
NeogitHunkHeader = { fg = p.text, bg = p.panel, bold = true },
NeogitHunkHeaderHighlight = { fg = p.ink, bg = p.tech, bold = true },
NeogitDiffAdd = { fg = p.toxic, bg = p.void },
NeogitDiffDelete = { fg = p.razor, bg = p.void },
NeogitDiffContext = { fg = p.dim, bg = p.void },
NeogitDiffAddHighlight = { fg = p.toxic, bg = p.panel },
NeogitDiffDeleteHighlight = { fg = p.razor, bg = p.panel },
NeogitDiffContextHighlight = { fg = p.text, bg = p.panel },
NeogitCommitViewHeader = { fg = p.ink, bg = p.razor, bold = true },
NeogitFilePath = { fg = p.tech, underline = true },
NeogitDiffHeader = { fg = p.amber, bold = true },
NeogitDiffHeaderHighlight = { fg = p.ink, bg = p.amber, bold = true },
NeogitObjectId = { fg = p.dim },
NeogitStashes = { fg = p.sacred },
NeogitRebaseDone = { fg = p.toxic },
NeogitFold = { fg = p.stealth },
-- PLUGINS: AERIAL (Symbols Outline) --------------------------------------
AerialLine = { fg = p.ink, bg = p.razor },
AerialLineNC = { fg = p.dim, bg = p.panel },
AerialNormal = { fg = p.text, bg = p.void },
AerialGuide = { fg = p.border },
AerialClass = { fg = p.amber },
AerialClassIcon = { fg = p.amber },
AerialFunction = { fg = p.azure },
AerialFunctionIcon = { fg = p.azure },
AerialMethod = { fg = p.azure },
AerialMethodIcon = { fg = p.azure },
AerialConstructor = { fg = p.amber },
AerialField = { fg = p.text },
AerialVariable = { fg = p.text },
AerialEnum = { fg = p.amber },
AerialEnumIcon = { fg = p.amber },
AerialInterface = { fg = p.amber },
AerialModule = { fg = p.amber },
AerialNamespace = { fg = p.amber },
AerialPackage = { fg = p.amber },
AerialProperty = { fg = p.text },
AerialStruct = { fg = p.amber },
AerialType = { fg = p.amber },
AerialTypeParameter = { fg = p.amber },
AerialConstant = { fg = p.tech },
AerialString = { fg = p.toxic },
AerialNumber = { fg = p.tech },
AerialBoolean = { fg = p.tech },
AerialKey = { fg = p.sacred },
AerialKeyword = { fg = p.sacred },
AerialOperator = { fg = p.text },
AerialNull = { fg = p.dim },
AerialArray = { fg = p.tech },
AerialObject = { fg = p.amber },
AerialEvent = { fg = p.amber },
-- PLUGINS: DAP-UI ---------------------------------------------------------
DapUIScope = { fg = p.tech, bold = true },
DapUIType = { fg = p.amber },
DapUIDecoration = { fg = p.border },
DapUIThread = { fg = p.toxic },
DapUIStoppedThread = { fg = p.razor, bold = true },
DapUICurrentFrameName = { fg = p.razor, bold = true },
DapUISource = { fg = p.dim },
DapUILineNumber = { fg = p.stealth },
DapUIFloatBorder = { fg = p.border, bg = p.panel },
DapUIFloatNormal = { fg = p.text, bg = p.panel },
DapUIWatchesEmpty = { fg = p.dim },
DapUIWatchesValue = { fg = p.toxic },
DapUIWatchesError = { fg = p.alert },
DapUIBreakpointsPath = { fg = p.tech },
DapUIBreakpointsInfo = { fg = p.dim },
DapUIBreakpointsCurrentLine = { fg = p.razor, bold = true },
DapUIBreakpointsDisabledLine = { fg = p.stealth },
DapUIEndofBuffer = { fg = p.void },
DapUIModifiedValue = { fg = p.amber, bold = true },
DapUIStop = { fg = p.razor },
DapUIStepOver = { fg = p.tech },
DapUIStepInto = { fg = p.tech },
DapUIStepBack = { fg = p.tech },
DapUIStepOut = { fg = p.tech },
DapUIRestart = { fg = p.toxic },
DapUIUnavailable = { fg = p.stealth },
DapUIPlayPause = { fg = p.toxic },
-- PLUGINS: DAP VIRTUAL TEXT -----------------------------------------------
NvimDapVirtualText = { fg = p.dim, italic = true },
NvimDapVirtualTextChanged = { fg = p.amber, italic = true },
NvimDapVirtualTextError = { fg = p.alert, italic = true },
NvimDapVirtualTextInfo = { fg = p.tech, italic = true },
-- PLUGINS: NVIM-NOTIFY ----------------------------------------------------
NotifyERRORBorder = { fg = p.razor },
NotifyWARNBorder = { fg = p.amber },
NotifyINFOBorder = { fg = p.tech },
NotifyDEBUGBorder = { fg = p.stealth },
NotifyTRACEBorder = { fg = p.sacred },
NotifyERRORIcon = { fg = p.razor },
NotifyWARNIcon = { fg = p.amber },
NotifyINFOIcon = { fg = p.tech },
NotifyDEBUGIcon = { fg = p.stealth },
NotifyTRACEIcon = { fg = p.sacred },
NotifyERRORTitle = { fg = p.razor, bold = true },
NotifyWARNTitle = { fg = p.amber, bold = true },
NotifyINFOTitle = { fg = p.tech, bold = true },
NotifyDEBUGTitle = { fg = p.stealth, bold = true },
NotifyTRACETitle = { fg = p.sacred, bold = true },
NotifyERRORBody = { fg = p.text, bg = p.panel },
NotifyWARNBody = { fg = p.text, bg = p.panel },
NotifyINFOBody = { fg = p.text, bg = p.panel },
NotifyDEBUGBody = { fg = p.dim, bg = p.panel },
NotifyTRACEBody = { fg = p.dim, bg = p.panel },
-- PLUGINS: SATELLITE (Scrollbar) -----------------------------------------
SatelliteBar = { bg = p.panel },
SatelliteCursor = { fg = p.razor },
SatellitePosition = { fg = p.dim },
SatelliteError = { fg = p.alert },
SatelliteWarning = { fg = p.amber },
SatelliteHint = { fg = p.dim },
SatelliteInfo = { fg = p.tech },
SatelliteSearch = { fg = p.tech },
SatelliteGit = { fg = p.toxic },
SatelliteMark = { fg = p.amber },
-- PLUGINS: OIL.NVIM (File Explorer) --------------------------------------
OilDir = { fg = p.tech, bold = true },
OilDirIcon = { fg = p.tech },
OilLink = { fg = p.sacred, italic = true },
OilLinkTarget = { fg = p.sacred },
OilCopy = { fg = p.amber, bold = true },
OilMove = { fg = p.amber },
OilChange = { fg = p.tech },
OilCreate = { fg = p.toxic, bold = true },
OilDelete = { fg = p.razor, bold = true },
OilPermissionNone = { fg = p.stealth },
OilPermissionRead = { fg = p.tech },
OilPermissionWrite = { fg = p.amber },
OilPermissionExecute = { fg = p.toxic },
OilTypeDir = { fg = p.tech },
OilTypeFile = { fg = p.text },
OilTypeLink = { fg = p.sacred },
OilTypeSpecial = { fg = p.razor },
OilSize = { fg = p.dim },
OilMtime = { fg = p.stealth },
-- PLUGINS: NEOTEST --------------------------------------------------------
NeotestPassed = { fg = p.toxic },
NeotestFailed = { fg = p.razor },
NeotestRunning = { fg = p.amber },
NeotestSkipped = { fg = p.dim },
NeotestUnknown = { fg = p.stealth },
NeotestTest = { fg = p.text },
NeotestFile = { fg = p.tech },
NeotestDir = { fg = p.tech, bold = true },
NeotestNamespace = { fg = p.amber },
NeotestMarked = { fg = p.razor, bold = true },
NeotestTarget = { fg = p.razor },
NeotestAdapterName = { fg = p.sacred, bold = true },
NeotestWinSelect = { fg = p.tech, bold = true },
NeotestFocused = { bold = true },
NeotestIndent = { fg = p.border },
NeotestExpandMarker = { fg = p.dim },
NeotestWatching = { fg = p.amber },
-- PLUGINS: GRUG-FAR (Search & Replace) -----------------------------------
GrugFarResultsHeader = { fg = p.ink, bg = p.razor, bold = true },
GrugFarResultsMatch = { fg = p.void, bg = p.tech, bold = true },
GrugFarResultsMatchAdded = { fg = p.toxic },
GrugFarResultsMatchRemoved = { fg = p.razor },
GrugFarResultsLineNo = { fg = p.dim },
GrugFarResultsPath = { fg = p.tech, underline = true },
GrugFarResultsStats = { fg = p.dim },
GrugFarInputLabel = { fg = p.amber, bold = true },
GrugFarInputPlaceholder = { fg = p.stealth },
GrugFarHelpHeader = { fg = p.dim, bold = true },
GrugFarHelpWinHeader = { fg = p.ink, bg = p.panel, bold = true },
-- PLUGINS: TWINNY (AI Ghost Text) ----------------------------------------
TwinnyAccept = { fg = p.stealth, italic = true },
TwinnyHint = { fg = p.stealth, italic = true },
-- PLUGINS: GITSIGNS (extended) -------------------------------------------
GitSignsCurrentLineBlame = { fg = p.stealth, italic = true },
GitSignsAddNr = { fg = p.toxic },
GitSignsChangeNr = { fg = p.tech },
GitSignsDeleteNr = { fg = p.razor },
GitSignsAddLn = { fg = p.toxic, bg = p.panel },
GitSignsChangeLn = { fg = p.tech, bg = p.panel },
GitSignsDeleteLn = { fg = p.razor, bg = p.panel },
GitSignsAddPreview = { fg = p.toxic, bg = p.panel },
GitSignsDeletePreview = { fg = p.razor, bg = p.panel },
GitSignsAddInline = { fg = p.void, bg = p.toxic },
GitSignsDeleteInline = { fg = p.void, bg = p.razor },
GitSignsChangeInline = { fg = p.void, bg = p.tech },
GitSignsUntracked = { fg = p.dim },
-- PLUGINS: RENDER-MARKDOWN ------------------------------------------------
RenderMarkdownH1 = { fg = p.razor, bold = true },
RenderMarkdownH2 = { fg = p.amber, bold = true },
RenderMarkdownH3 = { fg = p.tech, bold = true },
RenderMarkdownH4 = { fg = p.toxic, bold = true },
RenderMarkdownH5 = { fg = p.sacred, bold = true },
RenderMarkdownH6 = { fg = p.azure, bold = true },
RenderMarkdownH1Bg = { bg = p.panel },
RenderMarkdownH2Bg = { bg = p.panel },
RenderMarkdownH3Bg = { bg = p.panel },
RenderMarkdownH4Bg = { bg = p.panel },
RenderMarkdownH5Bg = { bg = p.panel },
RenderMarkdownH6Bg = { bg = p.panel },
RenderMarkdownCode = { bg = p.panel },
RenderMarkdownCodeInline = { fg = p.toxic, bg = p.panel },
RenderMarkdownBullet = { fg = p.razor },
RenderMarkdownQuote = { fg = p.stealth, italic = true },
RenderMarkdownDash = { fg = p.border },
RenderMarkdownLink = { fg = p.tech, underline = true },
RenderMarkdownSign = { bg = p.void },
RenderMarkdownMath = { fg = p.tech },
RenderMarkdownTableHead = { fg = p.ink, bg = p.razor, bold = true },
RenderMarkdownTableRow = { fg = p.text },
RenderMarkdownTableFill = { fg = p.border },
RenderMarkdownTodo = { fg = p.void, bg = p.amber, bold = true },
RenderMarkdownUnchecked = { fg = p.stealth },
RenderMarkdownChecked = { fg = p.toxic },
}
for group, highlight in pairs(groups) do
@@ -376,6 +723,41 @@ function M.load()
end
end
-- PLUGINS: LUALINE --------------------------------------------------------
-- Export lualine theme from palette for use in lualine config
M.lualine = {
normal = {
a = { fg = p.ink, bg = p.razor, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
insert = {
a = { fg = p.ink, bg = p.toxic, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
visual = {
a = { fg = p.ink, bg = p.tech, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
replace = {
a = { fg = p.ink, bg = p.amber, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
command = {
a = { fg = p.ink, bg = p.sacred, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
inactive = {
a = { fg = p.dim, bg = p.panel },
b = { fg = p.dim, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
}
M.load()
return M

35
dist/tmux/apex-aeon-theme.conf vendored Normal file
View File

@@ -0,0 +1,35 @@
# Apex Aeon — tmux theme
# Generated by the Apex build system. Do not edit.
# Status bar
set -g status-style "fg=#0a0a0a,bg=#e8e8e8"
# Status left: session name in red
set -g status-left "#[fg=#0a0a0a,bg=#ff0044,bold] #S #[fg=#e8e8e8,bg=#e8e8e8]"
set -g status-left-length 30
# Status right: date/time in dim
set -g status-right "#[fg=#737373,bg=#e8e8e8] %H:%M %d-%b "
set -g status-right-length 30
# Window list
set -g window-status-format "#[fg=#737373,bg=#e8e8e8] #I:#W "
set -g window-status-current-format "#[fg=#0a0a0a,bg=#e8e8e8,bold] #I:#W #[fg=#ff0044]▏"
# Pane borders
set -g pane-border-style "fg=#737373"
set -g pane-active-border-style "fg=#ff0044"
# Messages
set -g message-style "fg=#007a88,bg=#e8e8e8"
set -g message-command-style "fg=#0a0a0a,bg=#ff0044"
# Copy mode
set -g mode-style "fg=#0a0a0a,bg=#007a88,bold"
# Clock
set -g clock-mode-colour "#007a88"
# Misc
set -g status-position bottom
set -g status-justify left

35
dist/tmux/apex-aeon.conf vendored Normal file
View File

@@ -0,0 +1,35 @@
# Apex Aeon — tmux theme
# Generated by the Apex build system. Do not edit.
# Status bar
set -g status-style "fg=#0a0a0a,bg=#e8e8e8"
# Status left: session name in red
set -g status-left "#[fg=#0a0a0a,bg=#ff0044,bold] #S #[fg=#e8e8e8,bg=#e8e8e8]"
set -g status-left-length 30
# Status right: date/time in dim
set -g status-right "#[fg=#737373,bg=#e8e8e8] %H:%M %d-%b "
set -g status-right-length 30
# Window list
set -g window-status-format "#[fg=#737373,bg=#e8e8e8] #I:#W "
set -g window-status-current-format "#[fg=#0a0a0a,bg=#e8e8e8,bold] #I:#W #[fg=#ff0044]▏"
# Pane borders
set -g pane-border-style "fg=#737373"
set -g pane-active-border-style "fg=#ff0044"
# Messages
set -g message-style "fg=#007a88,bg=#e8e8e8"
set -g message-command-style "fg=#0a0a0a,bg=#ff0044"
# Copy mode
set -g mode-style "fg=#0a0a0a,bg=#007a88,bold"
# Clock
set -g clock-mode-colour "#007a88"
# Misc
set -g status-position bottom
set -g status-justify left

35
dist/tmux/apex-neon-theme.conf vendored Normal file
View File

@@ -0,0 +1,35 @@
# Apex Neon — tmux theme
# Generated by the Apex build system. Do not edit.
# Status bar
set -g status-style "fg=#ededed,bg=#141414"
# Status left: session name in red
set -g status-left "#[fg=#050505,bg=#ff0044,bold] #S #[fg=#141414,bg=#141414]"
set -g status-left-length 30
# Status right: date/time in dim
set -g status-right "#[fg=#737373,bg=#141414] %H:%M %d-%b "
set -g status-right-length 30
# Window list
set -g window-status-format "#[fg=#737373,bg=#141414] #I:#W "
set -g window-status-current-format "#[fg=#ededed,bg=#141414,bold] #I:#W #[fg=#ff0044]▏"
# Pane borders
set -g pane-border-style "fg=#262626"
set -g pane-active-border-style "fg=#ff0044"
# Messages
set -g message-style "fg=#00eaff,bg=#141414"
set -g message-command-style "fg=#050505,bg=#ff0044"
# Copy mode
set -g mode-style "fg=#050505,bg=#00eaff,bold"
# Clock
set -g clock-mode-colour "#00eaff"
# Misc
set -g status-position bottom
set -g status-justify left

35
dist/tmux/apex-neon.conf vendored Normal file
View File

@@ -0,0 +1,35 @@
# Apex Neon — tmux theme
# Generated by the Apex build system. Do not edit.
# Status bar
set -g status-style "fg=#ededed,bg=#141414"
# Status left: session name in red
set -g status-left "#[fg=#050505,bg=#ff0044,bold] #S #[fg=#141414,bg=#141414]"
set -g status-left-length 30
# Status right: date/time in dim
set -g status-right "#[fg=#737373,bg=#141414] %H:%M %d-%b "
set -g status-right-length 30
# Window list
set -g window-status-format "#[fg=#737373,bg=#141414] #I:#W "
set -g window-status-current-format "#[fg=#ededed,bg=#141414,bold] #I:#W #[fg=#ff0044]▏"
# Pane borders
set -g pane-border-style "fg=#262626"
set -g pane-active-border-style "fg=#ff0044"
# Messages
set -g message-style "fg=#00eaff,bg=#141414"
set -g message-command-style "fg=#050505,bg=#ff0044"
# Copy mode
set -g mode-style "fg=#050505,bg=#00eaff,bold"
# Clock
set -g clock-mode-colour "#00eaff"
# Misc
set -g status-position bottom
set -g status-justify left

View File

@@ -238,6 +238,353 @@ function M.load()
CmpItemKindMethod = { fg = p.azure },
CmpItemKindKeyword = { fg = p.sacred },
CmpItemKindVariable = { fg = p.text },
-- PLUGINS: BLINK.CMP (Completion) ----------------------------------------
BlinkCmpMenu = { fg = p.text, bg = p.panel },
BlinkCmpMenuBorder = { fg = p.border, bg = p.panel },
BlinkCmpMenuSelection = { fg = p.ink, bg = p.razor, bold = true },
BlinkCmpScrollBarThumb = { bg = p.stealth },
BlinkCmpScrollBarGutter = { bg = p.panel },
BlinkCmpLabel = { fg = p.text },
BlinkCmpLabelDeprecated = { fg = p.dim, strikethrough = true },
BlinkCmpLabelMatch = { fg = p.tech, bold = true },
BlinkCmpKindText = { fg = p.text },
BlinkCmpKindMethod = { fg = p.azure },
BlinkCmpKindFunction = { fg = p.azure },
BlinkCmpKindConstructor = { fg = p.amber },
BlinkCmpKindField = { fg = p.text },
BlinkCmpKindVariable = { fg = p.text },
BlinkCmpKindClass = { fg = p.amber },
BlinkCmpKindInterface = { fg = p.amber },
BlinkCmpKindModule = { fg = p.amber },
BlinkCmpKindProperty = { fg = p.text },
BlinkCmpKindUnit = { fg = p.tech },
BlinkCmpKindValue = { fg = p.tech },
BlinkCmpKindEnum = { fg = p.amber },
BlinkCmpKindKeyword = { fg = p.sacred },
BlinkCmpKindSnippet = { fg = p.toxic },
BlinkCmpKindColor = { fg = p.tech },
BlinkCmpKindFile = { fg = p.text },
BlinkCmpKindReference = { fg = p.tech },
BlinkCmpKindFolder = { fg = p.text },
BlinkCmpKindEnumMember = { fg = p.tech },
BlinkCmpKindConstant = { fg = p.tech },
BlinkCmpKindStruct = { fg = p.amber },
BlinkCmpKindEvent = { fg = p.amber },
BlinkCmpKindOperator = { fg = p.text },
BlinkCmpKindTypeParameter = { fg = p.amber },
BlinkCmpGhostText = { fg = p.stealth, italic = true },
BlinkCmpDoc = { fg = p.text, bg = p.panel },
BlinkCmpDocBorder = { fg = p.border, bg = p.panel },
BlinkCmpDocSeparator = { fg = p.border, bg = p.panel },
BlinkCmpDocCursorLine = { bg = p.border },
BlinkCmpSignatureHelp = { fg = p.text, bg = p.panel },
BlinkCmpSignatureHelpBorder = { fg = p.border, bg = p.panel },
BlinkCmpSignatureHelpActiveParameter = { fg = p.ink, bg = p.tech, bold = true },
BlinkCmpSource = { fg = p.dim },
-- PLUGINS: BUFFERLINE -----------------------------------------------------
BufferLineBackground = { fg = p.dim, bg = p.panel },
BufferLineFill = { bg = p.panel },
BufferLineBuffer = { fg = p.dim, bg = p.panel },
BufferLineBufferSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineBufferVisible = { fg = p.dim, bg = p.panel },
BufferLineTab = { fg = p.dim, bg = p.panel },
BufferLineTabSelected = { fg = p.text, bg = p.void, bold = true },
BufferLineTabClose = { fg = p.razor, bg = p.panel },
BufferLineModified = { fg = p.tech, bg = p.panel },
BufferLineModifiedSelected = { fg = p.tech, bg = p.void },
BufferLineModifiedVisible = { fg = p.tech, bg = p.panel },
BufferLineSeparator = { fg = p.border, bg = p.panel },
BufferLineSeparatorSelected = { fg = p.border, bg = p.void },
BufferLineSeparatorVisible = { fg = p.border, bg = p.panel },
BufferLineIndicatorSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButton = { fg = p.dim, bg = p.panel },
BufferLineCloseButtonSelected = { fg = p.razor, bg = p.void },
BufferLineCloseButtonVisible = { fg = p.dim, bg = p.panel },
BufferLineDiagnostic = { fg = p.dim, bg = p.panel },
BufferLineDiagnosticSelected = { fg = p.dim, bg = p.void },
BufferLineError = { fg = p.alert, bg = p.panel },
BufferLineErrorSelected = { fg = p.alert, bg = p.void, bold = true },
BufferLineWarning = { fg = p.amber, bg = p.panel },
BufferLineWarningSelected = { fg = p.amber, bg = p.void, bold = true },
BufferLineInfo = { fg = p.tech, bg = p.panel },
BufferLineInfoSelected = { fg = p.tech, bg = p.void, bold = true },
BufferLineHint = { fg = p.dim, bg = p.panel },
BufferLineHintSelected = { fg = p.dim, bg = p.void, bold = true },
BufferLinePick = { fg = p.razor, bg = p.panel, bold = true },
BufferLinePickSelected = { fg = p.razor, bg = p.void, bold = true },
BufferLinePickVisible = { fg = p.razor, bg = p.panel, bold = true },
-- PLUGINS: WHICH-KEY ------------------------------------------------------
WhichKey = { fg = p.razor, bold = true },
WhichKeySeparator = { fg = p.stealth },
WhichKeyGroup = { fg = p.tech },
WhichKeyDesc = { fg = p.text },
WhichKeyFloat = { bg = p.panel },
WhichKeyBorder = { fg = p.border, bg = p.panel },
WhichKeyTitle = { fg = p.ink, bg = p.razor, bold = true },
WhichKeyNormal = { fg = p.text, bg = p.panel },
WhichKeyValue = { fg = p.dim },
WhichKeyIcon = { fg = p.azure },
WhichKeyIconAzure = { fg = p.azure },
WhichKeyIconGreen = { fg = p.toxic },
WhichKeyIconYellow = { fg = p.amber },
WhichKeyIconRed = { fg = p.razor },
WhichKeyIconPurple = { fg = p.sacred },
WhichKeyIconCyan = { fg = p.tech },
-- PLUGINS: TROUBLE --------------------------------------------------------
TroubleNormal = { fg = p.text, bg = p.void },
TroubleNormalNC = { fg = p.dim, bg = p.void },
TroubleText = { fg = p.text },
TroubleCount = { fg = p.ink, bg = p.razor, bold = true },
TroubleError = { fg = p.alert },
TroubleWarning = { fg = p.amber },
TroubleHint = { fg = p.dim },
TroubleInfo = { fg = p.tech },
TroubleSource = { fg = p.dim },
TroubleCode = { fg = p.stealth },
TroubleLocation = { fg = p.dim },
TroubleFile = { fg = p.tech, bold = true },
TroubleIndent = { fg = p.border },
TroublePos = { fg = p.dim },
TroubleSignError = { fg = p.alert },
TroubleSignWarning = { fg = p.amber },
TroubleSignHint = { fg = p.dim },
TroubleSignInfo = { fg = p.tech },
TroublePreview = { fg = p.ink, bg = p.razor },
TroubleFocusText = { fg = p.text, bold = true },
-- PLUGINS: INDENT-BLANKLINE -----------------------------------------------
IblIndent = { fg = p.border },
IblScope = { fg = p.stealth },
IblWhitespace = { fg = p.border },
-- PLUGINS: NEOGIT ---------------------------------------------------------
NeogitBranch = { fg = p.razor, bold = true },
NeogitRemote = { fg = p.tech },
NeogitHunkHeader = { fg = p.text, bg = p.panel, bold = true },
NeogitHunkHeaderHighlight = { fg = p.ink, bg = p.tech, bold = true },
NeogitDiffAdd = { fg = p.toxic, bg = p.void },
NeogitDiffDelete = { fg = p.razor, bg = p.void },
NeogitDiffContext = { fg = p.dim, bg = p.void },
NeogitDiffAddHighlight = { fg = p.toxic, bg = p.panel },
NeogitDiffDeleteHighlight = { fg = p.razor, bg = p.panel },
NeogitDiffContextHighlight = { fg = p.text, bg = p.panel },
NeogitCommitViewHeader = { fg = p.ink, bg = p.razor, bold = true },
NeogitFilePath = { fg = p.tech, underline = true },
NeogitDiffHeader = { fg = p.amber, bold = true },
NeogitDiffHeaderHighlight = { fg = p.ink, bg = p.amber, bold = true },
NeogitObjectId = { fg = p.dim },
NeogitStashes = { fg = p.sacred },
NeogitRebaseDone = { fg = p.toxic },
NeogitFold = { fg = p.stealth },
-- PLUGINS: AERIAL (Symbols Outline) --------------------------------------
AerialLine = { fg = p.ink, bg = p.razor },
AerialLineNC = { fg = p.dim, bg = p.panel },
AerialNormal = { fg = p.text, bg = p.void },
AerialGuide = { fg = p.border },
AerialClass = { fg = p.amber },
AerialClassIcon = { fg = p.amber },
AerialFunction = { fg = p.azure },
AerialFunctionIcon = { fg = p.azure },
AerialMethod = { fg = p.azure },
AerialMethodIcon = { fg = p.azure },
AerialConstructor = { fg = p.amber },
AerialField = { fg = p.text },
AerialVariable = { fg = p.text },
AerialEnum = { fg = p.amber },
AerialEnumIcon = { fg = p.amber },
AerialInterface = { fg = p.amber },
AerialModule = { fg = p.amber },
AerialNamespace = { fg = p.amber },
AerialPackage = { fg = p.amber },
AerialProperty = { fg = p.text },
AerialStruct = { fg = p.amber },
AerialType = { fg = p.amber },
AerialTypeParameter = { fg = p.amber },
AerialConstant = { fg = p.tech },
AerialString = { fg = p.toxic },
AerialNumber = { fg = p.tech },
AerialBoolean = { fg = p.tech },
AerialKey = { fg = p.sacred },
AerialKeyword = { fg = p.sacred },
AerialOperator = { fg = p.text },
AerialNull = { fg = p.dim },
AerialArray = { fg = p.tech },
AerialObject = { fg = p.amber },
AerialEvent = { fg = p.amber },
-- PLUGINS: DAP-UI ---------------------------------------------------------
DapUIScope = { fg = p.tech, bold = true },
DapUIType = { fg = p.amber },
DapUIDecoration = { fg = p.border },
DapUIThread = { fg = p.toxic },
DapUIStoppedThread = { fg = p.razor, bold = true },
DapUICurrentFrameName = { fg = p.razor, bold = true },
DapUISource = { fg = p.dim },
DapUILineNumber = { fg = p.stealth },
DapUIFloatBorder = { fg = p.border, bg = p.panel },
DapUIFloatNormal = { fg = p.text, bg = p.panel },
DapUIWatchesEmpty = { fg = p.dim },
DapUIWatchesValue = { fg = p.toxic },
DapUIWatchesError = { fg = p.alert },
DapUIBreakpointsPath = { fg = p.tech },
DapUIBreakpointsInfo = { fg = p.dim },
DapUIBreakpointsCurrentLine = { fg = p.razor, bold = true },
DapUIBreakpointsDisabledLine = { fg = p.stealth },
DapUIEndofBuffer = { fg = p.void },
DapUIModifiedValue = { fg = p.amber, bold = true },
DapUIStop = { fg = p.razor },
DapUIStepOver = { fg = p.tech },
DapUIStepInto = { fg = p.tech },
DapUIStepBack = { fg = p.tech },
DapUIStepOut = { fg = p.tech },
DapUIRestart = { fg = p.toxic },
DapUIUnavailable = { fg = p.stealth },
DapUIPlayPause = { fg = p.toxic },
-- PLUGINS: DAP VIRTUAL TEXT -----------------------------------------------
NvimDapVirtualText = { fg = p.dim, italic = true },
NvimDapVirtualTextChanged = { fg = p.amber, italic = true },
NvimDapVirtualTextError = { fg = p.alert, italic = true },
NvimDapVirtualTextInfo = { fg = p.tech, italic = true },
-- PLUGINS: NVIM-NOTIFY ----------------------------------------------------
NotifyERRORBorder = { fg = p.razor },
NotifyWARNBorder = { fg = p.amber },
NotifyINFOBorder = { fg = p.tech },
NotifyDEBUGBorder = { fg = p.stealth },
NotifyTRACEBorder = { fg = p.sacred },
NotifyERRORIcon = { fg = p.razor },
NotifyWARNIcon = { fg = p.amber },
NotifyINFOIcon = { fg = p.tech },
NotifyDEBUGIcon = { fg = p.stealth },
NotifyTRACEIcon = { fg = p.sacred },
NotifyERRORTitle = { fg = p.razor, bold = true },
NotifyWARNTitle = { fg = p.amber, bold = true },
NotifyINFOTitle = { fg = p.tech, bold = true },
NotifyDEBUGTitle = { fg = p.stealth, bold = true },
NotifyTRACETitle = { fg = p.sacred, bold = true },
NotifyERRORBody = { fg = p.text, bg = p.panel },
NotifyWARNBody = { fg = p.text, bg = p.panel },
NotifyINFOBody = { fg = p.text, bg = p.panel },
NotifyDEBUGBody = { fg = p.dim, bg = p.panel },
NotifyTRACEBody = { fg = p.dim, bg = p.panel },
-- PLUGINS: SATELLITE (Scrollbar) -----------------------------------------
SatelliteBar = { bg = p.panel },
SatelliteCursor = { fg = p.razor },
SatellitePosition = { fg = p.dim },
SatelliteError = { fg = p.alert },
SatelliteWarning = { fg = p.amber },
SatelliteHint = { fg = p.dim },
SatelliteInfo = { fg = p.tech },
SatelliteSearch = { fg = p.tech },
SatelliteGit = { fg = p.toxic },
SatelliteMark = { fg = p.amber },
-- PLUGINS: OIL.NVIM (File Explorer) --------------------------------------
OilDir = { fg = p.tech, bold = true },
OilDirIcon = { fg = p.tech },
OilLink = { fg = p.sacred, italic = true },
OilLinkTarget = { fg = p.sacred },
OilCopy = { fg = p.amber, bold = true },
OilMove = { fg = p.amber },
OilChange = { fg = p.tech },
OilCreate = { fg = p.toxic, bold = true },
OilDelete = { fg = p.razor, bold = true },
OilPermissionNone = { fg = p.stealth },
OilPermissionRead = { fg = p.tech },
OilPermissionWrite = { fg = p.amber },
OilPermissionExecute = { fg = p.toxic },
OilTypeDir = { fg = p.tech },
OilTypeFile = { fg = p.text },
OilTypeLink = { fg = p.sacred },
OilTypeSpecial = { fg = p.razor },
OilSize = { fg = p.dim },
OilMtime = { fg = p.stealth },
-- PLUGINS: NEOTEST --------------------------------------------------------
NeotestPassed = { fg = p.toxic },
NeotestFailed = { fg = p.razor },
NeotestRunning = { fg = p.amber },
NeotestSkipped = { fg = p.dim },
NeotestUnknown = { fg = p.stealth },
NeotestTest = { fg = p.text },
NeotestFile = { fg = p.tech },
NeotestDir = { fg = p.tech, bold = true },
NeotestNamespace = { fg = p.amber },
NeotestMarked = { fg = p.razor, bold = true },
NeotestTarget = { fg = p.razor },
NeotestAdapterName = { fg = p.sacred, bold = true },
NeotestWinSelect = { fg = p.tech, bold = true },
NeotestFocused = { bold = true },
NeotestIndent = { fg = p.border },
NeotestExpandMarker = { fg = p.dim },
NeotestWatching = { fg = p.amber },
-- PLUGINS: GRUG-FAR (Search & Replace) -----------------------------------
GrugFarResultsHeader = { fg = p.ink, bg = p.razor, bold = true },
GrugFarResultsMatch = { fg = p.void, bg = p.tech, bold = true },
GrugFarResultsMatchAdded = { fg = p.toxic },
GrugFarResultsMatchRemoved = { fg = p.razor },
GrugFarResultsLineNo = { fg = p.dim },
GrugFarResultsPath = { fg = p.tech, underline = true },
GrugFarResultsStats = { fg = p.dim },
GrugFarInputLabel = { fg = p.amber, bold = true },
GrugFarInputPlaceholder = { fg = p.stealth },
GrugFarHelpHeader = { fg = p.dim, bold = true },
GrugFarHelpWinHeader = { fg = p.ink, bg = p.panel, bold = true },
-- PLUGINS: TWINNY (AI Ghost Text) ----------------------------------------
TwinnyAccept = { fg = p.stealth, italic = true },
TwinnyHint = { fg = p.stealth, italic = true },
-- PLUGINS: GITSIGNS (extended) -------------------------------------------
GitSignsCurrentLineBlame = { fg = p.stealth, italic = true },
GitSignsAddNr = { fg = p.toxic },
GitSignsChangeNr = { fg = p.tech },
GitSignsDeleteNr = { fg = p.razor },
GitSignsAddLn = { fg = p.toxic, bg = p.panel },
GitSignsChangeLn = { fg = p.tech, bg = p.panel },
GitSignsDeleteLn = { fg = p.razor, bg = p.panel },
GitSignsAddPreview = { fg = p.toxic, bg = p.panel },
GitSignsDeletePreview = { fg = p.razor, bg = p.panel },
GitSignsAddInline = { fg = p.void, bg = p.toxic },
GitSignsDeleteInline = { fg = p.void, bg = p.razor },
GitSignsChangeInline = { fg = p.void, bg = p.tech },
GitSignsUntracked = { fg = p.dim },
-- PLUGINS: RENDER-MARKDOWN ------------------------------------------------
RenderMarkdownH1 = { fg = p.razor, bold = true },
RenderMarkdownH2 = { fg = p.amber, bold = true },
RenderMarkdownH3 = { fg = p.tech, bold = true },
RenderMarkdownH4 = { fg = p.toxic, bold = true },
RenderMarkdownH5 = { fg = p.sacred, bold = true },
RenderMarkdownH6 = { fg = p.azure, bold = true },
RenderMarkdownH1Bg = { bg = p.panel },
RenderMarkdownH2Bg = { bg = p.panel },
RenderMarkdownH3Bg = { bg = p.panel },
RenderMarkdownH4Bg = { bg = p.panel },
RenderMarkdownH5Bg = { bg = p.panel },
RenderMarkdownH6Bg = { bg = p.panel },
RenderMarkdownCode = { bg = p.panel },
RenderMarkdownCodeInline = { fg = p.toxic, bg = p.panel },
RenderMarkdownBullet = { fg = p.razor },
RenderMarkdownQuote = { fg = p.stealth, italic = true },
RenderMarkdownDash = { fg = p.border },
RenderMarkdownLink = { fg = p.tech, underline = true },
RenderMarkdownSign = { bg = p.void },
RenderMarkdownMath = { fg = p.tech },
RenderMarkdownTableHead = { fg = p.ink, bg = p.razor, bold = true },
RenderMarkdownTableRow = { fg = p.text },
RenderMarkdownTableFill = { fg = p.border },
RenderMarkdownTodo = { fg = p.void, bg = p.amber, bold = true },
RenderMarkdownUnchecked = { fg = p.stealth },
RenderMarkdownChecked = { fg = p.toxic },
}
for group, highlight in pairs(groups) do
@@ -376,6 +723,41 @@ function M.load()
end
end
-- PLUGINS: LUALINE --------------------------------------------------------
-- Export lualine theme from palette for use in lualine config
M.lualine = {
normal = {
a = { fg = p.ink, bg = p.razor, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
insert = {
a = { fg = p.ink, bg = p.toxic, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
visual = {
a = { fg = p.ink, bg = p.tech, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
replace = {
a = { fg = p.ink, bg = p.amber, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
command = {
a = { fg = p.ink, bg = p.sacred, gui = "bold" },
b = { fg = p.text, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
inactive = {
a = { fg = p.dim, bg = p.panel },
b = { fg = p.dim, bg = p.panel },
c = { fg = p.dim, bg = p.void },
},
}
M.load()
return M

View File

@@ -0,0 +1,35 @@
# {{ scheme }} — tmux theme
# Generated by the Apex build system. Do not edit.
# Status bar
set -g status-style "fg={{ palette.foreground }},bg={{ ui.panel }}"
# Status left: session name in red
set -g status-left "#[fg={{ palette.selection_fg }},bg={{ palette.cursor }},bold] #S #[fg={{ ui.panel }},bg={{ ui.panel }}]"
set -g status-left-length 30
# Status right: date/time in dim
set -g status-right "#[fg={{ ui.dim }},bg={{ ui.panel }}] %H:%M %d-%b "
set -g status-right-length 30
# Window list
set -g window-status-format "#[fg={{ ui.dim }},bg={{ ui.panel }}] #I:#W "
set -g window-status-current-format "#[fg={{ palette.foreground }},bg={{ ui.panel }},bold] #I:#W #[fg={{ palette.cursor }}]▏"
# Pane borders
set -g pane-border-style "fg={{ ui.border }}"
set -g pane-active-border-style "fg={{ palette.cursor }}"
# Messages
set -g message-style "fg={{ palette.info }},bg={{ ui.panel }}"
set -g message-command-style "fg={{ palette.selection_fg }},bg={{ palette.cursor }}"
# Copy mode
set -g mode-style "fg={{ palette.selection_fg }},bg={{ palette.info }},bold"
# Clock
set -g clock-mode-colour "{{ palette.info }}"
# Misc
set -g status-position bottom
set -g status-justify left

2
templates/tmux/meta.yaml Normal file
View File

@@ -0,0 +1,2 @@
app: tmux
strategy: individual