{ config, lib, pkgs, ... }: let cfg = config.modules.colors.mountain; hexColorRegex = ''#([0-9a-fA-F]{3}){1,2}''; hexColor = { type = lib.types.strMatching hexColorRegex; }; in { options.modules.colors.mountain = { enable = lib.mkEnableOption "mountain theme"; }; config = lib.mkIf cfg.enable { modules.scheme = { name = "base16-mountain"; base00 = "#0f0f0f"; base01 = "#191919"; base02 = "#262626"; base03 = "#4c4c4c"; base04 = "#ac8a8c"; base05 = "#cacaca"; base06 = "#e7e7e7"; base07 = "#f0f0f0"; base08 = "#ac8a8c"; base09 = "#ceb188"; base0A = "#aca98a"; base0B = "#8aac8b"; base0C = "#8aabac"; base0D = "#8f8aac"; base0E = "#ac8aac"; base0F = "#ac8a8c"; extraVimConfig = '' hi LineNr guifg=#ceb188 hi LineNrAbove guifg=#262626 hi LineNrBelow guifg=#262626 hi CursorLineNr guifg=#ceb188 guibg=#191919 gui=bold hi FloatBorder guifg=#4c4c4c hi Pmenu guibg=#0d0d0d hi BlinkCmpMenuBorder guifg=#4c4c4c hi BlinkCmpDocBorder guifg=#4c4c4c hi PmenuSel guibg=#191919 guifg=#cacaca hi WinBar guifg=#4c4c4c hi WinSeparator guifg=#191919 " "" status line hi StatusLine guibg=#191919 guifg=#4c4c4c hi StatuslineInactive guibg=#191919 guifg=#4c4c4c gui=NONE hi StatuslineAccent guifg=#0f0f0f guibg=#aca98a gui=bold hi StatuslineInsertAccent guifg=#0f0f0f guibg=#8aabac gui=bold hi StatuslineVisualAccent guifg=#0f0f0f guibg=#8f8aac gui=bold hi StatuslineReplaceAccent guifg=#0f0f0f guibg=#ac8a8c gui=bold hi StatuslineTerminalAccent guifg=#0f0f0f guibg=#ac8a8c gui=bold hi StatuslineCommandAccent guifg=#0f0f0f guibg=#8aac8b gui=bold hi StatuslineFileIcon guibg=#191919 guifg=#8f8aac hi StatuslineInfo guibg=#191919 guifg=#4c4c4c hi LspError guibg=#191919 guifg=#c49ea0 hi LspWarn guibg=#191919 guifg=#8f8aac hi LspInfo guibg=#191919 guifg=#8f8aac hi LspHint guibg=#191919 guifg=#8aabac ''; }; }; }