├── .gitignore ├── README.md ├── autoload ├── airline │ └── themes │ │ └── kimbox.vim └── lightline │ └── colorscheme │ └── kimbox.vim ├── colors └── kimbox.lua ├── extras ├── .Xresources ├── kimbox.tmTheme ├── kimbox.toml └── wezterm.lua └── lua ├── bufferline └── themes │ └── kimbox.lua ├── kimbox ├── bufferline.lua ├── colors.lua ├── config.lua ├── config_old.lua ├── highlights.lua ├── init.lua ├── lualine.lua ├── palette.lua ├── terminal.lua └── utils.lua └── lualine └── themes └── kimbox.lua /.gitignore: -------------------------------------------------------------------------------- 1 | doc/tags 2 | after/ftplugin 3 | _other 4 | highlights.md 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Kimbox](https://lmburns.com/gallery/media/large/kimbox-rust.png) 2 | 3 | Kimbox is a dark colorscheme for Neovim with builtin treesitter support. It is my variation of the [original `Kimbie Dark` colorscheme](https://marketplace.visualstudio.com/items?itemName=dnamsons.kimbie-dark-plus). 4 | 5 | The colors may look duller in the images provided, though they will not be whenever the colorscheme is actually loaded. I've noticed that many other colorschemes seem brighter than what their images show. 6 | 7 | ## Installation 8 | 9 | - vim-plug 10 | ```vim 11 | Plug 'lmburns/kimbox' 12 | 13 | colorscheme kimbox 14 | ``` 15 | 16 | - Packer 17 | ```lua 18 | use({"lmburns/kimbox", config = [[require("kimbox").load()]]}) 19 | -- or 20 | use({ 21 | "lmburns/kimbox", 22 | config = function() 23 | require("kimbox").setup({ 24 | -- options 25 | }) 26 | require("kimbox").load() 27 | -- or 28 | vim.cmd("colorscheme kimbox") 29 | end, 30 | }) 31 | ``` 32 | 33 | - Bufferline 34 | ```lua 35 | -- Colors can be accessed with 36 | local c = require("kimbox.bufferline").colors() 37 | 38 | -- Theme itself 39 | local t = require("kimbox.bufferline").theme() 40 | 41 | require("bufferline").setup({ 42 | -- configuration stuff 43 | highlights = require("kimbox.bufferline").theme() 44 | }) 45 | ``` 46 | 47 | - Lualine 48 | ```lua 49 | -- Colors can be accessed with 50 | local c = require("kimbox.lualine").colors() 51 | 52 | -- Theme itself 53 | local t = require("kimbox.lualine").theme() 54 | 55 | require("lualine").setup({ 56 | -- configuration stuff 57 | theme = 'kimbox' -- 'auto' works as well 58 | }) 59 | ``` 60 | 61 | ## Color 62 | 63 | | #39260E | #291804 | #EF1D55 | #DC3958 | #FF5813 | #FF9500 | #819C3B | 64 | | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | 65 | | ![#39260E](https://via.placeholder.com/80/39260E/000000.png?text=+) | ![#291804](https://via.placeholder.com/80/291804.png/000000.png?text=+) | ![#EF1D55](https://via.placeholder.com/80/EF1D55/000000.png?text=+) | ![#DC3958](https://via.placeholder.com/80/DC3958/000000.png?text=+) | ![#FF5813](https://via.placeholder.com/80/FF5813/000000.png?text=+) | ![#FF9500](https://via.placeholder.com/80/FF9500/000000.png?text=+) | ![#819C3B](https://via.placeholder.com/80/819C3B/000000.png?text=+) | 66 | | #7EB2B1 | #4C96A8 | #98676A | #A06469 | #7F5D38 | #A89984 | #D9AE80 | 67 | | ![#7EB2B1](https://via.placeholder.com/80/7EB2B1/000000.png?text=+) | ![#4C96A8](https://via.placeholder.com/80/4C96A8/000000.png?text=+) | ![#98676A](https://via.placeholder.com/80/98676A/000000.png?text=+) | ![#A06469](https://via.placeholder.com/80/A06469/000000.png?text=+) | ![#7F5D38](https://via.placeholder.com/80/7F5D38/000000.png?text=+) | ![#A89984](https://via.placeholder.com/80/A89984/000000.png?text=+) | ![#D9AE80](https://via.placeholder.com/80/D9AE80/000000.png?text=+) | 68 | 69 | ## Options (Lua) 70 | 71 | ```lua 72 | -- These options can also be set using: 73 | vim.g.kimbox_config = { 74 | -- ...options from above 75 | } 76 | 77 | require("kimbox").setup({ 78 | ---Background color: 79 | --- burnt_coffee : #231A0C -- legacy: "medium" 80 | --- cannon : #221A02 -- legacy: "ocean" 81 | --- used_oil : #221A0F -- legacy: "vscode" 82 | --- deep : #0F111B 83 | --- zinnwaldite : #291804 -- legacy: "darker" 84 | --- eerie : #1C0B28 85 | style = "cannon", 86 | ---Allow changing background color 87 | toggle_style = { 88 | ---Key used to cycle through the backgrounds in `toggle_style.bgs` 89 | key = "ts", 90 | ---List of background names 91 | bgs = require("kimbox.config").bg_colors 92 | }, 93 | ---New Lua-Treesitter highlight groups 94 | ---See below (New Lua Treesitter Highlight Groups) for an explanation 95 | --- Location where Treesitter capture groups changed to '@capture.name' 96 | --- Commit: 030b422d1 97 | --- Vim patch: patch-8.2.0674 98 | langs08 = true, 99 | ---Used with popup menus (coc.nvim mainly) -- 100 | popup = { 101 | background = false, -- use background color for PMenu 102 | }, 103 | -- ━━━ Plugin Related ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 104 | diagnostics = { 105 | background = true, -- use background color for virtual text 106 | }, 107 | -- ━━━ General Formatting ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108 | allow_bold = true, 109 | allow_italic = false, 110 | allow_underline = false, 111 | allow_undercurl = true, 112 | allow_reverse = false, 113 | transparent = false, -- don't set background 114 | term_colors = true, -- if true enable the terminal 115 | ending_tildes = false, -- show the end-of-buffer tildes 116 | -- ━━━ Custom Highlights ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117 | ---Override default colors 118 | ---@type table 119 | colors = {}, 120 | ---Override highlight groups 121 | ---@type Kimbox.Highlight.Map 122 | highlights = {}, 123 | ---Plugins and langauges that can be disabled 124 | ---To view options: print(require("kimbox.highlights").{langs,langs08,plugins}) 125 | ---@type {langs: Kimbox.Highlight.Langs[], langs08: Kimbox.Highlight.Langs08[], plugins: Kimbox.Highlight.Plugins[]} 126 | disabled = { 127 | ---Disabled languages 128 | ---@see Kimbox.Highlight.Langs 129 | langs = {}, 130 | ---Disabled languages with '@' treesitter highlights 131 | ---@see Kimbox.Highlight.Langs08 132 | langs08 = {}, 133 | ---Disabled plugins 134 | ---@see Kimbox.Highlight.Plugins 135 | plugins = {}, 136 | }, 137 | ---Run a function before the colorscheme is loaded 138 | ---@type fun(): nil 139 | run_before = nil, 140 | ---Run a function after the colorscheme is loaded 141 | ---@type fun(): nil 142 | run_after = nil, 143 | }) 144 | 145 | require("kimbox").load() 146 | ``` 147 | 148 | ### Options (vimscript) 149 | 150 | ```vim 151 | " an example 152 | let g:kimbox_config = #{ 153 | \ style: 'cannon', 154 | \ toggle_style: #{ 155 | \ key: 'ts', 156 | \ bgs: [ 157 | \ 'burnt_coffee', 158 | \ 'cannon', 159 | \ 'used_oil', 160 | \ 'deep', 161 | \ 'zinnwaldite', 162 | \ 'eerie', 163 | \ ] 164 | \ }, 165 | \ langs08: v:false, 166 | \ diagnostics: #{background: v:true}, 167 | \ popup: #{background: v:false}, 168 | \ allow_bold: v:true, 169 | \ allow_italic: v:false, 170 | \ allow_underline: v:false, 171 | \ allow_undercurl: v:true, 172 | \ allow_reverse: v:false, 173 | \ transparent: v:false, 174 | \ term_colors: v:true, 175 | \ ending_tildes: v:false, 176 | \ colors: [], 177 | \ highlights: [], 178 | \ disabled: #{ 179 | \ langs: [], 180 | \ langs08: [], 181 | \ plugins: [], 182 | \ }, 183 | \ run_before: v:null, 184 | \ run_after: v:null, 185 | \ } 186 | 187 | colorscheme kimbox 188 | ``` 189 | 190 | ### Overriding highlight groups 191 | 192 | ```lua 193 | require("kimbox").setup({ 194 | colors = { 195 | bright_orange = "#ff8800", -- define a new color 196 | green = "#77A172", -- redefine an existing color 197 | myblue = "#418292", 198 | }, 199 | highlights = { 200 | TSKeyword = {fg = "$green"}, 201 | TSString = {fg = "$bright_orange", bg = "#FF5813", gui = "bold"}, 202 | TSFunction = {fg = "#88C0D0", sp = "$aqua", gui = "underline,italic"}, 203 | ["@function.macro.lua"] = {fg = "$myblue", sp = "$aqua", gui = "underline,italic"}, 204 | }, 205 | }) 206 | ``` 207 | 208 | ## New Lua Treesitter Highlight Groups 209 | 210 | See `:h lua-treesitter-highlight-groups` for a full explanation. 211 | 212 | After the commit `030b422d1`, highlight groups were changed in the following pattern: 213 | * `luaTSFunction` => `@function.lua` 214 | * `vimdocTSTitle` => `@text.title.vimdoc` 215 | * etc. 216 | 217 | This feature will **not yet be enabled by default**. If you wish to use this colorscheme and wish to have the exact same colors as the highlight groups that were present before the aforementioned commit, set the configuration feature `langs08` to `true` in your configuration. This feature will eventually be this colorschemes default settings. 218 | 219 | ## Filetype Support 220 | 221 | Treesitter is preferred for most file types (not Zsh). 222 | All of the following languages have been manually configured. 223 | 224 |
225 | Support 226 | 227 | - Awk 228 | - Bash/Dash 229 | - C/C++ 230 | - Clojure 231 | - CoffeeScript 232 | - Dart 233 | - Elixir 234 | - Erlang 235 | - Go 236 | - Haskell 237 | - HTML 238 | - Javascript 239 | - JavascriptReact TypescriptReact 240 | - Kotlin 241 | - Lua 242 | - OCaml 243 | - ObjectiveC 244 | - PHP 245 | - Perl 246 | - Python 247 | - R 248 | - Ruby 249 | - Rust 250 | - Scala 251 | - Sed 252 | - Solidity 253 | - Swift 254 | - Teal 255 | - Typescript 256 | - TypescriptReact (`.tsx`) 257 | - Vimscript 258 | - Zig 259 | - Zsh 260 | 261 | - CSS 262 | - SCSS 263 | - GraphQL 264 | - JQ 265 | - Comments 266 | - Vimdoc (Vim help) 267 | - LuaDoc (Lua documentation comments) 268 | - Luap (Lua patterns) 269 | - Query (`.scm`, Treesitter query syntax) 270 | - Regex 271 | - Latex 272 | - Markdown 273 | - Matlab 274 | 275 | - sxhkdrc 276 | - CMake 277 | - Makefile 278 | - Git Commit 279 | - Git Config 280 | - Git Ignore 281 | - DosIni (`.ini`) 282 | - JSON 283 | - RON (Rust Object Notation) 284 | - TOML 285 | - YAML 286 | 287 |
288 | 289 | ## Plugin Support 290 | - If any plugin is not supported and you would like for it to be, please let me know. 291 | 292 |
293 | Support 294 | 295 | - [Aerial](https://github.com/stevearc/aerial.nvim) 296 | - [Ale](https://github.com/dense-analysis/ale) 297 | - [Barbar](https://github.com/romgrk/barbar.nvim) 298 | - [BufferLine](https://github.com/akinsho/nvim-bufferline.lua) 299 | - [Cmp](https://github.com/hrsh7th/nvim-cmp) 300 | - [Coc-Explorer](https://github.com/weirongxu/coc-explorer) 301 | - [Coc-Git](https://github.com/neoclide/coc-git) 302 | - [Coc.nvim](https://github.com/neoclide/coc.nvim) 303 | - [Cybu](https://github.com/ghillb/cybu.nvim) 304 | - [Dap-UI](https://github.com/rcarriga/nvim-dap-ui) 305 | - [Dashboard](https://github.com/glepnir/dashboard-nvim) 306 | - [Defx](https://github.com/Shougo/defx.nvim) 307 | - [DiffView](https://github.com/sindrets/diffview.nvim) 308 | - [EasyMotion](https://github.com/easymotion/vim-easymotion) 309 | - [Fern](https://github.com/lambdalisue/fern.vim) 310 | - [Floaterm](https://github.com/voldikss/vim-floaterm) 311 | - [Fzf-Lua](https://github.com/ibhagwan/fzf-lua) 312 | - [Git Gutter](https://github.com/airblade/vim-gitgutter) 313 | - [Git Signs](https://github.com/lewis6991/gitsigns.nvim) 314 | - [HlArgs](https://github.com/m-demare/hlargs.nvim) 315 | - [Hop](https://github.com/phaazon/hop.nvim) 316 | - [Incline](https://github.com/b0o/incline.nvim) 317 | - [Indent Blankline](https://github.com/lukas-reineke/indent-blankline.nvim) 318 | - [LSP Diagnostics](https://neovim.io/doc/user/lsp.html) 319 | - [LSP Saga](https://github.com/glepnir/lspsaga.nvim) 320 | - [LSP Trouble](https://github.com/folke/lsp-trouble.nvim) 321 | - [Lightline](https://github.com/itchyny/lightline.vim) 322 | - [Lightspeed](https://github.com/ggandor/lightspeed.nvim) 323 | - [Lualine](https://github.com/hoob3rt/lualine.nvim) 324 | - [Marks](https://github.com/chentau/marks.nvim) 325 | - [Modes](https://github.com/mvllow/modes.nvim) 326 | - [Neogit](https://github.com/TimUntersberger/neogit) 327 | - [Neomake](https://github.com/neomake/neomake) 328 | - [Neotest](https://github.com/rcarriga/neotest) 329 | - [NerdIcons](https://github.com/glepnir/nerdicons.nvim) 330 | - [NerdTree](https://github.com/preservim/nerdtree) 331 | - [Noice](https://github.com/folke/noice.nvim) 332 | - [Nvim-Notify](https://github.com/rcarriga/nvim-notify) 333 | - [Nvim-R](https://github.com/jalvesaq/Nvim-R) 334 | - [NvimTree](https://github.com/kyazdani42/nvim-tree.lua) 335 | - [Overseer](https://github.com/stevearc/overseer.nvim) 336 | - [Packer](https://github.com/wbthomason/packer.nvim) 337 | - [Registers](https://github.com:tversteeg/registers.nvim) 338 | - [Sneak](https://github.com/justinmk/vim-sneak) 339 | - [Startify](https://github.com/mhinz/vim-startify) 340 | - [Symbols Outline](https://github.com/simrat39/symbols-outline.nvim) 341 | - [Telescope](https://github.com/nvim-telescope/telescope.nvim) 342 | - [Treesitter](https://github.com/nvim-treesitter/nvim-treesitter) 343 | - [Treesitter Treehopper](https://github.com/mfussenegger/nvim-treehopper) 344 | - [Treesitter Rainbow](https://github.com/p00f/nvim-ts-rainbow) 345 | - [Treesitter Rainbow 2](https://github.com/HiPhish/nvim-ts-rainbow2) 346 | - [VimWiki](https://github.com/vimwiki/vimwiki) 347 | - [Vimtex](https://github.com/lervag/vimtex) 348 | - [Vista.vim](https://github.com/liuchengxu/vista.vim) 349 | - [WhichKey](https://github.com/folke/which-key.nvim) 350 | - [dart-vim-plugin](https://github.com/dart-lang/dart-vim-plugin) 351 | - [haskell-vim](https://github.com/neovimhaskell/haskell-vim) 352 | - [kotlin-vim](https://github.com/udalov/kotlin-vim) 353 | - [php.vim](https://github.com/StanAngeloff/php.vim) 354 | - [python-syntax](https://github.com/vim-python/python-syntax,) 355 | - [ron.vim](https://github.com/ron-rs/ron.vim) 356 | - [rust.vim](https://github.com/rust-lang/rust.vim) 357 | - [semshi](https://github.com/numirias/semshi,) 358 | - [swift.vim](https://github.com/keith/swift.vim) 359 | - [vim-clojure-static](https://github.com/guns/vim-clojure-static) 360 | - [vim-coffee-script](https://github.com/kchmck/vim-coffee-script) 361 | - [vim-elixir](https://github.com/elixir-editors/vim-elixir) 362 | - [vim-erlang-runtime](https://github.com/vim-erlang/vim-erlang-runtime) 363 | - [vim-illuminate](https://github.com/RRethy/vim-illuminate) 364 | - [vim-javascript](https://github.com/pangloss/vim-javascript) 365 | - [vim-jsx-pretty](https://github.com/maxmellon/vim-jsx-pretty) 366 | - [vim-ocaml](https://github.com/rgrinberg/vim-ocaml) 367 | - [vim-perl](https://github.com/vim-perl/vim-perl) 368 | - [vim-ruby](https://github.com/vim-ruby/vim-ruby) 369 | - [vim-scala](https://github.com/derekwyatt/vim-scala) 370 | - [vim-solidity](https://github.com/thesis/vim-solidity) 371 | - [vim-SpellCheck](https://github.com/inkarkat/vim-SpellCheck) 372 | - [vim-typescript](https://github.com/leafgarland/typescript-vim) 373 | - [yajs](https://github.com/othree/yajs.vim,) 374 | - [yats](https:github.com/HerringtonDarkholme/yats.vim) 375 | 376 |
377 | 378 | ### Name 379 | The name came about because I had originally thought I was going to create a combination of the kimbie dark and gruvbox colorschemes. It's too late to change it now. 380 | 381 | ### Extras 382 | - There is a supplemental TextMate theme in the `extras` directory. This can be used with [`bat`](https://github.com/sharkdp/bat) or SublimeText. 383 | - There are also files which can be used with [`wezterm`](https://github.com/wez/wezterm). One is the theme itself, and the other contains configuration options to setup the theme. 384 | 385 | ### TODO 386 | - Create some sort of documentation 387 | - Create a compiled version similar to `nightfox` 388 | 389 | ## Thanks to 390 | 391 | - [glepnir/oceanic-material](https://github.com/glepnir/oceanic-material) 392 | - [navarasu/onedark.nvim](https://github.com/navarasu/onedark.nvim) 393 | -------------------------------------------------------------------------------- /autoload/airline/themes/kimbox.vim: -------------------------------------------------------------------------------- 1 | " ============================================================================= 2 | " URL: https://github.com/sainnhe/gruvbox-material 3 | " Filename: autoload/airline/themes/kimbox.vim 4 | " Author: sainnhe | lmburns 5 | " Email: sainnhe@gmail.com | burnsac@me.com 6 | " License: MIT License 7 | " ============================================================================= 8 | 9 | " Initialization: {{{ 10 | let s:colors = { 11 | \ 'bg0': ['#291804', '237'], 12 | \ 'bg1': ['#39260E', '237'], 13 | \ 'bg2': ['#362712', '235'], 14 | \ 'bg3': ['#291804', '237'], 15 | \ 'bg4': ['#5e452b', '237'], 16 | \ 'bg5': ['#5e452b', '239'], 17 | \ 'fg0': ['#D9AE80', '223'], 18 | \ 'fg1': ['#7E602C', '225'], 19 | \ 'fg3': ['#231A0C', '17'], 20 | \ 'fg4': ['#e8c097', '251'], 21 | \ 'red': ['#EF1D55', '255'], 22 | \ 'magenta': ['#A06469', '255'], 23 | \ 'orange': ['#FF5813', '255'], 24 | \ 'yellow': ['#819C3B', '255'], 25 | \ 'green': ['#FF9500', '255'], 26 | \ 'aqua': ['#7EB2B1', '255'], 27 | \ 'blue': ['#4C96A8', '255'], 28 | \ 'purple': ['#98676A', '176'], 29 | \ 'black': ['#000000', '0'], 30 | \ 'bg_red': ['#DC3958', '167'], 31 | \ 'grey0': ['#7E602C', '243'], 32 | \ 'grey1': ['#7E602C', '245'], 33 | \ 'grey2': ['#a89984', '246'], 34 | \ 'none': ['NONE', 'NONE'] 35 | \ } 36 | "}}} 37 | " Definition: {{{ 38 | let s:accents = s:colors.red 39 | 40 | let s:error_fg = s:colors.bg0 41 | let s:error_bg = s:colors.red 42 | let s:warning_fg = s:colors.bg0 43 | let s:warning_bg = s:colors.orange 44 | let s:term_fg = s:colors.grey2 45 | let s:term_bg = s:colors.bg2 46 | 47 | let s:tab_fg = s:colors.grey2 48 | let s:tab_bg = s:colors.bg2 49 | let s:tab_sel_fg = s:colors.bg0 50 | let s:tab_sel_bg = s:colors.grey2 51 | let s:tab_mid_fg = s:colors.grey1 52 | let s:tab_mid_bg = s:colors.bg0 53 | let s:tab_mod_fg = s:colors.bg0 54 | let s:tab_mod_bg = s:colors.grey2 55 | let s:tab_type_fg = s:colors.bg0 56 | let s:tab_type_bg = s:colors.orange 57 | let s:tab_label_fg = s:colors.grey2 58 | let s:tab_label_bg = s:colors.bg2 59 | 60 | let s:normal_side_fg = s:colors.bg0 61 | let s:normal_side_bg = s:colors.grey2 62 | let s:normal_sub_fg = s:colors.grey2 63 | let s:normal_sub_bg = s:colors.bg3 64 | let s:normal_mid_fg = s:colors.grey2 65 | let s:normal_mid_bg = s:colors.bg2 66 | let s:normal_mod_fg = s:colors.fg1 67 | let s:normal_mod_bg = s:colors.bg2 68 | 69 | let s:insert_side_fg = s:colors.bg0 70 | let s:insert_side_bg = s:colors.blue 71 | let s:insert_sub_fg = s:colors.fg1 72 | let s:insert_sub_bg = s:colors.bg3 73 | let s:insert_mid_fg = s:colors.fg1 74 | let s:insert_mid_bg = s:colors.bg3 75 | let s:insert_mod_fg = s:colors.blue 76 | let s:insert_mod_bg = s:colors.bg3 77 | 78 | let s:visual_side_fg = s:colors.bg0 79 | let s:visual_side_bg = s:colors.orange 80 | let s:visual_sub_fg = s:colors.fg1 81 | let s:visual_sub_bg = s:colors.bg3 82 | let s:visual_mid_fg = s:colors.bg0 83 | let s:visual_mid_bg = s:colors.grey0 84 | let s:visual_mod_fg = s:colors.bg0 85 | let s:visual_mod_bg = s:colors.grey0 86 | 87 | let s:replace_side_fg = s:colors.bg0 88 | let s:replace_side_bg = s:colors.aqua 89 | let s:replace_sub_fg = s:colors.fg1 90 | let s:replace_sub_bg = s:colors.bg3 91 | let s:replace_mid_fg = s:colors.fg1 92 | let s:replace_mid_bg = s:colors.bg3 93 | let s:replace_mod_fg = s:colors.aqua 94 | let s:replace_mod_bg = s:colors.bg3 95 | 96 | let s:commandline_side_fg = s:colors.bg0 97 | let s:commandline_side_bg = s:colors.green 98 | let s:commandline_sub_fg = s:colors.fg1 99 | let s:commandline_sub_bg = s:colors.bg3 100 | let s:commandline_mid_fg = s:colors.fg1 101 | let s:commandline_mid_bg = s:colors.bg3 102 | let s:commandline_mod_fg = s:colors.green 103 | let s:commandline_mod_bg = s:colors.bg3 104 | 105 | let s:inactive_side_fg = s:colors.grey2 106 | let s:inactive_side_bg = s:colors.bg1 107 | let s:inactive_sub_fg = s:colors.grey2 108 | let s:inactive_sub_bg = s:colors.bg1 109 | let s:inactive_mid_fg = s:colors.grey2 110 | let s:inactive_mid_bg = s:colors.bg1 111 | let s:inactive_mod_fg = s:colors.grey2 112 | let s:inactive_mod_bg = s:colors.bg1 "}}} 113 | "}}} 114 | " Implementation: {{{ 115 | let g:airline#themes#kimbox#palette = {} 116 | let g:airline#themes#kimbox#palette.accents = { 117 | \ 'red': [ s:accents[0] , '' , s:accents[1] , '' , '' ], 118 | \ } 119 | 120 | " Normal mode 121 | let s:N1 = [ s:normal_side_fg[0] , s:normal_side_bg[0] , s:normal_side_fg[1] , s:normal_side_bg[1] ] 122 | let s:N2 = [ s:normal_sub_fg[0] , s:normal_sub_bg[0] , s:normal_sub_fg[1] , s:normal_sub_bg[1] ] 123 | let s:N3 = [ s:normal_mid_fg[0] , s:normal_mid_bg[0] , s:normal_mid_fg[1] , s:normal_mid_bg[1] ] 124 | 125 | let g:airline#themes#kimbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) 126 | let g:airline#themes#kimbox#palette.normal.airline_error = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 127 | let g:airline#themes#kimbox#palette.normal.airline_warning = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 128 | let g:airline#themes#kimbox#palette.normal.airline_term = [ s:term_fg[0] , s:term_bg[0] , s:term_fg[1] , s:term_bg[1] ] 129 | let g:airline#themes#kimbox#palette.normal.airline_error_inactive = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 130 | let g:airline#themes#kimbox#palette.normal.airline_warning_inactive = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 131 | let g:airline#themes#kimbox#palette.normal.airline_error_red = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 132 | let g:airline#themes#kimbox#palette.normal.airline_warning_red = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 133 | let g:airline#themes#kimbox#palette.normal_modified = deepcopy(g:airline#themes#kimbox#palette.normal) 134 | let g:airline#themes#kimbox#palette.normal_modified.airline_c = [ s:normal_mod_fg[0] , s:normal_mod_bg[0] , s:normal_mod_fg[1] , s:normal_mod_bg[1] ] 135 | 136 | " Insert mode 137 | let s:I1 = [ s:insert_side_fg[0] , s:insert_side_bg[0] , s:insert_side_fg[1] , s:insert_side_bg[1] ] 138 | let s:I2 = [ s:insert_sub_fg[0] , s:insert_sub_bg[0] , s:insert_sub_fg[1] , s:insert_sub_bg[1] ] 139 | let s:I3 = [ s:insert_mid_fg[0] , s:insert_mid_bg[0] , s:insert_mid_fg[1] , s:insert_mid_bg[1] ] 140 | 141 | let g:airline#themes#kimbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) 142 | let g:airline#themes#kimbox#palette.insert.airline_error = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 143 | let g:airline#themes#kimbox#palette.insert.airline_warning = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 144 | let g:airline#themes#kimbox#palette.insert.airline_term = [ s:term_fg[0] , s:term_bg[0] , s:term_fg[1] , s:term_bg[1] ] 145 | let g:airline#themes#kimbox#palette.insert.airline_error_inactive = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 146 | let g:airline#themes#kimbox#palette.insert.airline_warning_inactive = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 147 | let g:airline#themes#kimbox#palette.insert.airline_error_red = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 148 | let g:airline#themes#kimbox#palette.insert.airline_warning_red = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 149 | let g:airline#themes#kimbox#palette.insert_modified = deepcopy(g:airline#themes#kimbox#palette.insert) 150 | let g:airline#themes#kimbox#palette.insert_modified.airline_c = [ s:insert_mod_fg[0] , s:insert_mod_bg[0] , s:insert_mod_fg[1] , s:insert_mod_bg[1] ] 151 | 152 | " Replace mode 153 | let s:R1 = [ s:replace_side_fg[0] , s:replace_side_bg[0] , s:replace_side_fg[1] , s:replace_side_bg[1] ] 154 | let s:R2 = [ s:replace_sub_fg[0] , s:replace_sub_bg[0] , s:replace_sub_fg[1] , s:replace_sub_bg[1] ] 155 | let s:R3 = [ s:replace_mid_fg[0] , s:replace_mid_bg[0] , s:replace_mid_fg[1] , s:replace_mid_bg[1] ] 156 | 157 | let g:airline#themes#kimbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) 158 | let g:airline#themes#kimbox#palette.replace.airline_error = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 159 | let g:airline#themes#kimbox#palette.replace.airline_warning = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 160 | let g:airline#themes#kimbox#palette.replace.airline_term = [ s:term_fg[0] , s:term_bg[0] , s:term_fg[1] , s:term_bg[1] ] 161 | let g:airline#themes#kimbox#palette.replace.airline_error_inactive = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 162 | let g:airline#themes#kimbox#palette.replace.airline_warning_inactive = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 163 | let g:airline#themes#kimbox#palette.replace.airline_error_red = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 164 | let g:airline#themes#kimbox#palette.replace.airline_warning_red = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 165 | let g:airline#themes#kimbox#palette.replace_modified = deepcopy(g:airline#themes#kimbox#palette.replace) 166 | let g:airline#themes#kimbox#palette.replace_modified.airline_c = [ s:replace_mod_fg[0] , s:replace_mod_bg[0] , s:replace_mod_fg[1] , s:replace_mod_bg[1] ] 167 | 168 | " Visual mode 169 | let s:V1 = [ s:visual_side_fg[0] , s:visual_side_bg[0] , s:visual_side_fg[1] , s:visual_side_bg[1] ] 170 | let s:V2 = [ s:visual_sub_fg[0] , s:visual_sub_bg[0] , s:visual_sub_fg[1] , s:visual_sub_bg[1] ] 171 | let s:V3 = [ s:visual_mid_fg[0] , s:visual_mid_bg[0] , s:visual_mid_fg[1] , s:visual_mid_bg[1] ] 172 | 173 | let g:airline#themes#kimbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) 174 | let g:airline#themes#kimbox#palette.visual.airline_error = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 175 | let g:airline#themes#kimbox#palette.visual.airline_warning = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 176 | let g:airline#themes#kimbox#palette.visual.airline_term = [ s:term_fg[0] , s:term_bg[0] , s:term_fg[1] , s:term_bg[1] ] 177 | let g:airline#themes#kimbox#palette.visual.airline_error_inactive = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 178 | let g:airline#themes#kimbox#palette.visual.airline_warning_inactive = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 179 | let g:airline#themes#kimbox#palette.visual.airline_error_red = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 180 | let g:airline#themes#kimbox#palette.visual.airline_warning_red = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 181 | let g:airline#themes#kimbox#palette.visual_modified = deepcopy(g:airline#themes#kimbox#palette.visual) 182 | let g:airline#themes#kimbox#palette.visual_modified.airline_c = [ s:visual_mod_fg[0] , s:visual_mod_bg[0] , s:visual_mod_fg[1] , s:visual_mod_bg[1] ] 183 | 184 | " Command Line mode 185 | let s:R1 = [ s:commandline_side_fg[0] , s:commandline_side_bg[0] , s:commandline_side_fg[1] , s:commandline_side_bg[1] ] 186 | let s:R2 = [ s:commandline_sub_fg[0] , s:commandline_sub_bg[0] , s:commandline_sub_fg[1] , s:commandline_sub_bg[1] ] 187 | let s:R3 = [ s:commandline_mid_fg[0] , s:commandline_mid_bg[0] , s:commandline_mid_fg[1] , s:commandline_mid_bg[1] ] 188 | 189 | let g:airline#themes#kimbox#palette.commandline = airline#themes#generate_color_map(s:R1, s:R2, s:R3) 190 | let g:airline#themes#kimbox#palette.commandline.airline_error = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 191 | let g:airline#themes#kimbox#palette.commandline.airline_warning = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 192 | let g:airline#themes#kimbox#palette.commandline.airline_term = [ s:term_fg[0] , s:term_bg[0] , s:term_fg[1] , s:term_bg[1] ] 193 | let g:airline#themes#kimbox#palette.commandline.airline_error_inactive = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 194 | let g:airline#themes#kimbox#palette.commandline.airline_warning_inactive = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 195 | let g:airline#themes#kimbox#palette.commandline.airline_error_red = [ s:error_fg[0] , s:error_bg[0] , s:error_fg[1] , s:error_bg[1] ] 196 | let g:airline#themes#kimbox#palette.commandline.airline_warning_red = [ s:warning_fg[0] , s:warning_bg[0] , s:warning_fg[1] , s:warning_bg[1] ] 197 | let g:airline#themes#kimbox#palette.commandline_modified = deepcopy(g:airline#themes#kimbox#palette.commandline) 198 | let g:airline#themes#kimbox#palette.commandline_modified.airline_c = [ s:commandline_mod_fg[0] , s:commandline_mod_bg[0] , s:commandline_mod_fg[1] , s:commandline_mod_bg[1] ] 199 | 200 | " Inactive 201 | let s:IA1 = [ s:inactive_side_fg[0] , s:inactive_side_bg[0] , s:inactive_side_fg[1] , s:inactive_side_bg[1] ] 202 | let s:IA2 = [ s:inactive_sub_fg[0] , s:inactive_sub_bg[0] , s:inactive_sub_fg[1] , s:inactive_sub_bg[1] ] 203 | let s:IA3 = [ s:inactive_mid_fg[0] , s:inactive_mid_bg[0] , s:inactive_mid_fg[1] , s:inactive_mid_bg[1] ] 204 | 205 | let g:airline#themes#kimbox#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) 206 | let g:airline#themes#kimbox#palette.inactive_modified = deepcopy(g:airline#themes#kimbox#palette.inactive) 207 | let g:airline#themes#kimbox#palette.inactive_modified.airline_c = [ s:inactive_mod_fg[0] , s:inactive_mod_bg[0] , s:inactive_mod_fg[1] , s:inactive_mod_bg[1] ] 208 | 209 | " TabLine 210 | let g:airline#themes#kimbox#palette.tabline = {} 211 | let g:airline#themes#kimbox#palette.tabline.airline_tab = [ s:tab_fg[0] , s:tab_bg[0] , s:tab_fg[1] , s:tab_bg[1] ] 212 | let g:airline#themes#kimbox#palette.tabline.airline_tab_right = [ s:tab_fg[0] , s:tab_bg[0] , s:tab_fg[1] , s:tab_bg[1] ] 213 | let g:airline#themes#kimbox#palette.tabline.airline_tabsel = [ s:tab_sel_fg[0] , s:tab_sel_bg[0] , s:tab_sel_fg[1] , s:tab_sel_bg[1] , 'bold' ] 214 | let g:airline#themes#kimbox#palette.tabline.airline_tabsel_right = [ s:tab_sel_fg[0] , s:tab_sel_bg[0] , s:tab_sel_fg[1] , s:tab_sel_bg[1] , 'bold' ] 215 | let g:airline#themes#kimbox#palette.tabline.airline_tabfill = [ s:tab_mid_fg[0] , s:tab_mid_bg[0] , s:tab_mid_fg[1] , s:tab_mid_bg[1] ] 216 | let g:airline#themes#kimbox#palette.tabline.airline_tabmod = [ s:tab_mod_fg[0] , s:tab_mod_bg[0] , s:tab_mod_fg[1] , s:tab_mod_bg[1] , 'bold' ] 217 | let g:airline#themes#kimbox#palette.tabline.airline_tabmod_right = [ s:tab_mod_fg[0] , s:tab_mod_bg[0] , s:tab_mod_fg[1] , s:tab_mod_bg[1] , 'bold' ] 218 | let g:airline#themes#kimbox#palette.tabline.airline_tabtype = [ s:tab_type_fg[0] , s:tab_type_bg[0] , s:tab_type_fg[1] , s:tab_type_bg[1] ] 219 | let g:airline#themes#kimbox#palette.tabline.airline_tablabel = [ s:tab_label_fg[0] , s:tab_label_bg[0] , s:tab_label_fg[1] , s:tab_label_bg[1] ] 220 | let g:airline#themes#kimbox#palette.tabline.airline_tablabel_right = [ s:tab_label_fg[0] , s:tab_label_bg[0] , s:tab_label_fg[1] , s:tab_label_bg[1] ] 221 | let g:airline#themes#kimbox#palette.tabline.airline_tabhid = s:IA1 222 | 223 | highlight! link bufferline_selected airline_c 224 | "}}} 225 | 226 | " vim: ft=vim:et:sw=0:ts=2:sts=2:fdm=marker:fmr=[[[,]]] 227 | -------------------------------------------------------------------------------- /autoload/lightline/colorscheme/kimbox.vim: -------------------------------------------------------------------------------- 1 | " ============================================================================= 2 | " Filename: autoload/lightline/colorscheme/kimbox.vim 3 | " Author: modified lmburns 4 | " Email: modified burnsac@me.com 5 | " License: MIT License 6 | " ============================================================================= 7 | 8 | let s:colors = { 9 | \ 'bg0': ['#231A0C', '236'], 10 | \ 'bg1': ['#332712', '237'], 11 | \ 'bg2': ['#332712', '235'], 12 | \ 'bg3': ['#291804', '237'], 13 | \ 'bg4': ['#5E452B', '237'], 14 | \ 'bg5': ['#5E452B', '239'], 15 | \ 'fg0': ['#D9AE80', '223'], 16 | \ 'fg1': ['#7E602C', '225'], 17 | \ 'fg3': ['#231A0C', '17'], 18 | \ 'fg4': ['#E8C097', '251'], 19 | \ 'red': ['#EF1D55', '255'], 20 | \ 'magenta': ['#A06469', '255'], 21 | \ 'orange': ['#FF5813', '255'], 22 | \ 'yellow': ['#819C3B', '255'], 23 | \ 'green': ['#FF9500', '255'], 24 | \ 'aqua': ['#7EB2B1', '255'], 25 | \ 'blue': ['#4C96A8', '255'], 26 | \ 'amaranth_purple': ['#733E8B', '255'], 27 | \ 'purple': ['#98676A', '176'], 28 | \ 'black': ['#000000', '0'], 29 | \ 'teaberry': ['#DC3958', '167'], 30 | \ 'grey0': ['#7E5053', '243'], 31 | \ 'grey1': ['#7E602C', '245'], 32 | \ 'grey2': ['#A89984', '246'], 33 | \ 'none': ['NONE', 'NONE'] 34 | \ } 35 | 36 | " Initialization: {{{ 37 | " Definition: {{{ 38 | let s:tab_l_fg = s:colors.grey2 39 | let s:tab_l_bg = s:colors.bg3 40 | let s:tab_r_fg = s:colors.bg0 41 | let s:tab_r_bg = s:colors.grey2 42 | let s:tab_sel_fg = s:colors.bg0 43 | let s:tab_sel_bg = s:colors.grey2 44 | let s:tab_middle_fg = s:colors.grey1 45 | let s:tab_middle_bg = s:colors.bg0 46 | 47 | let s:warningfg = s:colors.bg0 48 | let s:warningbg = s:colors.orange 49 | let s:errorfg = s:colors.bg0 50 | let s:errorbg = s:colors.red 51 | 52 | let s:normal_l1_fg = s:colors.bg0 53 | let s:normal_l1_bg = s:colors.grey2 54 | let s:normal_l2_fg = s:colors.grey2 55 | let s:normal_l2_bg = s:colors.bg3 56 | let s:normal_r1_fg = s:colors.bg0 57 | let s:normal_r1_bg = s:colors.grey2 58 | let s:normal_r2_fg = s:colors.grey2 59 | let s:normal_r2_bg = s:colors.bg3 60 | let s:normal_middle_fg = s:colors.grey2 61 | let s:normal_middle_bg = s:colors.bg2 62 | 63 | let s:insert_l1_fg = s:colors.bg0 64 | let s:insert_l1_bg = s:colors.amaranth_purple 65 | let s:insert_l2_fg = s:colors.fg1 66 | let s:insert_l2_bg = s:colors.bg3 67 | let s:insert_r1_fg = s:colors.bg0 68 | let s:insert_r1_bg = s:colors.amaranth_purple 69 | let s:insert_r2_fg = s:colors.fg1 70 | let s:insert_r2_bg = s:colors.bg3 71 | let s:insert_middle_fg = s:colors.fg1 72 | let s:insert_middle_bg = s:colors.bg3 73 | 74 | let s:visual_l1_fg = s:colors.bg0 75 | let s:visual_l1_bg = s:colors.orange 76 | let s:visual_l2_fg = s:colors.fg1 77 | let s:visual_l2_bg = s:colors.bg3 78 | let s:visual_r1_fg = s:colors.bg0 79 | let s:visual_r1_bg = s:colors.orange 80 | let s:visual_r2_fg = s:colors.fg1 81 | let s:visual_r2_bg = s:colors.bg3 82 | let s:visual_middle_fg = s:colors.bg0 83 | let s:visual_middle_bg = s:colors.grey0 84 | 85 | let s:replace_l1_fg = s:colors.bg0 86 | let s:replace_l1_bg = s:colors.aqua 87 | let s:replace_l2_fg = s:colors.fg1 88 | let s:replace_l2_bg = s:colors.bg3 89 | let s:replace_r1_fg = s:colors.bg0 90 | let s:replace_r1_bg = s:colors.aqua 91 | let s:replace_r2_fg = s:colors.fg1 92 | let s:replace_r2_bg = s:colors.bg3 93 | let s:replace_middle_fg = s:colors.fg1 94 | let s:replace_middle_bg = s:colors.bg3 95 | 96 | let s:command_l1_fg = s:colors.bg0 97 | let s:command_l1_bg = s:colors.green 98 | let s:command_l2_fg = s:colors.fg1 99 | let s:command_l2_bg = s:colors.bg3 100 | let s:command_r1_fg = s:colors.bg0 101 | let s:command_r1_bg = s:colors.green 102 | let s:command_r2_fg = s:colors.fg1 103 | let s:command_r2_bg = s:colors.bg3 104 | let s:command_middle_fg = s:colors.fg1 105 | let s:command_middle_bg = s:colors.bg3 106 | 107 | let s:terminal_l1_fg = s:colors.bg0 108 | let s:terminal_l1_bg = s:colors.purple 109 | let s:terminal_l2_fg = s:colors.fg1 110 | let s:terminal_l2_bg = s:colors.bg3 111 | let s:terminal_r1_fg = s:colors.bg0 112 | let s:terminal_r1_bg = s:colors.purple 113 | let s:terminal_r2_fg = s:colors.fg1 114 | let s:terminal_r2_bg = s:colors.bg3 115 | let s:terminal_middle_fg = s:colors.fg1 116 | let s:terminal_middle_bg = s:colors.bg3 117 | 118 | let s:inactive_l1_fg = s:colors.grey2 119 | let s:inactive_l1_bg = s:colors.bg1 120 | let s:inactive_l2_fg = s:colors.grey2 121 | let s:inactive_l2_bg = s:colors.bg1 122 | let s:inactive_r1_fg = s:colors.grey2 123 | let s:inactive_r1_bg = s:colors.bg1 124 | let s:inactive_r2_fg = s:colors.grey2 125 | let s:inactive_r2_bg = s:colors.bg1 126 | let s:inactive_middle_fg = s:colors.grey2 127 | let s:inactive_middle_bg = s:colors.bg1 "}}} 128 | "}}} 129 | " Implementation: {{{ 130 | let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'command': {}, 'terminal': {}, 'tabline': {}} 131 | 132 | let s:p.normal.middle = [ [ s:normal_middle_fg, s:normal_middle_bg ] ] 133 | let s:p.normal.left = [ [ s:normal_l1_fg, s:normal_l1_bg, 'bold' ], [ s:normal_l2_fg, s:normal_l2_bg ] ] 134 | let s:p.normal.right = [ [ s:normal_r1_fg, s:normal_r1_bg, 'bold' ], [ s:normal_r2_fg, s:normal_r2_bg ] ] 135 | 136 | let s:p.insert.middle = [ [ s:insert_middle_fg, s:insert_middle_bg ] ] 137 | let s:p.insert.left = [ [ s:insert_l1_fg, s:insert_l1_bg, 'bold' ], [ s:insert_l2_fg, s:insert_l2_bg ] ] 138 | let s:p.insert.right = [ [ s:insert_r1_fg, s:insert_r1_bg, 'bold' ], [ s:insert_r2_fg, s:insert_r2_bg ] ] 139 | 140 | let s:p.visual.middle = [ [ s:visual_middle_fg, s:visual_middle_bg ] ] 141 | let s:p.visual.left = [ [ s:visual_l1_fg, s:visual_l1_bg, 'bold' ], [ s:visual_l2_fg, s:visual_l2_bg ] ] 142 | let s:p.visual.right = [ [ s:visual_r1_fg, s:visual_r1_bg, 'bold' ], [ s:visual_r2_fg, s:visual_r2_bg ] ] 143 | 144 | let s:p.replace.middle = [ [ s:replace_middle_fg, s:replace_middle_bg ] ] 145 | let s:p.replace.left = [ [ s:replace_l1_fg, s:replace_l1_bg, 'bold' ], [ s:replace_l2_fg, s:replace_l2_bg ] ] 146 | let s:p.replace.right = [ [ s:replace_r1_fg, s:replace_r1_bg, 'bold' ], [ s:replace_r2_fg, s:replace_r2_bg ] ] 147 | 148 | let s:p.command.middle = [ [ s:command_middle_fg, s:command_middle_bg ] ] 149 | let s:p.command.left = [ [ s:command_l1_fg, s:command_l1_bg, 'bold' ], [ s:command_l2_fg, s:command_l2_bg ] ] 150 | let s:p.command.right = [ [ s:command_r1_fg, s:command_r1_bg, 'bold' ], [ s:command_r2_fg, s:command_r2_bg ] ] 151 | 152 | let s:p.terminal.middle = [ [ s:terminal_middle_fg, s:terminal_middle_bg ] ] 153 | let s:p.terminal.left = [ [ s:terminal_l1_fg, s:terminal_l1_bg, 'bold' ], [ s:terminal_l2_fg, s:terminal_l2_bg ] ] 154 | let s:p.terminal.right = [ [ s:terminal_r1_fg, s:terminal_r1_bg, 'bold' ], [ s:terminal_r2_fg, s:terminal_r2_bg ] ] 155 | 156 | let s:p.inactive.left = [ [ s:inactive_l1_fg, s:inactive_l1_bg ], [ s:inactive_l2_fg, s:inactive_l2_bg ] ] 157 | let s:p.inactive.middle = [ [ s:inactive_middle_fg, s:inactive_middle_bg ] ] 158 | let s:p.inactive.right = [ [ s:inactive_r1_fg, s:inactive_r1_bg ], [ s:inactive_r2_fg, s:inactive_r2_bg ] ] 159 | 160 | let s:p.tabline.left = [ [ s:tab_l_fg, s:tab_l_bg] ] 161 | let s:p.tabline.right = [ [ s:tab_r_fg, s:tab_r_bg] ] 162 | let s:p.tabline.tabsel = [ [ s:tab_sel_fg, s:tab_sel_bg, 'bold' ] ] 163 | let s:p.tabline.middle = [ [ s:tab_middle_fg, s:tab_middle_bg] ] 164 | 165 | let s:p.normal.error = [ [ s:errorfg, s:errorbg ] ] 166 | let s:p.normal.warning = [ [ s:warningfg, s:warningbg ] ] 167 | 168 | let g:lightline#colorscheme#kimbox#palette = lightline#colorscheme#flatten(s:p) 169 | "}}} 170 | 171 | " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker fmr={{{,}}}: 172 | -------------------------------------------------------------------------------- /colors/kimbox.lua: -------------------------------------------------------------------------------- 1 | local luacache = (_G.__luacache or {}).cache 2 | 3 | for pack, _ in pairs(package.loaded) do 4 | if pack:match("^kimbox") then 5 | if not pack:match("config") then 6 | package.loaded[pack] = nil 7 | 8 | if luacache then 9 | luacache[pack] = nil 10 | end 11 | end 12 | end 13 | end 14 | 15 | require("kimbox").setup() 16 | require("kimbox").load() 17 | -------------------------------------------------------------------------------- /extras/.Xresources: -------------------------------------------------------------------------------- 1 | ! Kimbox .Xresources file 2 | 3 | *background: #221A02 4 | *foreground: #C2A383 5 | 6 | *color0: #201F1F 7 | *color8: #676767 8 | 9 | *color1: #DC3958 10 | *color9: #F14A68 11 | 12 | *color2: #819C3B 13 | *color10: #A3B95A 14 | 15 | *color3: #F79A32 16 | *color11: #F79A32 17 | 18 | *color4: #733E8B 19 | *color12: #DC3958 20 | 21 | *color5: #7E5053 22 | *color13: #FE8019 23 | 24 | *color6: #088649 25 | *color14: #4C96A8 26 | 27 | *color7: #A89983 28 | *color15: #51412C 29 | -------------------------------------------------------------------------------- /extras/kimbox.tmTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Kimbox 7 | author 8 | Lucas Burns 9 | semanticClass 10 | theme.dark.kimbox 11 | uuid 12 | 5E25A5A4-F72C-48D4-B4D1-0B271E4982AF 13 | colorSpaceName 14 | sRGB 15 | settings 16 | 17 | 18 | settings 19 | 20 | foreground 21 | #D9AE80 22 | background 23 | #7E602C 24 | caret 25 | #D9AE80 26 | invisibles 27 | #c3bac6 28 | gt 29 | #a57a4c 30 | selection 31 | #EF1D55 32 | selectionBorder 33 | #988ba2 34 | selectionForeground 35 | #D9AE80 36 | 37 | lineHighlight 38 | #39260E 39 | findHighlight 40 | #EF1D55 41 | findHighlightForeground 42 | #291804 43 | inactiveSelection 44 | #EF1D55 45 | gutter 46 | #222222 47 | 48 | gutterForeground 49 | #a89984 50 | gutterForegroundHighlight 51 | #a57a4c 52 | guide 53 | #2a2a2a 54 | 55 | activeGuide 56 | #a57a4c 57 | stackGuide 58 | #464c55 59 | tagsOptions 60 | underline 61 | tagsForeground 62 | #A06469 63 | bracketsForeground 64 | #988ba2 65 | bracketContentsForeground 66 | #988ba2 67 | 68 | 69 | 70 | name 71 | Delimiters 72 | scope 73 | none 74 | settings 75 | 76 | 77 | 78 | foreground 79 | #d3af86 80 | fontStyle 81 | 82 | 83 | 84 | 85 | name 86 | Operators 87 | scope 88 | keyword.operator 89 | settings 90 | 91 | 92 | foreground 93 | #FF5813 94 | fontStyle 95 | 96 | 97 | 98 | 99 | name 100 | Range operator 101 | scope 102 | keyword.operator.range 103 | settings 104 | 105 | 106 | foreground 107 | #819C3B 108 | fontStyle 109 | 110 | 111 | 112 | 113 | name 114 | Operator 115 | scope 116 | keyword.operator, punctuation.accessor 117 | settings 118 | 119 | 120 | foreground 121 | #FF5813 122 | fontStyle 123 | 124 | 125 | 126 | 127 | name 128 | Include 129 | scope 130 | keyword.control.import.include 131 | settings 132 | 133 | 134 | foreground 135 | #EF1D55 136 | fontStyle 137 | 138 | 139 | 140 | 141 | name 142 | Punctuation separator 143 | scope 144 | punctuation.separator 145 | settings 146 | 147 | 148 | foreground 149 | #D9AE80 150 | fontStyle 151 | 152 | 153 | 154 | 155 | name 156 | Punctuation terminator 157 | scope 158 | punctuation.terminator 159 | settings 160 | 161 | 162 | foreground 163 | #D9AE80 164 | fontStyle 165 | 166 | 167 | 168 | 169 | name 170 | Keywords 171 | scope 172 | keyword 173 | settings 174 | 175 | 176 | foreground 177 | #4C96A8 178 | 179 | 180 | 181 | name 182 | Keywords 183 | scope 184 | keyword.control 185 | settings 186 | 187 | 188 | foreground 189 | #98676A 190 | 191 | 192 | 193 | name 194 | Keyword class 195 | scope 196 | keyword.declaration.class 197 | settings 198 | 199 | 200 | foreground 201 | #EF1D55 202 | fontStyle 203 | bold 204 | 205 | 206 | 207 | name 208 | Function declaration 209 | scope 210 | keyword.declaration.function 211 | settings 212 | 213 | 214 | foreground 215 | #A06469 216 | fontStyle 217 | 218 | 219 | 220 | 221 | name 222 | Conditional/loop 223 | scope 224 | keyword.control.loop, keyword.control.conditional, keyword.control.c++ 225 | settings 226 | 227 | 228 | foreground 229 | #A06469 230 | fontStyle 231 | 232 | 233 | 234 | 235 | name 236 | Return 237 | scope 238 | keyword.control.return, keyword.control.flow.return 239 | settings 240 | 241 | foreground 242 | #EF1D55 243 | fontStyle 244 | 245 | 246 | 247 | 248 | name 249 | Exception 250 | scope 251 | support.type.exception 252 | settings 253 | 254 | foreground 255 | #988ba2 256 | fontStyle 257 | 258 | 259 | 260 | 261 | name 262 | Methods 263 | scope 264 | keyword.other.special-method 265 | settings 266 | 267 | 268 | foreground 269 | #8ab1b0 270 | fontStyle 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | name 290 | Comments 291 | scope 292 | comment 293 | settings 294 | 295 | foreground 296 | #7E602C 297 | background 298 | #000000 299 | 300 | 301 | 302 | name 303 | Link Text 304 | scope 305 | string.other.link 306 | settings 307 | 308 | foreground 309 | #dc3958 310 | fontStyle 311 | 312 | 313 | 314 | 315 | name 316 | Link Url 317 | scope 318 | meta.link 319 | settings 320 | 321 | foreground 322 | #f79a32 323 | fontStyle 324 | 325 | 326 | 327 | 328 | name 329 | Selector 330 | scope 331 | meta.selector 332 | settings 333 | 334 | foreground 335 | #4c96a8 336 | fontStyle 337 | 338 | 339 | 340 | 341 | name 342 | Separator 343 | scope 344 | meta.separator 345 | settings 346 | 347 | background 348 | #84613d 349 | foreground 350 | #d3af86 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | name 369 | Macro name 370 | scope 371 | support.macro 372 | settings 373 | 374 | 375 | foreground 376 | #7EB2B1 377 | fontStyle 378 | 379 | 380 | 381 | 382 | name 383 | Function name 384 | scope 385 | entity.name.function 386 | settings 387 | 388 | 389 | foreground 390 | #A06469 391 | fontStyle 392 | bold 393 | 394 | 395 | 396 | name 397 | Methods 398 | scope 399 | variable.function 400 | settings 401 | 402 | 403 | foreground 404 | #A06469 405 | fontStyle 406 | bold 407 | 408 | 409 | 410 | name 411 | Constructor 412 | scope 413 | entity.name.function.constructor, entity.name.function.destructor 414 | settings 415 | 416 | foreground 417 | #4c96a8 418 | fontStyle 419 | bold 420 | 421 | 422 | 423 | name 424 | Function macro 425 | scope 426 | entity.name.function.preprocessor 427 | settings 428 | 429 | 430 | foreground 431 | #7EB2B1 432 | fontStyle 433 | bold 434 | 435 | 436 | 437 | name 438 | Macro directive - ifdef 439 | scope 440 | keyword.control.import 441 | settings 442 | 443 | 444 | foreground 445 | #EF1D55 446 | fontStyle 447 | 448 | 449 | 450 | 451 | name 452 | Storage type namespace 453 | scope 454 | entity.name.namespace, meta.path 455 | settings 456 | 457 | 458 | foreground 459 | #FF5813 460 | fontStyle 461 | 462 | 463 | 464 | 465 | name 466 | Classes 467 | scope 468 | meta.class, entity.name.type.class 469 | settings 470 | 471 | 472 | foreground 473 | #f06431 474 | fontStyle 475 | 476 | 477 | 478 | 479 | name 480 | Library class/type 481 | scope 482 | support.type, support.class 483 | settings 484 | 485 | 486 | foreground 487 | #819C3B 488 | fontStyle 489 | bold 490 | 491 | 492 | 493 | name 494 | Library variable 495 | scope 496 | support.other.variable 497 | settings 498 | 499 | fontStyle 500 | 501 | 502 | 503 | 504 | name 505 | Library constant 506 | scope 507 | support.constant 508 | settings 509 | 510 | 511 | foreground 512 | #4c96a8 513 | fontStyle 514 | 515 | 516 | 517 | 518 | name 519 | Library function 520 | scope 521 | support.function 522 | settings 523 | 524 | 525 | foreground 526 | #8ab1b0 527 | fontStyle 528 | 529 | 530 | 531 | 532 | name 533 | Class name 534 | scope 535 | entity.name.class, meta.toc-list.full-identifier 536 | settings 537 | 538 | 539 | foreground 540 | #819C3B 541 | fontStyle 542 | bold 543 | 544 | 545 | 546 | name 547 | Built-in function 548 | scope 549 | support.function.builtin 550 | settings 551 | 552 | foreground 553 | #A06469 554 | fontStyle 555 | bold 556 | 557 | 558 | 559 | name 560 | Constant variable names 561 | scope 562 | constant 563 | settings 564 | 565 | foreground 566 | #4c96a8 567 | fontStyle 568 | 569 | 570 | 571 | 572 | name 573 | Builtin constant 574 | scope 575 | constant.language 576 | settings 577 | 578 | 579 | foreground 580 | #FF5813 581 | fontStyle 582 | 583 | 584 | 585 | 586 | name 587 | Self, super 588 | scope 589 | variable.language 590 | settings 591 | 592 | foreground 593 | #4c96a8 594 | 595 | 596 | 597 | name 598 | Derive parameters 599 | scope 600 | meta.annotation.parameters 601 | settings 602 | 603 | foreground 604 | #819c3b 605 | fontStyle 606 | bold 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | name 622 | Derive hashtag 623 | scope 624 | punctuation.definition.annotation 625 | settings 626 | 627 | foreground 628 | #A06469 629 | fontStyle 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | name 646 | Boolean 647 | scope 648 | constant.language.boolean 649 | settings 650 | 651 | foreground 652 | #f06431 653 | fontStyle 654 | 655 | 656 | 657 | 658 | name 659 | Floats 660 | scope 661 | none 662 | settings 663 | 664 | foreground 665 | #7e5053 666 | fontStyle 667 | 668 | 669 | 670 | 671 | name 672 | Integers 673 | scope 674 | constant.numeric 675 | settings 676 | 677 | foreground 678 | #7E5053 679 | fontStyle 680 | 681 | 682 | 683 | 684 | name 685 | Entities 686 | scope 687 | entity 688 | settings 689 | 690 | foreground 691 | #98676A 692 | fontStyle 693 | bold 694 | 695 | 696 | 697 | 698 | name 699 | Tag attribute 700 | scope 701 | entity.other.attribute-name 702 | settings 703 | 704 | foreground 705 | #733e8b 706 | fontStyle 707 | 708 | 709 | 710 | 711 | name 712 | Function argument 713 | scope 714 | variable.parameter.function 715 | settings 716 | 717 | 718 | foreground 719 | #d3af86 720 | fontStyle 721 | 722 | 723 | 724 | 725 | name 726 | Comments 727 | scope 728 | comment, punctuation.definition.comment 729 | settings 730 | 731 | 732 | foreground 733 | #a57a4c 734 | fontStyle 735 | 736 | 737 | 738 | 739 | name 740 | Comments 741 | scope 742 | punctuation.definition.generic 743 | settings 744 | 745 | 746 | foreground 747 | #FF5813 748 | fontStyle 749 | 750 | 751 | 752 | 753 | name 754 | Tag delimiter 755 | scope 756 | punctuation.definition.tag 757 | settings 758 | 759 | 760 | foreground 761 | #FF5D62 762 | fontStyle 763 | 764 | 765 | 766 | 767 | name 768 | Punctuation 769 | scope 770 | punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array 771 | settings 772 | 773 | 774 | foreground 775 | #d3af86 776 | fontStyle 777 | 778 | 779 | 780 | 781 | name 782 | Attribute IDs 783 | scope 784 | entity.other.attribute-name.id, punctuation.definition.entity 785 | settings 786 | 787 | foreground 788 | #8ab1b0 789 | fontStyle 790 | 791 | 792 | 793 | 794 | name 795 | Storage 796 | scope 797 | storage 798 | settings 799 | 800 | 801 | foreground 802 | #EF1D55 803 | fontStyle 804 | 805 | 806 | 807 | 808 | name 809 | Storage type 810 | scope 811 | storage.type 812 | settings 813 | 814 | 815 | foreground 816 | #EF1D55 817 | fontStyle 818 | 819 | 820 | 821 | 822 | name 823 | Storage module 824 | scope 825 | storage.type.modules 826 | settings 827 | 828 | 829 | foreground 830 | #EF1D55 831 | fontStyle 832 | 833 | 834 | 835 | 836 | name 837 | Storage type class 838 | scope 839 | storage.type.class 840 | settings 841 | 842 | 843 | foreground 844 | #EF1D55 845 | fontStyle 846 | bold 847 | 848 | 849 | 850 | name 851 | Storage modifier 852 | scope 853 | storage.modifier 854 | settings 855 | 856 | 857 | foreground 858 | #EF1D55 859 | fontStyle 860 | 861 | 862 | 863 | 864 | name 865 | Storage modifier lifetime 866 | scope 867 | storage.modifier.lifetime 868 | settings 869 | 870 | 871 | foreground 872 | #819C3B 873 | fontStyle 874 | 875 | 876 | 877 | 878 | name 879 | String 880 | scope 881 | string 882 | settings 883 | 884 | foreground 885 | #FF9500 886 | fontStyle 887 | 888 | 889 | 890 | 891 | name 892 | String regexp 893 | scope 894 | string.regexp 895 | settings 896 | 897 | foreground 898 | #088649 899 | fontStyle 900 | bold 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | name 921 | Number 922 | scope 923 | constant.numeric 924 | settings 925 | 926 | foreground 927 | #98676A 928 | fontStyle 929 | 930 | 931 | 932 | 933 | name 934 | Support 935 | scope 936 | support 937 | settings 938 | 939 | 940 | 941 | foreground 942 | #889b4a 943 | fontStyle 944 | bold 945 | 946 | 947 | 948 | name 949 | Variables to funcs 950 | scope 951 | variable.parameter 952 | settings 953 | 954 | 955 | foreground 956 | #FF5813 957 | fontStyle 958 | 959 | 960 | 961 | 962 | name 963 | Variable other 964 | scope 965 | variable.other 966 | settings 967 | 968 | 969 | foreground 970 | #D9AE80 971 | fontStyle 972 | 973 | 974 | 975 | 976 | name 977 | Variables field 978 | scope 979 | variable.other.member 980 | settings 981 | 982 | 983 | foreground 984 | #D9ae80 985 | fontStyle 986 | 987 | 988 | 989 | 990 | name 991 | Enum names 992 | scope 993 | entity.name.enum 994 | settings 995 | 996 | 997 | 998 | foreground 999 | #819C3B 1000 | fontStyle 1001 | bold 1002 | 1003 | 1004 | 1005 | name 1006 | Struct names 1007 | scope 1008 | entity.name.struct 1009 | settings 1010 | 1011 | 1012 | 1013 | foreground 1014 | #819C3B 1015 | fontStyle 1016 | bold 1017 | 1018 | 1019 | 1020 | name 1021 | Impl names 1022 | scope 1023 | entity.name.impl 1024 | settings 1025 | 1026 | 1027 | 1028 | foreground 1029 | #819C3B 1030 | fontStyle 1031 | bold 1032 | 1033 | 1034 | 1035 | name 1036 | User-defined constant 1037 | scope 1038 | variable.other.constant 1039 | settings 1040 | 1041 | foreground 1042 | #819C3B 1043 | fontStyle 1044 | bold 1045 | 1046 | 1047 | 1048 | name 1049 | Variable language 1050 | scope 1051 | variable.language 1052 | settings 1053 | 1054 | 1055 | foreground 1056 | #D9AE80 1057 | fontStyle 1058 | 1059 | 1060 | 1061 | 1062 | name 1063 | Derive macro 1064 | scope 1065 | variable.annotation 1066 | settings 1067 | 1068 | 1069 | foreground 1070 | #8ab1b0 1071 | fontStyle 1072 | 1073 | 1074 | 1075 | 1076 | name 1077 | Function parameter args 1078 | scope 1079 | meta.function.parameters, meta.function.return-type 1080 | settings 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | foreground 1087 | #819C3B 1088 | fontStyle 1089 | bold 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | name 1108 | Module path 1109 | scope 1110 | meta.path 1111 | settings 1112 | 1113 | 1114 | foreground 1115 | #FF5813 1116 | fontStyle 1117 | 1118 | 1119 | 1120 | 1121 | name 1122 | Units 1123 | scope 1124 | keyword.other.unit 1125 | settings 1126 | 1127 | 1128 | foreground 1129 | #f79a32 1130 | fontStyle 1131 | 1132 | 1133 | 1134 | 1135 | name 1136 | Strings 1137 | scope 1138 | string, constant.other.symbol 1139 | settings 1140 | 1141 | foreground 1142 | #f79a32 1143 | fontStyle 1144 | 1145 | 1146 | 1147 | 1148 | name 1149 | String placeholder 1150 | scope 1151 | constant.other.placeholder 1152 | settings 1153 | 1154 | foreground 1155 | #819C3B 1156 | fontStyle 1157 | 1158 | 1159 | 1160 | 1161 | name 1162 | Inherited class 1163 | scope 1164 | entity.other.inherited-class 1165 | settings 1166 | 1167 | 1168 | foreground 1169 | #ea6962 1170 | fontStyle 1171 | bold 1172 | 1173 | 1174 | 1175 | name 1176 | Colors 1177 | scope 1178 | constant.other.color 1179 | settings 1180 | 1181 | foreground 1182 | #7e602c 1183 | fontStyle 1184 | 1185 | 1186 | 1187 | 1188 | name 1189 | Escape Characters 1190 | scope 1191 | constant.character.escape 1192 | settings 1193 | 1194 | foreground 1195 | #819C3B 1196 | fontStyle 1197 | 1198 | 1199 | 1200 | 1201 | name 1202 | Path separation 1203 | scope 1204 | punctuation.accessor 1205 | settings 1206 | 1207 | foreground 1208 | #D9AE80 1209 | fontStyle 1210 | 1211 | 1212 | 1213 | 1214 | name 1215 | Punctuation bracket 1216 | scope 1217 | punctuation.section 1218 | settings 1219 | 1220 | 1221 | foreground 1222 | #98676A 1223 | fontStyle 1224 | 1225 | 1226 | 1227 | 1228 | name 1229 | Embedded 1230 | scope 1231 | punctuation.section.embedded, variable.interpolation 1232 | settings 1233 | 1234 | foreground 1235 | #088649 1236 | fontStyle 1237 | 1238 | 1239 | 1240 | 1241 | name 1242 | Tag names toml yaml xml (header) 1243 | scope 1244 | entity.name 1245 | settings 1246 | 1247 | foreground 1248 | #A06469 1249 | fontStyle 1250 | bold 1251 | 1252 | 1253 | 1254 | name 1255 | Label 1256 | scope 1257 | entity.name.label 1258 | settings 1259 | 1260 | 1261 | foreground 1262 | #819C3B 1263 | fontStyle 1264 | 1265 | 1266 | 1267 | 1268 | name 1269 | Tag names 1270 | scope 1271 | entity.name.tag 1272 | settings 1273 | 1274 | foreground 1275 | #FF5813 1276 | fontStyle 1277 | 1278 | 1279 | 1280 | 1284 | 1285 | name 1286 | Rust lifetimes 1287 | scope 1288 | storage.modifier.lifetime.rust 1289 | settings 1290 | 1291 | foreground 1292 | #dc3958 1293 | 1294 | 1295 | 1296 | name 1297 | Rust functions 1298 | scope 1299 | entity.name.function.rust 1300 | settings 1301 | 1302 | foreground 1303 | #A06469 1304 | fontStyle 1305 | bold 1306 | 1307 | 1308 | 1309 | name 1310 | Rust pub mut / enum struct 1311 | scope 1312 | storage.modifier.rust, storage.type.rust, storage.type.trait.rust, storage.type.impl.rust, storage.type.function.rust, storage.type.type.rust, storage.type.enum.rust 1313 | settings 1314 | 1315 | foreground 1316 | #EF1D55 1317 | 1318 | 1319 | 1320 | name 1321 | Rust crate, extern, use, where /as in box 1322 | scope 1323 | keyword.other.rust, keyword.operator.rust 1324 | settings 1325 | 1326 | foreground 1327 | #EF1D55 1328 | 1329 | 1330 | 1331 | name 1332 | Rust boolean 1333 | scope 1334 | constant.language.rust 1335 | settings 1336 | 1337 | foreground 1338 | #FF5813 1339 | 1340 | 1341 | 1342 | name 1343 | Rust control chars 1344 | scope 1345 | keyword.control.rust, constant.numeric.float.rust, storage.type.numeric.rust, constant.numeric.integer.decimal.rust 1346 | settings 1347 | 1348 | foreground 1349 | #98676a 1350 | 1351 | 1352 | 1353 | name 1354 | Rust function calls 1355 | scope 1356 | support.function.rust 1357 | settings 1358 | 1359 | foreground 1360 | #A06469 1361 | fontStyle 1362 | bold 1363 | 1364 | 1365 | 1366 | name 1367 | Rust macro name 1368 | scope 1369 | entity.name.macro.rust 1370 | settings 1371 | 1372 | foreground 1373 | #7EB2B1 1374 | 1375 | 1376 | 1377 | name 1378 | Rust builtin macro 1379 | scope 1380 | support.macro.rust 1381 | settings 1382 | 1383 | foreground 1384 | #7EB2B1 1385 | 1386 | 1387 | 1388 | name 1389 | Rust brackets / ; / -> / , 1390 | scope 1391 | punctuation.section.group.begin.rust, punctuation.section.group.end.rust, punctuation.terminator.rust, punctuation.separator.rust, punctuation.separator.generic.rust 1392 | settings 1393 | 1394 | foreground 1395 | #7E5053 1396 | 1397 | 1398 | 1399 | 1400 | name 1401 | Rust angle brackets / :: 1402 | scope 1403 | punctuation.definition.generic.begin.rust, punctuation.definition.generic.end.rust, punctuation.accessor.double-colon.rust 1404 | settings 1405 | 1406 | foreground 1407 | #FF5813 1408 | 1409 | 1410 | 1411 | name 1412 | Rust path start 1413 | scope 1414 | punctuation.definition.modifier-scope.begin.rust, punctuation.definition.modifier-scope.end.rust 1415 | settings 1416 | 1417 | foreground 1418 | #FFFFFF 1419 | 1420 | 1421 | 1422 | name 1423 | Rust . 1424 | scope 1425 | punctuation.accessor.dot.rust 1426 | settings 1427 | 1428 | foreground 1429 | #D9AE80 1430 | 1431 | 1432 | 1433 | name 1434 | Rust operators 1435 | scope 1436 | keyword.operator.assignment.rust, keyword.operator.comparison.rust, keyword.operator.range.rust, keyword.operator.logical.rust, keyword.operator.arithmetic.rust, keyword.operator.bitwise.rust, keyword.operator.rust 1437 | settings 1438 | 1439 | foreground 1440 | #f06431 1441 | 1442 | 1443 | 1444 | name 1445 | Rust # in #[derive()] 1446 | scope 1447 | punctuation.definition.annotation.rust 1448 | settings 1449 | 1450 | foreground 1451 | #7E5053 1452 | 1453 | 1454 | 1455 | name 1456 | Rust [derive()] / $a:expr 1457 | scope 1458 | variable.annotation.rust, variable.function.rust, variable.parameter.macro.rust 1459 | settings 1460 | 1461 | foreground 1462 | #7EB2B1 1463 | 1464 | 1465 | 1466 | name 1467 | Rust builtin type 1468 | scope 1469 | support.type.rust, meta.generic.rust 1470 | settings 1471 | 1472 | foreground 1473 | #819C3B 1474 | fontStyle 1475 | bold 1476 | 1477 | 1478 | 1479 | name 1480 | Rust struct / trait / impl / S as SSS 1481 | scope 1482 | 1483 | entity.name.trait.rust, entity.name.struct.rust, entity.name.impl.rust, meta.function.return-type.rust 1484 | settings 1485 | 1486 | foreground 1487 | #819C3B 1488 | fontStyle 1489 | bold 1490 | 1491 | 1492 | 1493 | name 1494 | Rust path start 1495 | scope 1496 | meta.path.rust 1497 | settings 1498 | 1499 | foreground 1500 | #FF5813 1501 | 1502 | 1503 | 1504 | name 1505 | Rust parameters 1506 | scope 1507 | variable.parameter.rust 1508 | settings 1509 | 1510 | foreground 1511 | #EA6962 1512 | 1513 | 1514 | 1515 | name 1516 | Rust escaped char 1517 | scope 1518 | constant.character.escape.rust 1519 | settings 1520 | 1521 | foreground 1522 | #088649 1523 | 1524 | 1525 | 1526 | name 1527 | Rust string 1528 | scope 1529 | string.quoted.single.rust, string.quoted.double.rust 1530 | settings 1531 | 1532 | foreground 1533 | #FF9500 1534 | 1535 | 1536 | 1537 | name 1538 | Rust constant 1539 | scope 1540 | constant.other.rust, meta.enum.rust 1541 | settings 1542 | 1543 | foreground 1544 | #77A172 1545 | fontStyle 1546 | bold 1547 | 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | name 1559 | Markdown Bold 1560 | scope 1561 | markup.bold 1562 | settings 1563 | 1564 | foreground 1565 | #A25BC4 1566 | fontStyle 1567 | bold 1568 | 1569 | 1570 | 1571 | name 1572 | Markdown Raw 1573 | scope 1574 | markup.raw 1575 | settings 1576 | 1577 | foreground 1578 | #EF1D55 1579 | fontStyle 1580 | 1581 | 1582 | 1583 | 1584 | name 1585 | Markdown Lists 1586 | scope 1587 | markup.list 1588 | settings 1589 | 1590 | foreground 1591 | #FF9500 1592 | fontStyle 1593 | 1594 | 1595 | 1596 | 1597 | name 1598 | Code 1599 | scope 1600 | markup.raw.inline 1601 | settings 1602 | 1603 | foreground 1604 | #889b4a 1605 | fontStyle 1606 | 1607 | 1608 | 1609 | 1610 | name 1611 | Markdown URL 1612 | scope 1613 | markup.underline.link.markdown 1614 | settings 1615 | 1616 | foreground 1617 | #D9AE80 1618 | fontStyle 1619 | underline 1620 | 1621 | 1622 | 1623 | name 1624 | Markdown reference 1625 | scope 1626 | meta.link.inline.description 1627 | settings 1628 | 1629 | foreground 1630 | #8ab1b0 1631 | fontStyle 1632 | bold 1633 | 1634 | 1635 | 1636 | name 1637 | Markdown literal 1638 | scope 1639 | comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline 1640 | settings 1641 | 1642 | foreground 1643 | #8ab1b0 1644 | fontStyle 1645 | 1646 | 1647 | 1648 | 1649 | name 1650 | Inserted 1651 | scope 1652 | markup.inserted 1653 | settings 1654 | 1655 | foreground 1656 | #98676A 1657 | fontStyle 1658 | 1659 | 1660 | 1661 | 1662 | name 1663 | Deleted 1664 | scope 1665 | markup.deleted 1666 | settings 1667 | 1668 | foreground 1669 | #EF1D55 1670 | fontStyle 1671 | 1672 | 1673 | 1674 | 1675 | name 1676 | Changed 1677 | scope 1678 | markup.changed 1679 | settings 1680 | 1681 | foreground 1682 | #f06431 1683 | fontStyle 1684 | 1685 | 1686 | 1687 | 1688 | name 1689 | Ignored 1690 | scope 1691 | markup.ignored 1692 | settings 1693 | 1694 | foreground 1695 | #222222 1696 | fontStyle 1697 | 1698 | 1699 | 1700 | 1701 | name 1702 | Markdown Quotes 1703 | scope 1704 | markup.quote.markdown 1705 | settings 1706 | 1707 | foreground 1708 | #FF9500 1709 | fontStyle 1710 | 1711 | 1712 | 1713 | 1714 | name 1715 | Markdown Headings 1716 | scope 1717 | markup.heading 1718 | settings 1719 | 1720 | foreground 1721 | #889b4a 1722 | fontStyle 1723 | 1724 | 1725 | 1726 | 1727 | name 1728 | Markdown title 1729 | scope 1730 | punctuation.definition.heading, entity.name.section 1731 | settings 1732 | 1733 | foreground 1734 | #EF1D55 1735 | fontStyle 1736 | bold 1737 | 1738 | 1739 | 1740 | name 1741 | Markdown Italics 1742 | scope 1743 | markup.italic 1744 | settings 1745 | 1746 | foreground 1747 | #8ab1b0 1748 | fontStyle 1749 | italic 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | 1756 | name 1757 | CSS Pseudo Selectors 1758 | scope 1759 | entity.other.attribute-name.pseudo-element 1760 | settings 1761 | 1762 | foreground 1763 | #FF9500 1764 | fontStyle 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | 1775 | 1776 | 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | 1783 | 1784 | 1785 | 1786 | 1787 | 1788 | 1789 | 1790 | 1791 | 1792 | 1793 | 1794 | 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | 1805 | 1806 | 1807 | 1808 | 1809 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 1817 | 1818 | 1819 | 1820 | 1821 | 1822 | 1823 | 1824 | name 1825 | Java constant 1826 | scope 1827 | entity.name.constant.java 1828 | settings 1829 | 1830 | foreground 1831 | #819C3B 1832 | fontStyle 1833 | bold 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | name 1841 | Lua (nested) field 1842 | scope 1843 | source.lua, meta.function.lua, meta.block.lua, meta.mapping.value.lua, meta.mapping.key.lua, string.unquoted.key.lua 1844 | settings 1845 | 1846 | foreground 1847 | #7EB2B1 1848 | fontStyle 1849 | 1850 | 1851 | 1852 | 1853 | name 1854 | Lua constructor (field) 1855 | scope 1856 | source.lua, meta.function.lua, meta.block.lua, meta.mapping.key.lua, string.unquoted.key.lua 1857 | settings 1858 | 1859 | foreground 1860 | #7EB2B1 1861 | fontStyle 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | name 1880 | Lua constructor (field) 1881 | scope 1882 | punctuation.section.block.begin.lua, punctuation.section.block.end.lua 1883 | settings 1884 | 1885 | foreground 1886 | #819C3B 1887 | fontStyle 1888 | bold 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | name 1896 | Bash built-in function 1897 | scope 1898 | source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell 1899 | settings 1900 | 1901 | foreground 1902 | #A06469 1903 | fontStyle 1904 | 1905 | 1906 | 1907 | 1908 | name 1909 | Bash parameter 1910 | scope 1911 | variable.language.shell 1912 | settings 1913 | 1914 | foreground 1915 | #f28fad 1916 | fontStyle 1917 | italic 1918 | 1919 | 1920 | 1921 | 1922 | 1923 | 1924 | name 1925 | Invalid 1926 | scope 1927 | invalid 1928 | settings 1929 | 1930 | fontStyle 1931 | bold 1932 | background 1933 | #dc3958 1934 | foreground 1935 | #221a0f 1936 | 1937 | 1938 | 1939 | name 1940 | Invalid deprecated 1941 | scope 1942 | invalid.deprecated 1943 | settings 1944 | 1945 | foreground 1946 | #221a0f 1947 | background 1948 | #FF9500 1949 | fontStyle 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | name 1958 | Diff header 1959 | scope 1960 | meta.diff, meta.diff.header 1961 | settings 1962 | 1963 | foreground 1964 | #a89984 1965 | fontStyle 1966 | 1967 | 1968 | 1969 | 1970 | name 1971 | Diff deleted 1972 | scope 1973 | markup.deleted 1974 | settings 1975 | 1976 | foreground 1977 | #EF1D55 1978 | fontStyle 1979 | 1980 | 1981 | 1982 | 1983 | name 1984 | Diff inserted 1985 | scope 1986 | markup.inserted 1987 | settings 1988 | 1989 | foreground 1990 | #819C3B 1991 | fontStyle 1992 | 1993 | 1994 | 1995 | 1996 | name 1997 | Diff changed 1998 | scope 1999 | markup.changed 2000 | settings 2001 | 2002 | foreground 2003 | #FF9500 2004 | fontStyle 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | name 2013 | GitGutter deleted 2014 | scope 2015 | markup.deleted.git_gutter 2016 | settings 2017 | 2018 | foreground 2019 | #F92672 2020 | fontStyle 2021 | 2022 | 2023 | 2024 | 2025 | name 2026 | GitGutter inserted 2027 | scope 2028 | markup.inserted.git_gutter 2029 | settings 2030 | 2031 | foreground 2032 | #A6E22E 2033 | fontStyle 2034 | 2035 | 2036 | 2037 | 2038 | name 2039 | GitGutter changed 2040 | scope 2041 | markup.changed.git_gutter 2042 | settings 2043 | 2044 | foreground 2045 | #967EFB 2046 | 2047 | 2048 | 2049 | name 2050 | GitGutter ignored 2051 | scope 2052 | markup.ignored.git_gutter 2053 | settings 2054 | 2055 | foreground 2056 | #565656 2057 | fontStyle 2058 | 2059 | 2060 | 2061 | 2062 | name 2063 | GitGutter untracked 2064 | scope 2065 | markup.untracked.git_gutter 2066 | settings 2067 | 2068 | foreground 2069 | #565656 2070 | fontStyle 2071 | 2072 | 2073 | 2074 | 2075 | 2076 | 2077 | -------------------------------------------------------------------------------- /extras/kimbox.toml: -------------------------------------------------------------------------------- 1 | # Style: Kimbox 2 | 3 | [colors] 4 | foreground = "#C2A383" 5 | background = "#221A02" 6 | cursor_fg = "#221A02" 7 | cursor_bg = "#F79A32" 8 | cursor_border = "#F79A32" 9 | selection_fg = "#221A02" 10 | selection_bg = "#889B4A" 11 | 12 | scrollbar_thumb = "#9E7682" 13 | split = "#4C96A8" 14 | 15 | ansi = [ 16 | "#201F1F", 17 | "#DC3958", 18 | "#819C3B", 19 | "#F79A32", 20 | "#733E8B", 21 | "#7E5053", 22 | "#088649", 23 | "#A89983", 24 | ] 25 | brights = [ 26 | "#676767", 27 | "#F14A68", 28 | "#A3B95A", 29 | "#F79A32", 30 | "#DC3958", 31 | "#FE8019", 32 | "#4C96A8", 33 | "#51412C", 34 | ] 35 | 36 | compose_cursor = "#DC3958" 37 | copy_mode_active_highlight_bg = { Color = "#FF5D62" } 38 | copy_mode_active_highlight_fg = { Color = "#221A02" } 39 | quick_select_label_bg = { Color = "#221A02" } 40 | quick_select_label_fg = { Color = "#A25BC4" } 41 | 42 | # If you want extra 43 | [colors.indexed] 44 | 16 = "#FFA066" 45 | 17 = "#FF5D62" 46 | 18 = "#89B482" 47 | 19 = "#D3869B" 48 | 20 = "#719190" 49 | 21 = "#957FB8" 50 | 22 = "#938AA9" 51 | 23 = "#EA6962" 52 | 24 = "#E46876" 53 | 25 = "#418292" 54 | 26 = "#2AB074" 55 | 27 = "#CC6666" 56 | 28 = "#77A172" 57 | 29 = "#83A598" 58 | 30 = "#7E9CD8" 59 | 31 = "#BD798B" 60 | 32 = "#E78A4E" 61 | 33 = "#7E602C" 62 | 34 = "#A89984" 63 | 35 = "#625A5A" 64 | 36 = "#39260E" 65 | 37 = "#362712" 66 | 38 = "#291804" 67 | 39 = "#5E452B" 68 | 40 = "#E8C097" 69 | 41 = "#665C54" 70 | 42 = "#D9AE80" 71 | 43 = "#7DAEA3" 72 | 44 = "#F79A32" 73 | 45 = "#F06431" 74 | 46 = "#C2A383" 75 | 47 = "#A25BC4" 76 | 48 = "#FF5813" 77 | 49 = "#A83232" 78 | 50 = "#989719" 79 | 51 = "#98676A" 80 | 52 = "#A06469" 81 | 53 = "#A3B95A" 82 | 54 = "#A0936A" 83 | 55 = "#221A02" 84 | 56 = "#689D6A" 85 | 57 = "#88C0D0" 86 | 58 = "#4F3552" 87 | 59 = "#945EB8" 88 | 60 = "#BB80B3" 89 | 61 = "#AF85A0" 90 | 62 = "#D484FF" 91 | 63 = "#7E82CC" 92 | 64 = "#B279A7" 93 | 65 = "#8E77B3" 94 | 66 = "#A43A57" 95 | 67 = "#EC5F91" 96 | 68 = "#FF747C" 97 | 69 = "#586081" 98 | 70 = "#9A5534" 99 | 71 = "#79491d" 100 | 72 = "#621A3C" 101 | 73 = "#311D55" 102 | 74 = "#471337" 103 | 75 = "#445321" 104 | 76 = "#961134" 105 | 77 = "#543739" 106 | 78 = "#325C59" 107 | 79 = "#7EB2B1" 108 | 80 = "#EF1D55" 109 | 81 = "#FF9500" 110 | 82 = "#819C3B" 111 | 83 = "#088649" 112 | 84 = "#733E8B" 113 | 85 = "#A76C8C" 114 | 86 = "#F14A68" 115 | 87 = "#DC3958" 116 | 88 = "#FE8019" 117 | 89 = "#A4B494" 118 | 90 = "#95570f" 119 | 91 = "#9E7682" 120 | 92 = "#B76C77" 121 | 122 | [colors.tab_bar] 123 | background = "#221a02" 124 | 125 | [colors.tab_bar.active_tab] 126 | bg_color = "#362712" 127 | fg_color = "#E8C097" 128 | intensity = "Bold" 129 | underline = "None" 130 | italic = false 131 | strikethrough = false 132 | 133 | [colors.tab_bar.inactive_tab] 134 | bg_color = "#291804" 135 | fg_color = "#665C54" 136 | 137 | [colors.tab_bar.inactive_tab_hover] 138 | bg_color = "#291804" 139 | fg_color = "#B76C77" 140 | italic = false 141 | 142 | [colors.tab_bar.new_tab_hover] 143 | bg_color = "#291804" 144 | fg_color = "#938AA9" # #9E7682 145 | italic = false 146 | 147 | [colors.tab_bar.new_tab] 148 | bg_color = "#291804" 149 | fg_color = "#89B482" 150 | -------------------------------------------------------------------------------- /extras/wezterm.lua: -------------------------------------------------------------------------------- 1 | ---Wezterm colors for the Kimbox theme 2 | -- @module kimbox.wezterm 3 | -- @author Lucas Burns 4 | -- @license MIT 5 | 6 | -- These colors are not setup to where the 'blue' color is actually blue 7 | -- Instead they are setup in a way to make the visual appearance the best 8 | 9 | return { 10 | force_reverse_video_cursor = true, 11 | colors = { 12 | foreground = "#c2a383", 13 | background = "#221a02", 14 | 15 | cursor_fg = "#221a02", 16 | cursor_bg = "#f79a32", 17 | cursor_border = "#f79a32", 18 | 19 | selection_fg = "#221a02", 20 | selection_bg = "#889b4a", 21 | 22 | scrollbar_thumb = "#9E7682", 23 | split = "#4c96a8", 24 | 25 | ansi = { 26 | "#201f1f", 27 | "#dc3958", 28 | "#819c3b", 29 | "#f79a32", 30 | "#733e8b", 31 | "#7e5053", 32 | "#088649", 33 | "#a89983", 34 | }, 35 | brights = { 36 | "#676767", 37 | "#f14a68", 38 | "#a3b95a", 39 | "#f79a32", 40 | "#dc3958", 41 | "#fe8019", 42 | "#4c96a8", 43 | "#51412c", 44 | }, 45 | compose_cursor = "#DC3958", 46 | copy_mode_active_highlight_bg = {Color = "#FF5D62"}, 47 | copy_mode_active_highlight_fg = {Color = "#221A02"}, 48 | quick_select_label_bg = {Color = "#221A02"}, 49 | quick_select_label_fg = {Color = "#A25BC4"}, 50 | 51 | indexed = { 52 | [16] = "#FFA066", 53 | [17] = "#FF5D62", 54 | [18] = "#89B482", 55 | [19] = "#D3869B", 56 | [20] = "#719190", 57 | [21] = "#957FB8", 58 | [22] = "#938AA9", 59 | [23] = "#EA6962", 60 | [24] = "#E46876", 61 | [25] = "#418292", 62 | [26] = "#2AB074", 63 | [27] = "#CC6666", 64 | [28] = "#77A172", 65 | [29] = "#83A598", 66 | [30] = "#7E9CD8", 67 | [31] = "#BD798B", 68 | [32] = "#E78A4E", 69 | [33] = "#7E602C", 70 | [34] = "#A89984", 71 | [35] = "#625A5A", 72 | [36] = "#39260E", 73 | [37] = "#362712", 74 | [38] = "#291804", 75 | [39] = "#5E452B", 76 | [40] = "#E8C097", 77 | [41] = "#665C54", 78 | [42] = "#D9AE80", 79 | [43] = "#7DAEA3", 80 | [44] = "#F79A32", 81 | [45] = "#F06431", 82 | [46] = "#C2A383", 83 | [47] = "#A25BC4", 84 | [48] = "#FF5813", 85 | [49] = "#A83232", 86 | [50] = "#989719", 87 | [51] = "#98676A", 88 | [52] = "#A06469", 89 | [53] = "#A3B95A", 90 | [54] = "#A0936A", 91 | [55] = "#221A02", 92 | [56] = "#689D6A", 93 | [57] = "#88C0D0", 94 | [58] = "#4F3552", 95 | [59] = "#945EB8", 96 | [60] = "#BB80B3", 97 | [61] = "#AF85A0", 98 | [62] = "#D484FF", 99 | [63] = "#7E82CC", 100 | [64] = "#B279A7", 101 | [65] = "#8E77B3", 102 | [66] = "#A43A57", 103 | [67] = "#EC5F91", 104 | [68] = "#FF747C", 105 | [69] = "#586081", 106 | [70] = "#9A5534", 107 | [71] = "#79491d", 108 | [72] = "#621A3C", 109 | [73] = "#311D55", 110 | [74] = "#471337", 111 | [75] = "#445321", 112 | [76] = "#961134", 113 | [77] = "#543739", 114 | [78] = "#325C59", 115 | [79] = "#7EB2B1", 116 | [80] = "#EF1D55", 117 | [81] = "#FF9500", 118 | [82] = "#819C3B", 119 | [83] = "#088649", 120 | [84] = "#733E8B", 121 | [85] = "#A76C8C", 122 | [86] = "#F14A68", 123 | [87] = "#DC3958", 124 | [88] = "#FE8019", 125 | [89] = "#A4B494", 126 | [90] = "#95570f", 127 | [91] = "#9E7682", 128 | [92] = "#B76C77", 129 | }, 130 | 131 | tab_bar = { 132 | background = "#221a02", 133 | 134 | active_tab = { 135 | bg_color = "#362712", 136 | fg_color = "#E8C097", 137 | intensity = "Bold", 138 | underline = "None", 139 | italic = false, 140 | strikethrough = false, 141 | }, 142 | inactive_tab = { 143 | bg_color = "#291804", 144 | fg_color = "#665C54", 145 | }, 146 | inactive_tab_hover = { 147 | bg_color = "#291804", 148 | fg_color = "#B76C77", 149 | italic = false, 150 | }, 151 | new_tab_hover = { 152 | bg_color = "#291804", 153 | fg_color = "#938AA9", -- #9E7682, 154 | italic = false, 155 | }, 156 | new_tab = { 157 | bg_color = "#291804", 158 | fg_color = "#89B482", 159 | }, 160 | }, 161 | }, 162 | } 163 | -------------------------------------------------------------------------------- /lua/bufferline/themes/kimbox.lua: -------------------------------------------------------------------------------- 1 | local c = require("kimbox.bufferline").colors() 2 | 3 | ---@class Kimbox.BufferlineConfig 4 | local kimbox = { 5 | fill = {bg = c.bg}, 6 | background = {fg = c.fg, bg = c.bg}, 7 | 8 | close_button = {fg = c.fuzzy_wuzzy, bg = c.bg}, 9 | close_button_selected = {fg = c.wave_red, bg = c.active}, 10 | close_button_visible = {fg = c.fuzzy_wuzzy, bg = c.active}, 11 | 12 | numbers = {fg = c.magenta, bg = c.bg, bold = true}, 13 | numbers_selected = {fg = c.fg, bg = c.active, bold = true, italic = false}, 14 | numbers_visible = {fg = c.magenta, bg = c.active, bold = true}, 15 | 16 | separator = {fg = c.bg, bg = c.bg}, 17 | separator_selected = {fg = c.bg, bg = c.active}, 18 | separator_visible = {fg = c.bg, bg = c.active}, 19 | 20 | offset_separator = {fg = c.fuzzy_wuzzy, bg = c.bg}, 21 | 22 | tab_separator = {fg = c.bg, bg = c.bg}, 23 | tab_separator_selected = {fg = c.bg, bg = c.active}, 24 | 25 | tab = {fg = c.fg, bg = c.bg}, 26 | tab_selected = {fg = c.fg, bg = c.active, bold = true}, 27 | tab_close = {fg = c.red}, 28 | 29 | buffer = {fg = c.fg, bg = c.bg, bold = true}, 30 | buffer_selected = {fg = c.fg, bg = c.active, bold = true, italic = false}, 31 | buffer_visible = {fg = c.grullo_grey, bg = c.active}, 32 | 33 | -- group_label = {fg = c.bg, bg = c.bg}, 34 | -- group_separator = {fg = c.bg, bg = c.active}, 35 | 36 | indicator_selected = {fg = c.red, bg = c.active, bold = true}, 37 | indicator_visible = {fg = c.red, bg = c.active, bold = true}, 38 | 39 | pick = {fg = c.green, bg = c.bg, bold = true, italic = false}, 40 | pick_selected = {fg = c.teaberry, bg = c.active, bold = true, italic = false}, 41 | pick_visible = {fg = c.green, bg = c.active, bold = true, italic = false}, 42 | 43 | modified = {fg = c.red, bg = c.bg}, 44 | modified_selected = {fg = c.red, bg = c.active}, 45 | modified_visible = {fg = c.red, bg = c.active}, 46 | 47 | duplicate = {fg = c.wave_red, bg = c.bg, italic = false}, 48 | duplicate_selected = {fg = c.wave_red, bg = c.active, bold = true, italic = false}, 49 | duplicate_visible = {fg = c.wave_red, bg = c.active, italic = false}, 50 | 51 | diagnostic = {fg = c.red, bg = c.bg}, 52 | diagnostic_selected = {fg = c.red, bg = c.active, bold = true, italic = false}, 53 | diagnostic_visible = {fg = c.red, bg = c.active}, 54 | 55 | hint = {fg = c.beaver, bg = c.bg}, 56 | hint_selected = {fg = c.blue, bg = c.active, bold = true, italic = false}, 57 | hint_visible = {fg = c.beaver, bg = c.active}, 58 | hint_diagnostic = {fg = c.blue, bg = c.bg, bold = true}, 59 | hint_diagnostic_selected = {fg = c.blue, bg = c.active, italic = false}, 60 | hint_diagnostic_visible = {fg = c.blue, bg = c.active, bold = true}, 61 | 62 | info = {fg = c.beaver, bg = c.bg}, 63 | info_selected = {fg = c.purple, bg = c.active, bold = true, italic = false}, 64 | info_visible = {fg = c.beaver, bg = c.active}, 65 | info_diagnostic = {fg = c.purple, bg = c.bg, bold = true}, 66 | info_diagnostic_selected = {fg = c.purple, bg = c.active, italic = false}, 67 | info_diagnostic_visible = {fg = c.purple, bg = c.active, bold = true}, 68 | 69 | warning = {fg = c.beaver, bg = c.bg}, 70 | warning_selected = {fg = c.yellow, bg = c.active, bold = true, italic = false}, 71 | warning_visible = {fg = c.beaver, bg = c.active}, 72 | warning_diagnostic = {fg = c.yellow, bg = c.bg, bold = true}, 73 | warning_diagnostic_selected = {fg = c.yellow, bg = c.active, italic = false}, 74 | warning_diagnostic_visible = {fg = c.yellow, bg = c.active, bold = true}, 75 | 76 | error = {fg = c.beaver, bg = c.bg}, 77 | error_selected = {fg = c.red, bg = c.active, bold = true, italic = false}, 78 | error_visible = {fg = c.beaver, bg = c.active}, 79 | error_diagnostic = {fg = c.red, bg = c.bg, bold = true}, 80 | error_diagnostic_selected = {fg = c.red, bg = c.active, italic = false}, 81 | error_diagnostic_visible = {fg = c.red, bg = c.active, bold = true}, 82 | } 83 | 84 | return kimbox 85 | -------------------------------------------------------------------------------- /lua/kimbox/bufferline.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | ---@return Kimbox.BufferlineConfig 4 | function M.theme() 5 | return require("bufferline.themes.kimbox") 6 | end 7 | 8 | ---@return Kimbox.Colors|{[string]: Kimbox.Color.S_t} 9 | function M.colors() 10 | local c = require("kimbox.colors") 11 | return { 12 | fg = c.fg4, 13 | bg = c.vscode, 14 | active = c.bg4, 15 | 16 | magenta = c.magenta, 17 | purple = c.purple, 18 | red = c.red, 19 | teaberry = c.teaberry, 20 | green = c.green, 21 | yellow = c.yellow, 22 | orange = c.orange, 23 | blue = c.blue, 24 | aqua = c.aqua, 25 | amaranth_purple = c.amaranth_purple, 26 | 27 | sea_green = c.sea_green, 28 | russian_green = c.russian_green, 29 | jade_green = c.jade_green, 30 | deep_lilac = c.deep_lilac, 31 | drama_violet = c.drama_violet, 32 | vista_blue = c.vista_blue, 33 | ube = c.ube, 34 | oni_violet = c.oni_violet, 35 | puce = c.puce, 36 | salmon = c.salmon, 37 | infra_red = c.infra_red, 38 | wave_red = c.wave_red, 39 | peach_red = c.peach_red, 40 | surimi_orange = c.surimi_orange, 41 | fuzzy_wuzzy = c.fuzzy_wuzzy, 42 | middle_green_yellow = c.middle_green_yellow, 43 | deep_saffron = c.deep_saffron, 44 | coconut = c.coconut, 45 | russet = c.russet, 46 | grullo_grey = c.grullo_grey, 47 | philippine_silver = c.philippine_silver, 48 | beaver = c.beaver, 49 | } 50 | end 51 | 52 | return M 53 | -------------------------------------------------------------------------------- /lua/kimbox/colors.lua: -------------------------------------------------------------------------------- 1 | local Config = require("kimbox.config") 2 | local palette = require("kimbox.palette") 3 | local colors = palette.colors 4 | local bgs = palette.bgs 5 | 6 | ---Shortcut for `vim.tbl_extend` in this file 7 | ---@generic T table 8 | ---@param original T 9 | ---@param to_add T 10 | ---@return T 11 | local function extend(original, to_add) 12 | return vim.tbl_extend("force", original, to_add) 13 | end 14 | 15 | ---Merge theme colors with user configured colors 16 | ---@return Kimbox.Colors 17 | return (function() 18 | local selected = {} 19 | -- An alternative is given in case this file is 20 | -- required before the theme is loaded by the plugin manager 21 | local conf = Config.user or {} 22 | 23 | selected = extend(selected, {bg0 = bgs[conf.style or "cannon"]}) 24 | -- Default colors 25 | selected = extend(selected, colors) 26 | selected = extend(selected, bgs) 27 | -- Extra user specified colors 28 | selected = extend(selected, conf.colors or {}) 29 | 30 | return selected 31 | end)() 32 | -------------------------------------------------------------------------------- /lua/kimbox/config.lua: -------------------------------------------------------------------------------- 1 | local utils = require("kimbox.utils") 2 | local log = utils.log 3 | 4 | local cmd = vim.cmd 5 | local api = vim.api 6 | 7 | local DEFAULT_STYLE = "cannon" 8 | local DEFAULT_TOGGLE_KEY = "ts" 9 | 10 | ---@class Kimbox.Container 11 | ---@field user Kimbox.Config 12 | ---@field group integer Autocmd id 13 | ---@field __did_hl boolean 14 | ---@field __loaded boolean 15 | local Config = { 16 | user = {}, 17 | __loaded = false, 18 | __did_hl = false, 19 | } 20 | Config.__index = Config 21 | 22 | Config.bg_colors = { 23 | "burnt_coffee", -- medium 24 | "cannon", -- ocean 25 | "used_oil", -- vscode 26 | "deep", 27 | "zinnwaldite", -- darker 28 | "eerie", 29 | } 30 | 31 | ---@class Kimbox.Config 32 | ---@field toggle_style.index integer 33 | local default = { 34 | ---Background color: 35 | --- burnt_coffee : #231A0C -- legacy: "medium" 36 | --- cannon : #221A02 -- legacy: "ocean" 37 | --- used_oil : #221A0F -- legacy: "vscode" 38 | --- deep : #0F111B 39 | --- zinnwaldite : #291804 -- legacy: "darker" 40 | --- eerie : #1C0B28 41 | style = DEFAULT_STYLE, 42 | ---Allow changing background color 43 | toggle_style = { 44 | ---Key used to cycle through the backgrounds in `toggle_style.bgs` 45 | key = DEFAULT_TOGGLE_KEY, 46 | ---List of background names 47 | bgs = Config.bg_colors, 48 | }, 49 | ---New Lua-Treesitter highlight groups 50 | --- Location where Treesitter capture groups changed to '@capture.name' 51 | --- Commit: 030b422d1 52 | --- Vim patch: patch-8.2.0674 53 | langs08 = utils.tern(utils.has08(), true, false), 54 | ---Used with popup menus (coc.nvim mainly) -- 55 | popup = { 56 | background = false, -- use background color for PMenu 57 | }, 58 | -- ━━━ Plugin Related ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59 | diagnostics = { 60 | -- TODO: Check this for diagnostics specifically 61 | background = true, -- use background color for virtual text 62 | }, 63 | -- ━━━ General Formatting ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64 | allow_bold = true, 65 | allow_italic = false, 66 | allow_underline = false, 67 | allow_undercurl = true, 68 | allow_reverse = false, 69 | transparent = false, -- don't set background 70 | term_colors = true, -- if true enable the terminal 71 | ending_tildes = false, -- show the end-of-buffer tildes 72 | -- ━━━ Custom Highlights ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73 | ---Override default colors 74 | ---@type table 75 | colors = {}, 76 | ---Override highlight groups 77 | ---@type Kimbox.Highlight.Map 78 | highlights = {}, 79 | ---Plugins and langauges that can be disabled 80 | ---To view options: print(require("kimbox.highlights").{langs,langs08,plugins}) 81 | ---@type {langs: Kimbox.Highlight.Langs[], langs08: Kimbox.Highlight.Langs08[], plugins: Kimbox.Highlight.Plugins[]} 82 | disabled = { 83 | ---Disabled languages 84 | ---@see Kimbox.Highlight.Langs 85 | langs = {}, 86 | ---Disabled languages with '@' treesitter highlights 87 | ---@see Kimbox.Highlight.Langs08 88 | langs08 = {}, 89 | ---Disabled plugins 90 | ---@see Kimbox.Highlight.Plugins 91 | plugins = {}, 92 | }, 93 | ---Run a function before the colorscheme is loaded 94 | ---@type fun(): nil 95 | run_before = nil, 96 | ---Run a function after the colorscheme is loaded 97 | ---@type fun(): nil 98 | run_after = nil, 99 | } 100 | 101 | ---Validate configuration values 102 | ---@param c Kimbox.Config 103 | ---@return Kimbox.Config 104 | local function validate(c) 105 | vim.validate({ 106 | style = {c.style, "s", false}, 107 | toggle_style_key = {c.toggle_style.key, {"s", "b"}, false}, 108 | toggle_style_bgs = {c.toggle_style.bgs, "t", false}, 109 | langs08 = {c.langs08, "b", false}, 110 | popup = {c.popup, "t", false}, 111 | diagnostics = {c.diagnostics, "t", false}, 112 | allow_bold = {c.allow_bold, "b", false}, 113 | allow_italic = {c.allow_italic, "b", false}, 114 | allow_underline = {c.allow_underline, "b", false}, 115 | allow_undercurl = {c.allow_undercurl, "b", false}, 116 | allow_reverse = {c.allow_reverse, "b", false}, 117 | transparent = {c.transparent, "b", false}, 118 | term_colors = {c.term_colors, "b", false}, 119 | ending_tildes = {c.ending_tildes, "b", false}, 120 | -- 121 | colors = {c.colors, "t", false}, 122 | highlights = {c.highlights, "t", false}, 123 | disabled = {c.disabled, "t", false}, 124 | disabled_langs = {c.disabled.langs, "t", false}, 125 | disabled_langs08 = {c.disabled.langs08, "t", false}, 126 | disabled_plugins = {c.disabled.plugins, "t", false}, 127 | -- 128 | run_before = {c.run_before, "f", true}, 129 | run_after = {c.run_after, "f", true}, 130 | }) 131 | 132 | if not vim.tbl_contains(Config.bg_colors, c.style) then 133 | log.err(("invalid 'style' name given: %s.\nValid names: %s") 134 | :format(c.style, table.concat(Config.bg_colors, ", "))) 135 | c.style = DEFAULT_STYLE 136 | end 137 | 138 | return c 139 | end 140 | 141 | ---Set a configuration value later, after `.setup()` 142 | ---@param cfg? Kimbox.Config configuration options 143 | function Config:set(cfg) 144 | if type(cfg) == "table" then 145 | self.user = vim.tbl_deep_extend("force", self.user, cfg) --[[@as Kimbox.Config]] 146 | self.user = validate(self.user) 147 | end 148 | end 149 | 150 | ---Return the configuration 151 | ---@param key? string 152 | ---@return Kimbox.Config 153 | function Config:get(key) 154 | if key then 155 | return self.user[key] 156 | end 157 | return self.user 158 | end 159 | 160 | ---Setup Kimbox options, without applying colorscheme 161 | function Config:process() 162 | local old_config = require("kimbox.config_old").load() 163 | if old_config then 164 | self.user = vim.tbl_deep_extend("force", self.user, old_config) 165 | end 166 | 167 | if self.user.toggle_style then 168 | self:set({toggle_style = {index = 0}}) 169 | end 170 | 171 | if not utils.is_empty(self.user.toggle_style.key) and self.user.toggle_style.key ~= false then 172 | if vim.keymap and vim.keymap.set then 173 | local mapping = 174 | utils.tern( 175 | self.user.toggle_style.key == true, 176 | DEFAULT_TOGGLE_KEY, 177 | self.user.toggle_style.key 178 | ) 179 | vim.keymap.set( 180 | "n", 181 | mapping, 182 | [[lua require('kimbox').toggle()]], 183 | {noremap = true, silent = true, desc = "Kimbox: toggle bg"} 184 | ) 185 | end 186 | end 187 | end 188 | 189 | ---Toggle between Kimbox styles 190 | function Config:toggle() 191 | local bgs = self.user.toggle_style.bgs 192 | local index = self.user.toggle_style.index < #bgs and self.user.toggle_style.index + 1 or 1 193 | self:set({style = bgs[index]}) 194 | self:set({toggle_style = {index = index}}) 195 | 196 | -- TODO: needs testing, i don't use it 197 | require("kimbox.highlights").toggle_bg() 198 | 199 | vim.o.background = "dark" 200 | cmd.colorscheme("kimbox") 201 | end 202 | 203 | ---Initialize the default configuration 204 | function Config.init() 205 | if Config.__loaded then 206 | return 207 | end 208 | 209 | local kimbox = require("kimbox") 210 | Config.user = vim.tbl_deep_extend("keep", kimbox.__conf, default) --[[@as Kimbox.Config]] 211 | Config.user = validate(Config.user) 212 | kimbox.__conf = nil 213 | 214 | Config:process() 215 | 216 | Config.group = api.nvim_create_augroup("Kimbox", {clear = true}) --[[@as integer]] 217 | api.nvim_create_autocmd("ColorSchemePre", { 218 | group = Config.group, 219 | pattern = "kimbox", 220 | desc = "Run function before loading kimbox theme", 221 | callback = function() 222 | if type(Config.user.run_before) == "function" then 223 | if not pcall(Config.user.run_before) then 224 | log.err("failed executing 'run_before' function", true) 225 | end 226 | end 227 | end, 228 | }) 229 | api.nvim_create_autocmd("ColorScheme", { 230 | group = Config.group, 231 | pattern = "kimbox", 232 | desc = "Properly configure kimbox colorscheme", 233 | callback = function() 234 | require("kimbox.highlights").setup() 235 | require("kimbox.terminal").setup() 236 | Config.__did_hl = true 237 | 238 | if type(Config.user.run_after) == "function" then 239 | if not pcall(Config.user.run_after) then 240 | log.err("failed executing 'run_after' function", true) 241 | end 242 | end 243 | end, 244 | }) 245 | Config.__loaded = true 246 | end 247 | 248 | return Config 249 | -------------------------------------------------------------------------------- /lua/kimbox/config_old.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | local Config = require("kimbox.config") 4 | local utils = require("kimbox.utils") 5 | local log = utils.log 6 | 7 | ---@return Kimbox.Config? 8 | function M.load() 9 | local opts = { 10 | "background", 11 | "transparent_background", 12 | "disable_terminal_colors", 13 | "diagnostics_text_bg", 14 | "hide_ending_tildes", 15 | "toggle_style_keymap", 16 | "allow_bold", 17 | "allow_italic", 18 | "allow_underline", 19 | "allow_reverse", 20 | "allow_undercurl", 21 | } 22 | 23 | local cfg = {} 24 | local using_old_config = false 25 | local messages = "" 26 | 27 | for _, opt in ipairs(opts) do 28 | local value = vim.g["kimbox_" .. opt] 29 | if value ~= nil then 30 | cfg[opt] = value 31 | using_old_config = true 32 | messages = 33 | ([[%s option 'vim.g.kimbox_%s' has been deprecated.]] .. 34 | [[\nLook at README.md for new configuration.]]):format(messages, opt) 35 | end 36 | end 37 | 38 | if using_old_config then 39 | vim.schedule( 40 | function() 41 | log.warn(messages, true) 42 | end 43 | ) 44 | 45 | ---@class Kimbox.Config 46 | local new_config = { 47 | style = cfg.background, 48 | transparent = cfg.transparent_background, 49 | term_colors = cfg.disable_terminal_colors, 50 | ending_tildes = cfg.hide_ending_tildes, 51 | diagnostics = {background = cfg.diagnostics_text_bg}, 52 | toggle_style = {key = cfg.toggle_style_keymap}, 53 | allow_bold = cfg.allow_bold, 54 | allow_italic = cfg.allow_italic, 55 | allow_underline = cfg.allow_underline, 56 | allow_undercurl = cfg.allow_undercurl, 57 | allow_reverse = cfg.allow_reverse, 58 | } 59 | 60 | return new_config 61 | end 62 | 63 | -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64 | 65 | local opts = { 66 | "toggle_style_key", 67 | "toggle_style_list", 68 | } 69 | 70 | for _, opt in ipairs(opts) do 71 | local value = Config[opt] 72 | if value ~= nil then 73 | cfg[opt] = value 74 | using_old_config = true 75 | messages = 76 | ([[%s option '%s' has been deprecated.]] .. 77 | [[\nLook at README.md for new configuration.]]):format(messages, opt) 78 | end 79 | end 80 | 81 | if using_old_config then 82 | vim.schedule( 83 | function() 84 | log.warn(messages, true) 85 | end 86 | ) 87 | 88 | ---@class Kimbox.Config 89 | local new_config = { 90 | toggle_style = { 91 | key = cfg.toggle_style_keymap, 92 | bgs = cfg.toggle_style_list, 93 | }, 94 | } 95 | 96 | return new_config 97 | end 98 | end 99 | 100 | return M 101 | -------------------------------------------------------------------------------- /lua/kimbox/init.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | local Config = require("kimbox.config") 4 | local utils = require("kimbox.utils") 5 | local log = utils.log 6 | 7 | local g = vim.g 8 | local fn = vim.fn 9 | local cmd = vim.cmd 10 | 11 | ---Here for legacy reasons 12 | M.KimboxBgColors = Config.bg_colors 13 | 14 | ---Setup Kimbox 15 | ---@param opts Kimbox.Config 16 | function M.setup(opts) 17 | if Config.__loaded then 18 | return 19 | end 20 | 21 | M.__conf = opts or g.kimbox_config or {} 22 | Config.init() 23 | end 24 | 25 | ---Apply the colorscheme 26 | function M.load() 27 | if g.colors_name then 28 | cmd.hi("clear") 29 | end 30 | if fn.exists("syntax_on") then 31 | cmd.syntax("reset") 32 | end 33 | 34 | g.colors_name = "kimbox" 35 | vim.o.termguicolors = true 36 | end 37 | 38 | ---Here for legacy reasons 39 | M.colorscheme = M.load 40 | 41 | ---Toggle between Kimbox styles 42 | function M.toggle() 43 | if not Config.__did_hl then 44 | log.err("the colorscheme must be setup first") 45 | return 46 | end 47 | 48 | Config:toggle() 49 | end 50 | 51 | -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52 | 53 | ---@alias Kimbox.Colors Kimbox.FG|Kimbox.BG collection of keys (color name) & values as a hex string 54 | ---@alias Kimbox.Color.S_t string a color's hex representation as a string 55 | ---@alias Kimbox.Color.N_t integer a color's hex representation as a number 56 | 57 | ---@class Kimbox.Color.RGB_t 58 | ---@field r integer red channel 59 | ---@field g integer green channel 60 | ---@field b integer blue channel 61 | 62 | ---@alias Kimbox.Highlight.Group string the highlight group name 63 | 64 | ---@class Kimbox.Highlight.Attr 65 | ---@field from string origin highlight group 66 | ---@field alter float number to alter by 67 | ---@field attr "'foreground'"|"'fg'"|"'background'"|"'bg'"|"'special'"|"'sp'" 68 | 69 | ---@alias Kimbox.Color_t string|integer|"'NONE'"|Kimbox.Highlight.Attr|fun():string|Kimbox.Highlight.Attr 70 | 71 | ---@class Kimbox.Highlight_t 72 | ---@field default boolean don't override existing definition 73 | ---@field fg Kimbox.Color_t foreground attribute 74 | ---@field bg Kimbox.Color_t background attribute 75 | ---@field sp Kimbox.Color_t special attribute 76 | ---@field foreground Kimbox.Color_t foreground attribute 77 | ---@field background Kimbox.Color_t background attribute 78 | ---@field special Kimbox.Color_t special attribute 79 | ---@field blend number 0 to 100 80 | ---@field bold boolean bolden text for the highlight attribute 81 | ---@field standout boolean possibly similar to `bold`? 82 | ---@field underline boolean normal underline attribute 83 | ---@field undercurl boolean curled underline attribute 84 | ---@field underdouble boolean double underline attribute 85 | ---@field underdotted boolean dotted underline attribute 86 | ---@field underdashed boolean dashed underline attribute 87 | ---@field strikethrough boolean strike through highlight attribute 88 | ---@field italic boolean italicize text for the highlight attribute 89 | ---@field reverse boolean reverse highlight attribute 90 | ---@field nocombine boolean override attributes instead of combining them 91 | ---@field link boolean|string link highlight group to another 92 | ---@field ctermfg string sets foreground of cterm color 93 | ---@field ctermbg string sets background of cterm color 94 | ---@field cterm Kimbox.Cterm.Kind cterm attribute map 95 | ---@field inherit string (extra) inherit color information from an already defined highlight group 96 | ---@field build boolean (extra) keep color attributes to build upon. (equiv: `val = {inherit='val'}`) 97 | ---@field gui string (extra) accept old GUI strings 98 | ---@field cond string (extra) conditional colorscheme name 99 | ---@field guifg string @deprecated foreground 100 | ---@field guibg string @deprecated background 101 | ---@field guisp string @deprecated special 102 | 103 | ---@alias Kimbox.Highlight.Kind 104 | ---| '"default"' don't override existing definition 105 | ---| '"fg"' foreground attribute 106 | ---| '"bg"' background attribute 107 | ---| '"sp"' special attribute 108 | ---| '"foreground"' foreground attribute 109 | ---| '"background"' background attribute 110 | ---| '"special"' special attribute 111 | ---| '"bold"' bolden text for the highlight attribute 112 | ---| '"standout"' possibly similar to `bold`? 113 | ---| '"underline"' normal underline attribute 114 | ---| '"undercurl"' curled underline attribute 115 | ---| '"underdouble"' double underline attribute 116 | ---| '"underdotted"' dotted underline attribute 117 | ---| '"underdashed"' dashed underline attribute 118 | ---| '"strikethrough"' strike through highlight attribute 119 | ---| '"italic"' italicize text for the highlight attribute 120 | ---| '"reverse"' reverse highlight attribute 121 | ---| '"nocombine"' override attributes instead of combining them 122 | ---| '"link"' link highlight group to another 123 | ---| '"ctermfg"' cterm foreground 124 | ---| '"ctermbg"' cterm background 125 | ---| '"inherit"' [CUSTOM]: inherit color information from an already defined highlight group 126 | ---| '"build"' [CUSTOM]: keep color attributes to build upon. (equiv: `val = {inherit='val'}`) 127 | ---| '"gui"' [CUSTOM]: accept old GUI strings 128 | ---| '"cond"' [CUSTOM]: conditional colorscheme name 129 | ---| '"guifg"' @deprecated foreground 130 | ---| '"guibg"' @deprecated background 131 | ---| '"guisp"' @deprecated special 132 | 133 | ---@class Kimbox.Highlight.Map 134 | ---@field [string] Kimbox.Highlight_t 135 | 136 | ---@alias Kimbox.Cterm.Kind 137 | ---| '"bold"' 138 | ---| '"underline"' 139 | ---| '"undercurl"' curly underline 140 | ---| '"underdouble"' double underline 141 | ---| '"underdotted"' dotted underline 142 | ---| '"underdashed"' dashed underline 143 | ---| '"strikethrough"' 144 | ---| '"reverse"' 145 | ---| '"inverse"' same as reverse 146 | ---| '"italic"' 147 | ---| '"standout"' 148 | ---| '"altfont"' 149 | ---| '"nocombine"' override attributes instead of combining them 150 | ---| '"none"' no attributes used (used to reset it) 151 | 152 | ---@class Kimbox.Highlight.Gui.Attr 153 | ---@field bold boolean 154 | ---@field italic boolean 155 | ---@field underline boolean 156 | ---@field undercurl boolean 157 | ---@field underdouble boolean 158 | ---@field underdotted boolean 159 | ---@field underdashed boolean 160 | ---@field strikethrough boolean 161 | 162 | return M 163 | -------------------------------------------------------------------------------- /lua/kimbox/lualine.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | ---@return Kimbox.LualineConfig 4 | function M.theme() 5 | return require("lualine.themes.kimbox") 6 | end 7 | 8 | ---@return Kimbox.Colors|{[string]: string} 9 | function M.colors() 10 | local c = require("kimbox.colors") 11 | return { 12 | fg = c.fg0, 13 | bg = c.bg0, 14 | bg2 = c.bg2, 15 | grullo_grey = c.grullo_grey, 16 | red = c.teaberry, 17 | red2 = c.red, 18 | green = c.green, 19 | yellow = c.yellow, 20 | orange = c.orange, 21 | blue = c.blue, 22 | magenta = c.magenta, 23 | purple = c.purple, 24 | cyan = c.aqua, 25 | salmon = c.salmon, 26 | } 27 | end 28 | 29 | return M 30 | -------------------------------------------------------------------------------- /lua/kimbox/palette.lua: -------------------------------------------------------------------------------- 1 | ---@class Kimbox.BG 2 | local bgs = { 3 | burnt_coffee = "#231A0C", 4 | cannon = "#221A02", 5 | used_oil = "#221A0F", 6 | deep = "#0F111B", 7 | zinnwaldite = "#291804", 8 | eerie = "#1C0B28", 9 | } 10 | 11 | bgs.medium = bgs.burnt_coffee 12 | bgs.ocean = bgs.cannon 13 | bgs.vscode = bgs.used_oil 14 | bgs.chinese_black = bgs.deep 15 | bgs.darker = bgs.zinnwaldite 16 | 17 | ---@class Kimbox.FG 18 | ---@field bg0 string 19 | local fgs = { 20 | none = "none", 21 | bg1 = "#39260E", 22 | bg2 = "#362712", 23 | bg3 = bgs.zinnwaldite, 24 | bg4 = "#5E452B", 25 | bg5 = "#271e02", 26 | -- 27 | fg0 = "#D9AE80", 28 | fg1 = "#7E602C", 29 | fg2 = "#5E452B", 30 | fg3 = "#C2A383", 31 | fg4 = "#E8C097", 32 | fg5 = "#DFBF8E", 33 | ---------------------------------------------------------------------------- 34 | black = "#000000", 35 | red = "#EF1D55", 36 | magenta = "#A06469", 37 | orange = "#FF5813", 38 | green = "#819C3B", 39 | yellow = "#FF9500", 40 | aqua = "#7EB2B1", 41 | blue = "#4C96A8", 42 | purple = "#98676A", 43 | -- 44 | philippine_green = "#088649", 45 | sea_green = "#77A172", 46 | russian_green = "#689D6A", 47 | jade_green = "#2AB074", 48 | morning_blue = "#83A598", 49 | jelly_bean_blue = "#418292", 50 | slate_grey = "#719190", 51 | aftercare = "#88C0D0", 52 | tuscan_red = "#7E5053", 53 | purple_taupe = "#4F3552", 54 | amaranth_purple = "#733E8B", 55 | lusty_lavender = "#945EB8", 56 | deep_lilac = "#A25BC4", 57 | heliotrope = "#D484FF", 58 | vista_blue = "#7E9CD8", 59 | ube = "#7E82CC", 60 | oni_violet = "#957FB8", 61 | paisley_purple = "#8E77B3", 62 | amethyst = "#938AA9", 63 | capri_fashion_pink = "#AF85A0", 64 | drama_violet = "#BB80B3", 65 | victorian_violet = "#B279A7", 66 | cure_all = "#A76C8C", 67 | old_rose = "#BD798B", 68 | puce = "#D3869B", 69 | salmon = "#EA6962", 70 | wave_red = "#E46876", 71 | peach_red = "#FF5D62", 72 | infra_red = "#F14A68", 73 | teaberry = "#DC3958", 74 | fuzzy_wuzzy = "#CC6666", 75 | glorious_sunset = "#FE8019", 76 | surimi_orange = "#FFA066", 77 | jasper_orange = "#E78A4E", 78 | ---------------------------------------------------------------------------- 79 | cranberry_sauce = "#A43A57", 80 | watermelon = "#EC5F91", 81 | begonia = "#FF747C", 82 | middle_green_yellow = "#A3B95A", 83 | deep_saffron = "#F79A32", 84 | 85 | gleeful = "#99BE7D", 86 | family_tree = "#A4B494", 87 | heart_potion = "#AD7EB7", 88 | ponceau = "#F55B76", 89 | nectarous_nectarine = "#DE5662", 90 | carnation = "#F77B91", 91 | gorse_yellow_orange = "#EB9938", 92 | dried_flower = "#792359", 93 | pretty_prune = "#6B2D5C", 94 | 95 | dark_electric_blue = "#586081", 96 | coconut = "#9A5534", 97 | russet = "#79491D", 98 | brown_chocolate = "#621A3C", 99 | russian_violet = "#311D55", 100 | dark_purple = "#471337", 101 | 102 | army_green = "#445321", -- "#4c5c25", 103 | vivid_burgundy = "#961134", 104 | royal_brown = "#543739", -- #5d4059 #473b59 105 | royal_pine = "#325C59", -- #3f5958 106 | fresh_cinnamon = "#95570f", 107 | ---------------------------------------------------------------------------- 108 | -- These are duplicates because they are both used and might be changed at some point 109 | coyote_brown = "#7E602C", 110 | coyote_brown1 = "#7E602C", 111 | grullo_grey = "#A89984", 112 | philippine_silver = "#B2B2B2", 113 | wenge_grey = "#625A5A", 114 | beaver = "#A0936A", 115 | light_taupe = "#AF8D6E", 116 | 117 | -- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118 | 119 | carbon_fiber = "#2F2D2E", 120 | wenge_black = "#41292C", 121 | vivid_cerise = "#D72483", 122 | diva_pink = "#FD3E81", 123 | 124 | -- bats_blood = "#F0386B", 125 | -- fiery_rose = "#FF5376", 126 | -- pale_petunia = "#F8C0C8", 127 | birdseed = "#E2C290", 128 | 129 | ballerina_tutu = "#C96480", 130 | wild_party = "#B47878", 131 | applegate_park = "#B1AE91", 132 | velvet_leaf = "#95BF8F", 133 | jade_lime = "#99D17B", 134 | 135 | rose_gold = "#B76C77", 136 | melanzane = "#34252F", 137 | dusk_wine = "#9E7682", 138 | orchid_grey = "#605770", 139 | garden_violet = "#847996", 140 | vintage_blue = "#88B7B5", 141 | pastel_meadow = "#A7CAB1", 142 | } 143 | 144 | fgs.diff_add = fgs.army_green 145 | fgs.diff_delete = fgs.vivid_burgundy 146 | fgs.diff_change = fgs.royal_brown 147 | fgs.diff_text = fgs.royal_pine 148 | 149 | -- Legacy 150 | fgs.light_red = fgs.fuzzy_wuzzy 151 | fgs.cyan = fgs.aqua 152 | 153 | return { 154 | colors = fgs, 155 | bgs = bgs, 156 | } 157 | -------------------------------------------------------------------------------- /lua/kimbox/terminal.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | ---@type Kimbox.Config 4 | local cfg = require("kimbox.config").user or vim.g.kimbox_config 5 | ---@type Kimbox.Colors 6 | local c = require("kimbox.colors") 7 | 8 | function M.setup() 9 | if not cfg.term_colors then 10 | return 11 | end 12 | 13 | vim.g.terminal_color_0 = c.bg0 14 | vim.g.terminal_color_1 = c.red 15 | vim.g.terminal_color_2 = c.green 16 | vim.g.terminal_color_3 = c.yellow 17 | vim.g.terminal_color_4 = c.blue 18 | vim.g.terminal_color_5 = c.purple 19 | vim.g.terminal_color_6 = c.aqua 20 | vim.g.terminal_color_7 = c.bg5 21 | vim.g.terminal_color_8 = c.bg0 22 | vim.g.terminal_color_9 = c.red 23 | vim.g.terminal_color_10 = c.green 24 | vim.g.terminal_color_11 = c.yellow 25 | vim.g.terminal_color_12 = c.blue 26 | vim.g.terminal_color_13 = c.purple 27 | vim.g.terminal_color_14 = c.aqua 28 | vim.g.terminal_color_15 = c.fg0 29 | end 30 | 31 | return M 32 | -------------------------------------------------------------------------------- /lua/kimbox/utils.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | local fn = vim.fn 4 | local api = vim.api 5 | 6 | M.bg = "#000000" 7 | M.fg = "#ffffff" 8 | 9 | ---@alias Kimbox.Log.Levels { TRACE: 0, DEBUG: 1, INFO: 2, WARN: 3, ERROR: 4, OFF: 5 } 10 | 11 | M.log = { 12 | ---@type Kimbox.Log.Levels 13 | levels = vim.log.levels, 14 | } 15 | 16 | ---Determine whether the user has Neovim 0.8 17 | ---@return fun(): boolean 18 | M.has08 = (function() 19 | local has08 20 | return function() 21 | if has08 == nil then 22 | has08 = fn.has("nvim-0.8") == 1 23 | end 24 | return has08 25 | end 26 | end)() 27 | 28 | ---Determine whether the user has Neovim 0.9 29 | ---@return fun(): boolean 30 | M.has09 = (function() 31 | local has09 32 | return function() 33 | if has09 == nil then 34 | has09 = fn.has("nvim-0.9") == 1 35 | end 36 | return has09 37 | end 38 | end)() 39 | 40 | ---Determine whether the user has `api.nvim_set_hl` 41 | ---@return fun(): boolean 42 | M.has_api = (function() 43 | local has_api 44 | return function() 45 | if has_api == nil then 46 | has_api = fn.has("nvim-0.7") == 1 and type(api.nvim_set_hl) == "function" 47 | end 48 | return has_api 49 | end 50 | end)() 51 | 52 | ---BUG: There is a bug in the API that returns true as a key in the table 53 | ---https://github.com/neovim/neovim/issues/18024 54 | ---It is fixed now, in Neovim 0.7.2 55 | ---@return fun(): boolean 56 | M.needs_api_fix = (function() 57 | local needs_api_fix 58 | return function() 59 | if needs_api_fix == nil then 60 | needs_api_fix = fn.has("nvim-0.7.2") == 0 61 | end 62 | return needs_api_fix 63 | end 64 | end)() 65 | 66 | ---Echo a message with `nvim_echo` 67 | ---@param msg string message 68 | ---@param hl string highlight group 69 | M.echomsg = function(msg, hl) 70 | hl = hl or "Title" 71 | api.nvim_echo({{msg, hl}}, true, {}) 72 | end 73 | 74 | ---Display notification message 75 | ---@param msg string 76 | ---@param level number 77 | ---@param opts table? 78 | M.notify = function(msg, level, opts) 79 | opts = vim.tbl_extend("force", opts or {}, {title = "kimbox"}) 80 | if opts.once then 81 | vim.notify_once(msg, level, opts) 82 | else 83 | vim.notify(msg, level, opts) 84 | end 85 | end 86 | 87 | ---`INFO` message 88 | ---@param msg string 89 | ---@param notify boolean? 90 | ---@param opts table? 91 | M.log.info = function(msg, notify, opts) 92 | if notify then 93 | M.notify(msg, M.log.levels.INFO, opts) 94 | else 95 | M.echomsg(("[INFO]: %s"):format(msg), "Directory") 96 | end 97 | end 98 | 99 | ---`WARN` message 100 | ---@param msg string 101 | ---@param notify boolean? 102 | ---@param opts table? 103 | M.log.warn = function(msg, notify, opts) 104 | if notify then 105 | M.notify(msg, M.log.levels.WARN, opts) 106 | else 107 | M.echomsg(("[WARN]: %s"):format(msg), "WarningMsg") 108 | end 109 | end 110 | 111 | ---`ERROR` message 112 | ---@param msg string 113 | ---@param notify boolean? 114 | ---@param opts table? 115 | M.log.err = function(msg, notify, opts) 116 | if notify then 117 | M.notify(msg, M.log.levels.ERROR, opts) 118 | else 119 | M.echomsg(("[ERR]: %s"):format(msg), "ErrorMsg") 120 | end 121 | end 122 | 123 | ---Return a default value if `x` is nil 124 | ---@generic T, V 125 | ---@param x T Value to check if not `nil` 126 | ---@param default V Default value to return if `x` is `nil` 127 | ---@return T | V 128 | function M.get_default(x, default) 129 | return M.ife_nil(x, default, x) 130 | end 131 | 132 | ---Similar to `vim.F.nil` except that an alternate default value can be given 133 | ---@generic T, V 134 | ---@param x any Value to check if `nil` 135 | ---@param is_nil T Value to return if `x` is `nil` 136 | ---@param is_not_nil V Value to return if `x` is not `nil` 137 | ---@return T | V 138 | function M.ife_nil(x, is_nil, is_not_nil) 139 | if x == nil then 140 | return is_nil 141 | else 142 | return is_not_nil 143 | end 144 | end 145 | 146 | ---Return one of two values based on a conditional 147 | ---@generic T, V 148 | ---@param condition? boolean|fun():boolean Statement to be tested 149 | ---@param is_if T Return if condition is truthy 150 | ---@param is_else V Return if condition is not truthy 151 | ---@return T | V 152 | function M.tern(condition, is_if, is_else) 153 | if condition then 154 | return is_if 155 | else 156 | return is_else 157 | end 158 | end 159 | 160 | ---Check if `string` is empty or `nil` 161 | ---@param str string 162 | ---@return boolean 163 | function M.is_empty(str) 164 | return str == "" or str == nil 165 | end 166 | 167 | ---Get the latest messages from `messages` command 168 | ---@param count number? of messages to get 169 | ---@param str boolean whether to return as a string or table 170 | ---@return string 171 | function M.messages(count, str) 172 | local messages = fn.execute("messages") 173 | local lines = vim.split(messages, "\n") 174 | lines = vim.tbl_filter(function(line) 175 | return line ~= "" 176 | end, lines) 177 | count = count and tonumber(count) or nil 178 | count = (count ~= nil and count >= 0) and count - 1 or #lines 179 | local slice = vim.list_slice(lines, #lines - count) 180 | return str and table.concat(slice, "\n") or slice 181 | end 182 | 183 | -- ╭──────────────────────────────────────────────────────────╮ 184 | -- │ Colors │ 185 | -- ╰──────────────────────────────────────────────────────────╯ 186 | 187 | ---Convert a hex color (i.e., `#FFFFFF`) into an RGB(255, 255, 255) 188 | ---@param hex Kimbox.Color.S_t 189 | ---@return Kimbox.Color.RGB_t 190 | function M.hex2rgb(hex) 191 | local pat = "^(%x%x)(%x%x)(%x%x)$" 192 | hex = hex:gsub("#", ""):gsub("0x", ""):lower() 193 | assert(hex:match(pat) ~= nil, ("hex2rgb: invalid string: %s"):format(hex)) 194 | 195 | local r, g, b = hex:match(pat) 196 | return { 197 | r = tonumber(r, 16), 198 | g = tonumber(g, 16), 199 | b = tonumber(b, 16), 200 | } 201 | end 202 | 203 | ---Convert RGB decimal (RGB) to hexadecimal (#RRGGBB) 204 | ---@param dec integer 205 | ---@return string color @#RRGGBB 206 | function M.rgb2hex(dec) 207 | return ("#%s"):format(bit.tohex(dec, 6)) 208 | end 209 | 210 | ---Blend foreground and background colors together. 211 | ---@param fg Kimbox.Color.S_t foreground color 212 | ---@param bg Kimbox.Color.S_t background color 213 | ---@param alpha float number between 0 and 1. 0 results in bg, 1 results in fg 214 | ---@return Kimbox.Color.S_t 215 | function M.blend(fg, bg, alpha) 216 | local bg_rgb = M.hex2rgb(bg) 217 | local fg_rgb = M.hex2rgb(fg) 218 | 219 | local blend = function(i) 220 | local ret = (alpha * fg_rgb[i] + ((1 - alpha) * bg_rgb[i])) 221 | return math.floor(math.min(math.max(0, ret), 255) + 0.5) 222 | end 223 | 224 | return ("#%02X%02X%02X"):format(blend("r"), blend("g"), blend("b")) 225 | end 226 | 227 | ---Alter a color's brightness 228 | ---@param color Kimbox.Color.S_t|fun():Kimbox.Color.S_t hex color 229 | ---@param percent float negative darkens; positive brightens 230 | ---@return Kimbox.Color.S_t 231 | function M.alter(color, percent) 232 | assert(color and percent, "unable to alter color without a color and percentage to alter by") 233 | color = type(color) == "function" and color() or color 234 | local c = M.hex2rgb(color) 235 | if not c.r or not c.g or not c.b then 236 | return "NONE" 237 | end 238 | local function blend(comp) 239 | comp = math.floor(comp * (1 + percent)) 240 | return math.min(math.max(comp, 0), 255) 241 | -- return math.floor(math.min(math.max(comp, 0), 255) + 0.5) 242 | end 243 | return ("#%02x%02x%02x"):format(blend(c.r), blend(c.g), blend(c.b)) 244 | end 245 | 246 | --- 247 | ---@param hex Kimbox.Color.S_t Color to blend 248 | ---@param amount number Number between 0 and 1. 0 results in bg, 1 results in fg 249 | ---@param bg? Kimbox.Color.S_t Background color 250 | ---@return Kimbox.Color.S_t 251 | function M.darken(hex, amount, bg) 252 | return M.blend(hex, bg or M.bg, math.abs(amount)) 253 | end 254 | 255 | function M.darken1(hex, amount) 256 | return M.alter(hex, amount) 257 | end 258 | 259 | --- 260 | ---@param hex Kimbox.Color.S_t Color to blend 261 | ---@param amount number Number between 0 and 1. 0 results in bg, 1 results in fg 262 | ---@param fg? Kimbox.Color.S_t Foreground color 263 | ---@return Kimbox.Color.S_t 264 | function M.lighten(hex, amount, fg) 265 | return M.blend(hex, fg or M.fg, math.abs(amount)) 266 | end 267 | 268 | ---Convert a `gui=...` into valid arguments for `api.nvim_set_hl` 269 | ---@param style string 270 | ---@return table 271 | function M.convert_gui(style) 272 | if not style or style:lower() == "none" then 273 | return {} 274 | end 275 | 276 | local gui = {} 277 | style = style:lower() 278 | for token in style:gmatch("([^,]+)") do 279 | gui[token] = true 280 | end 281 | 282 | return gui 283 | end 284 | 285 | ---Highlight using Vim's language 286 | ---@param highlights Kimbox.Highlight.Map 287 | local function vim_highlights(highlights) 288 | ---@type Kimbox.Highlight.Map 289 | local to_highlight = {} 290 | for group, opts in pairs(highlights) do 291 | if opts.link then 292 | table.insert(to_highlight, ("highlight! link %s %s"):format(group, opts.link)) 293 | else 294 | table.insert( 295 | to_highlight, 296 | ("hi %s guifg=%s guibg=%s guisp=%s gui=%s"):format( 297 | group, 298 | opts.fg or "none", 299 | opts.bg or "none", 300 | opts.sp or "none", 301 | opts.gui or "none" 302 | ) 303 | ) 304 | end 305 | end 306 | 307 | vim.cmd(table.concat(to_highlight, "\n")) 308 | end 309 | 310 | ---Highlight using the Nvim API 311 | ---@param highlights Kimbox.Highlight.Map 312 | local function nvim_highlights(highlights) 313 | for group, opts in pairs(highlights) do 314 | if not M.is_empty(opts.link) then 315 | api.nvim_set_hl(0, group, {link = opts.link}) 316 | else 317 | local values = M.convert_gui(opts.gui) 318 | values.bg = opts.bg 319 | values.fg = opts.fg 320 | values.sp = opts.sp 321 | api.nvim_set_hl(0, group, values) 322 | end 323 | end 324 | end 325 | 326 | ---@class Kimbox.Highlight.Fn 327 | ---@operator call(Kimbox.Highlight.Map): nil 328 | ---@field alt fun(h: Kimbox.Highlight.Map) 329 | M.highlight = setmetatable({alt = vim_highlights}, { 330 | --- 331 | ---@param _ Kimbox.Highlight.Fn 332 | ---@param ... Kimbox.Highlight.Map 333 | __call = function(_, ...) 334 | local hl = M.tern(M.has_api(), nvim_highlights, vim_highlights) 335 | hl(...) 336 | end, 337 | }) 338 | 339 | return M 340 | -------------------------------------------------------------------------------- /lua/lualine/themes/kimbox.lua: -------------------------------------------------------------------------------- 1 | local c = require("kimbox.lualine").colors() 2 | 3 | ---@class Kimbox.LualineConfig 4 | local kimbox = { 5 | normal = { 6 | a = {fg = c.purple, bg = c.bg, gui = "bold"}, 7 | b = {fg = c.fg, bg = c.bg}, 8 | c = {fg = c.fg, bg = c.bg2}, 9 | x = {fg = c.fg, bg = c.bg}, 10 | y = {fg = c.purple, bg = c.bg, gui = "bold"}, 11 | z = {fg = c.purple, bg = c.bg, gui = "bold"} 12 | }, 13 | command = { 14 | a = {fg = c.blue, bg = c.bg, gui = "bold"}, 15 | b = {fg = c.fg, bg = c.bg}, 16 | c = {fg = c.fg, bg = c.bg2}, 17 | x = {fg = c.fg, bg = c.bg} 18 | }, 19 | inactive = { 20 | a = {fg = c.red, bg = c.bg}, 21 | b = {fg = c.magenta, bg = c.bg} 22 | }, 23 | insert = { 24 | a = {fg = c.green, bg = c.bg, gui = "bold"}, 25 | b = {fg = c.fg, bg = c.bg}, 26 | c = {fg = c.fg, bg = c.bg2}, 27 | x = {fg = c.fg, bg = c.bg}, 28 | y = {fg = c.green, bg = c.bg, gui = "bold"}, 29 | z = {fg = c.green, bg = c.bg, gui = "bold"} 30 | }, 31 | replace = { 32 | a = {fg = c.red, bg = c.bg, gui = "bold"}, 33 | b = {fg = c.fg, bg = c.bg}, 34 | c = {fg = c.fg, bg = c.bg2}, 35 | x = {fg = c.fg, bg = c.bg} 36 | }, 37 | terminal = { 38 | a = {fg = c.yellow, bg = c.bg, gui = "bold"}, 39 | b = {fg = c.fg, bg = c.bg}, 40 | c = {fg = c.fg, bg = c.bg2}, 41 | x = {fg = c.fg, bg = c.bg}, 42 | y = {fg = c.yellow, bg = c.bg, gui = "bold"}, 43 | z = {fg = c.yellow, bg = c.bg, gui = "bold"} 44 | }, 45 | visual = { 46 | a = {fg = c.salmon, bg = c.bg, gui = "bold"}, 47 | b = {fg = c.fg, bg = c.bg}, 48 | c = {fg = c.fg, bg = c.bg2}, 49 | x = {fg = c.fg, bg = c.bg}, 50 | y = {fg = c.salmon, bg = c.bg, gui = "bold"}, 51 | z = {fg = c.salmon, bg = c.bg, gui = "bold"} 52 | } 53 | } 54 | 55 | return kimbox 56 | --------------------------------------------------------------------------------