From 5eda7770be54f222e27e87190a95847e6d0e2c8c Mon Sep 17 00:00:00 2001 From: Michal Hanus Date: Mon, 29 Dec 2025 19:02:55 +0100 Subject: nvim setup --- .config/nvim/lua/colorschemes.lua | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .config/nvim/lua/colorschemes.lua (limited to '.config/nvim/lua/colorschemes.lua') diff --git a/.config/nvim/lua/colorschemes.lua b/.config/nvim/lua/colorschemes.lua new file mode 100644 index 0000000..9618b4d --- /dev/null +++ b/.config/nvim/lua/colorschemes.lua @@ -0,0 +1,83 @@ +--- This module will load a random colorscheme on nvim startup process. + +local utils = require("utils") + +local M = {} + +-- Colorscheme to its directory name mapping, because colorscheme repo name is not necessarily +-- the same as the colorscheme name itself. +M.colorscheme_conf = { + onedark = function() + vim.cmd([[colorscheme onedark]]) + end, + edge = function() + vim.g.edge_enable_italic = 1 + vim.g.edge_better_performance = 1 + + vim.cmd([[colorscheme edge]]) + end, + sonokai = function() + vim.g.sonokai_enable_italic = 1 + vim.g.sonokai_better_performance = 1 + + vim.cmd([[colorscheme sonokai]]) + end, + gruvbox_material = function() + -- foreground option can be material, mix, or original + vim.g.gruvbox_material_foreground = "material" + --background option can be hard, medium, soft + vim.g.gruvbox_material_background = "soft" + vim.g.gruvbox_material_enable_italic = 1 + vim.g.gruvbox_material_better_performance = 1 + + vim.cmd([[colorscheme gruvbox-material]]) + end, + everforest = function() + vim.g.everforest_enable_italic = 1 + vim.g.everforest_better_performance = 1 + + vim.cmd([[colorscheme everforest]]) + end, + nightfox = function() + vim.cmd([[colorscheme nordfox]]) + end, + catppuccin = function() + -- available option: latte, frappe, macchiato, mocha + vim.g.catppuccin_flavour = "frappe" + require("catppuccin").setup() + + vim.cmd([[colorscheme catppuccin]]) + end, + onedarkpro = function() + -- set colorscheme after options + vim.cmd('colorscheme onedark_vivid') + end, + material = function() + vim.g.material_style = "oceanic" + vim.cmd('colorscheme material') + end, +} + +--- Use a random colorscheme from the pre-defined list of colorschemes. +M.rand_colorscheme = function() + local colorscheme = utils.rand_element(vim.tbl_keys(M.colorscheme_conf)) + + if not vim.tbl_contains(vim.tbl_keys(M.colorscheme_conf), colorscheme) then + local msg = "Invalid colorscheme: " .. colorscheme + vim.notify(msg, vim.log.levels.ERROR, { title = "nvim-config" }) + + return + end + + -- Load the colorscheme and its settings + M.colorscheme_conf[colorscheme]() + + if vim.g.logging_level == "debug" then + local msg = "Colorscheme: " .. colorscheme + + vim.notify(msg, vim.log.levels.DEBUG, { title = "nvim-config" }) + end +end + +-- Load a random colorscheme +M.rand_colorscheme() -- cgit v1.2.3