Abyss.nvim
🎨 Abyss.nvim is a (Neo)Vim colorscheme inspired by Abyss theme in Visual Studio Code.
Install / Use
/learn @barrientosvctor/Abyss.nvimREADME
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.
https://github.com/barrientosvctor/abyss.nvim/assets/113469901/7d20f6f0-c438-4ac1-9838-7c1d49f412b9
🎨 Themes
Abyss
Original Abyss theme inspired by VS Code
<img align="center" src="https://github.com/barrientosvctor/abyss.nvim/blob/main/previews/abyss_python.png" width="85%"> <img align="center" src="https://github.com/barrientosvctor/abyss.nvim/blob/main/previews/abyss_go.png" width="85%">Abyss Boreal
A cool toned theme inspired by the Northern Lights and Minnesota North Woods
<img align="center" src="https://github.com/barrientosvctor/abyss.nvim/blob/main/previews/abyssboreal_python.png" width="85%"> <img align="center" src="https://github.com/barrientosvctor/abyss.nvim/blob/main/previews/abyssboreal_go.png" width="85%">⚡️ 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.
<table> <tr> <td> <b>Package manager</b> </td> <td> <b>Installation</b> </td> </tr> <!-- Packer.nvim --> </tr> <tr> <td> <a href="https://github.com/wbthomason/packer.nvim">packer.nvim</a> </td> <td>use {
'barrientosvctor/abyss.nvim',
run = function()
local status, abyss = pcall(require, 'abyss')
if not status then return end
abyss.setup()
end
}
</td>
</tr>
<!-- Lazy.nvim -->
</tr>
<tr>
<td> <a href="https://github.com/folke/lazy.nvim">lazy.nvim</a> </td>
<td>
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
}
</td>
</tr>
<!-- Vim-plug -->
</tr>
<tr>
<td> <a href="https://github.com/junegunn/vim-plug">Vim-plug</a> </td>
<td>
Plug 'barrientosvctor/abyss.nvim'
</td>
</tr>
<!-- Vundle.vim -->
</tr>
<tr>
<td> <a href="https://github.com/VundleVim/Vundle.vim">Vundle.vim</a> </td>
<td>
Plugin 'barrientosvctor/abyss.nvim'
</td>
</tr>
<!-- Vim pack -->
</tr>
<tr>
<td> Vim's built-in package manager </td>
<td>
mkdir -p ~/.vim/pack/colors/start
cd ~/.vim/pack/colors/start
git clone https://github.com/barrientosvctor/abyss.nvim.git
</td>
</tr>
</table>
💻 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
- TreeSitter
- Bufferline.nvim
- LSP Diagnostics
- Telescope.nvim
- nvim-cmp
- LspSaga
- Git Signs
- Git Gutter
- nvim-tree.lua
- NERDTree
- Neotree.nvim
- Indent-Blankline.nvim
- nvim-notify
- Dashboard
- Which-key
- Aerial
🚀 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
- Abyss.nvim config
{
'barrientosvctor/abyss.nvim',
lazy = false,
priority = 1000,
opts = {}
}
- Bufferline config
{
'akinsho/bufferline.nvim',
lazy = true,
event = "UIEnter",
-- ...rest of your config
}
</details>
<details>
<summary>Click to see Packer.nvim example</summary>
- Bufferline config
use {
'akinsho/bufferline.nvim',
after = 'abyss.nvim',
-- ...rest of your config
}
</details>
🤗 Acknowledgements
- nightfox -> codebase for vim support
