# skift.nvim A clean, dark Neovim colorscheme with strong syntax contrast, tasteful UI accents, and built-in support for common plugins. ![Screenshot](screenshot.png) ## Features - Thoughtful palette built from HSL tokens - Consistent editor, Treesitter, and LSP highlight groups - Integrations for popular plugins (Telescope, cmp, blink.cmp, Neo-tree, GitSigns, and more) - Optional transparent backgrounds - Config hooks to override colors and highlight groups - Included lualine theme ## Requirements - Neovim `>= 0.8` ## Installation ### lazy.nvim ```lua { "https://codeberg.org/pnx/skift.nvim", lazy = false, priority = 1000, config = function() require("skift").setup({ transparent = false, bold = true, italic = true, italic_comments = true, }) vim.cmd.colorscheme("skift") end, } ``` ### packer.nvim ```lua use({ "https://codeberg.org/pnx/skift.nvim", config = function() require("skift").setup() vim.cmd.colorscheme("skift") end, }) ``` ## Configuration Default config: ```lua require("skift").setup({ transparent = false, bold = true, italic = true, italic_comments = true, on_colors = function(colors) -- colors.accent = "#7aa2f7" end, on_highlights = function(highlights, colors) -- highlights.CursorLine = { bg = colors.bg_elevated } end, }) ``` ## Usage ```vim :colorscheme skift ``` Lua equivalent: ```lua vim.cmd.colorscheme("skift") ``` ## Lualine Use the bundled lualine theme: ```lua require("lualine").setup({ options = { theme = "skift", }, }) ``` ## Cache `skift.nvim` caches resolved highlights for faster startup. If you are iterating on the theme and want to clear cache: ```lua require("skift").clear_cache() ``` ## Plugin Integrations Skift includes highlight definitions for: - GitSigns - Telescope - nvim-cmp - blink.cmp - indent-blankline (`Ibl*`) - which-key - Trouble - nvim-tree - Neo-tree - Lazy - Mason - Noice - nvim-notify - mini.nvim statusline groups - Snacks - Flash - Treesitter context - Dashboard/Alpha - render-markdown - Oil - fzf-lua ## Contributing Issues and pull requests are welcome.