Giter Club home page Giter Club logo

karma.nvim's Introduction

๐Ÿ™ Karma

A dark and light Neovim theme written in Lua ported from the Visual Studio Code Karma theme.

Much of Lua util and color assigning is inspired from NightFox.nvim and tokyonight.nvim

this theme is not as polished as the OG karma in vscode, there's a lot of stuff that will probably change over time. I'd appreciate any help I can get.

Dark Karma

DarkKarma_Screenshot DarkKarma_Screenshot

Light Karma

LightKarma_Screenshot LightKarma_Screenshot

โœจ Features

  • supports the latest Neovim 5.0 features like TreeSitter and LSP
  • minimal inactive statusline
  • vim terminal colors
  • darker background for sidebar-like windows
  • lualine theme

Plugin Support

โšก๏ธ Requirements

  • Neovim >= 0.5.0

๐Ÿ“ฆ Installation

Install the theme with your preferred package manager:

vim-plug

Plug 'amitchaudhari9121/karma.nvim', { 'branch': 'main' }

packer

use 'amitchaudhari9121/karma.nvim'

๐Ÿš€ Usage

Enable the colorscheme:

" Enable karma in Vim Script
colorscheme karma
-- Enable karma colorscheme in lua
vim.cmd[[colorscheme karma]]

To enable the Karma theme for Lualine, simply specify it in your lualine settings:

require('lualine').setup {
  options = {
    -- ... your lualine config
    theme = 'karma'
    -- ... your lualine config
  }
}

To enable the karma colorscheme for lightline:

" Vim Script
let g:lightline = {'colorscheme': 'karma'}

โ—๏ธ Note: if you are using tmux or similar multiplexers , please make sure that you add these for a color accurate experience of karma.nvim

replace XXX with the output of echo $TERM

set-option -sa terminal-overrides ',XXX:RGB' # newer versions of tmux
set-option -ga terminal-overrides ',XXX:Tc'  # older versions of tmux 

๐ŸŽจ Palette

Karma colorPalette

โš™๏ธ Configurationn

โ—๏ธ configuration needs to be set BEFORE loading the color scheme with colorscheme karma

The theme comes in two styles, a darker variant night and day.

The day style will be used if:

  • vim.g.karma_syle == "day"
  • vim.o.background == "light"
Option Default Description
karma_style "storm" The theme comes in two styles a darker variant night and day.
karma_terminal_colors true Configure the colors used when opening a :terminal in Neovim
karma_italic_comments true Make comments italic
karma_italic_keywords true Make keywords italic
karma_italic_functions false Make functions italic
karma_italic_variables false Make variables and identifiers italic
karma_transparent false Enable this to disable setting the background color
karma_hide_inactive_statusline false Enabling this option, will hide inactive statuslines and replace them with a thin border instead. Should work with the standard StatusLine and LuaLine.
karma_sidebars {} Set a darker background on sidebar-like windows. For example: ["qf", "vista_kind", "terminal", "packer"]
karma_transparent_sidebar false Sidebar like windows like NvimTree get a transparent background
karma_dark_sidebar true Sidebar like windows like NvimTree get a darker background
karma_dark_float true Float windows like the lsp diagnostics windows get a darker background.
karma_colors {} You can override specific color groups to use other groups or a hex color
karma_day_brightness 0.3 Adjusts the brightness of the colors of the Day style. Number between 0 and 1, from dull to vibrant colors
karma_lualine_bold false When true, section headers in the lualine theme will be bold
-- Example config in Lua
vim.g.karma_style = "night"
vim.g.karma_italic_functions = true
vim.g.karma_sidebars = { "qf", "vista_kind", "terminal", "packer" }

-- Change the "hint" color to the "yellow2" color, and make the "error" color bright red
vim.g.karma_colors = { hint = "yellow2", error = "#ff0000" }

-- Load the colorscheme
vim.cmd[[colorscheme karma]]
" Example config in VimScript
let g:karma_style = "night"
let g:karma_italic_functions = 1
let g:karma_sidebars = [ "qf", "vista_kind", "terminal", "packer" ]

" Change the "hint" color to the "yellow2" color, and make the "error" color bright red
let g:karma_colors = {
  \ 'hint': 'yellow2',
  \ 'error': '#ff0000'
\ }

" Load the colorscheme
colorscheme karma

Making undercurls work properly in Tmux

To have undercurls show up and in color, add the following to your Tmux config file:

# Undercurl
set -g default-terminal "${TERM}"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'  # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'  # underscore colours - needs tmux-3.0

๐Ÿ”ฅ Contributing

Pull requests are welcome.

I know this theme is not as polished right now as it can be, I can't test the theme on every terminal I know of, so you are encouraged to create and file an issue about any problem you've faced

karma.nvim's People

Contributors

amit-chaudhari1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.