Skip to content

🎨 Abyss.nvim is a (Neo)Vim colorscheme inspired by Abyss theme in Visual Studio Code.

License

Notifications You must be signed in to change notification settings

barrientosvctor/abyss.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

abyss.nvim

Unofficial port for (Neo)Vim inspired by the Abyss theme from Visual Studio Code.

This is the latest version of the old abyss.vim, now supporting Vim.

abyss_nvim_video.mp4

🎨 Themes

Abyss

Original Abyss theme inspired by VS Code

Abyss Boreal

A cool toned theme inspired by the Northern Lights and Minnesota North Woods

⚑️ Requeriments

πŸ“¦ Installation

You can use any package manager you like.

I highly recommend updating abyss.nvim when a release/tag comes out, since it is possible that there are development commits before that that can cause unexpected errors when using the colorscheme. To do this, make sure to specify a tag in your preferred package manager (if it supports it) before downloading the colorscheme.

Package manager Installation
packer.nvim
use {
    'barrientosvctor/abyss.nvim',
    run = function()
        local status, abyss = pcall(require, 'abyss')
        if not status then return end

        abyss.setup()
    end
}
lazy.nvim
{
    'barrientosvctor/abyss.nvim',
    lazy = false,
    priority = 1000,
    opts = {}
}
Vim-plug
Plug 'barrientosvctor/abyss.nvim'
Vundle.vim
Plugin 'barrientosvctor/abyss.nvim'
Vim's built-in package manager
mkdir -p ~/.vim/pack/colors/start
cd ~/.vim/pack/colors/start
git clone https://github.com/barrientosvctor/abyss.nvim.git

πŸ’» Setup

Abyss.nvim has options to customize your colorscheme instance according to your preferences.

These are the available options for the colorscheme:

require('abyss').setup({
    italic_comments = true, -- Toggle italic comments
    italic = false, -- Toggle italic for function names, keywords, strings and booleans
    bold = false, -- Toggle bold for function names, keywords and booleans
    transparent_background = false, -- Toggle transparency on neovim background
    treesitter = true -- Enable treesitter highlighting. No need to configuration. Default value: (Neovim = true), (Vim = false)
    palette = "abyss" -- Changes the Abyss palette. Available palettes's name on lua/abyss/palettes
    overrides = {} -- Override the default colorscheme highlight to a any else. Default value: nil
})

Vim Script with Lua

lua << EOF
require("abyss").setup {
    " your setup options
}
EOF

Overwriting highlights

You can be able to use all of nvim_set_hl() function properties to override the colorscheme colors.

local c = require('abyss.palettes.abyss')

require('abyss').setup({
    overrides = {
        String = { fg = c.heavyyellow, bold = true },
        -- or:
        ['String'] = { fg = "#ffeebb", bold = true },
        -- ...rest of highlight overrides
    }
})

πŸ”Œ Plugins supported

πŸš€ Usage

Vim Script

colorscheme abyss

Lua

vim.cmd.colorscheme 'abyss'

Lualine

Abyss.nvim also includes a lualine.nvim theme, you can use it setting up into lualine setup options:

require('lualine').setup {
    options = {
        theme = 'abyss' -- Available themes: "abyss", "abyss-boreal"
    }
}

Vim Airline

Abyss

Vim Script

let g:airline_theme = "abyss"

Lua

vim.g.airline_theme = "abyss"

Abyss Boreal

Vim Script

let g:airline_theme = "abyss_boreal"

Lua

vim.g.airline_theme = "abyss_boreal"

Vim Lightline

Abyss

Vim Script

let g:lightline = {'colorscheme': 'abyss'}

Lua

vim.g.lightline = {colorscheme: 'abyss'}

Abyss Boreal

Vim Script

let g:lightline = {'colorscheme': 'abyss_boreal'}

Lua

vim.g.lightline = {colorscheme: 'abyss_boreal'}

πŸ“ Notes

  • If you have Bufferline.nvim installed in your dotfiles, bufferline should be loaded after setting up abyss.nvim or it will highlight incorrectly. I'll provide you examples about this using Packer.nvim and Lazy.nvim
Click to see Lazy.nvim example
  • Abyss.nvim config
{
    'barrientosvctor/abyss.nvim',
    lazy = false,
    priority = 1000,
    opts = {}
}
  • Bufferline config
{
    'akinsho/bufferline.nvim',
    lazy = true,
    event = "UIEnter",
    -- ...rest of your config
}
Click to see Packer.nvim example
  • Bufferline config
use {
    'akinsho/bufferline.nvim',
    after = 'abyss.nvim',
    -- ...rest of your config
}

πŸ€— Acknowledgements