Skip to content

Latest commit

 

History

312 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banner-light banner-dark

Bluloco.nvim

Overview

A fancy and sophisticated designer neovim theme built with lush.nvim. It features a much more comprehensive usage of syntax scopes and color consistency, with due regards to aesthetics, contrast and readability. There is a light and dark variant. Most popular plugins are also supported, see Plugins

This theme also works very good with blue light filters like Apple's Nightshift Mode or f.lux.

This is a port of the popular Visual Studio Code Themes Bluloco Light and Bluloco Dark

Support

If you like using this, please consider donating a little bit. It takes a lot of time to keep this updated with neovim and plugin updates. I want to keep bluloco a great experience for everybody and your help would be immensely motivating to keep me doing this. :)

Buy Me A Coffee PayPal Donate

Dark

dark

Light

light

Features

  • Auto switching light & dark style
  • Configurable transparency and italics
  • Exhaustive plugin support
  • Written in lua

Requirements

lush.nvim is required.

Installation

Install Bluloco with your favorite package manager.

vim.pack

vim.pack.add({
    'https://github.com/uloco/bluloco.nvim',
    'https://github.com/rktjmp/lush.nvim',
})
{
  'uloco/bluloco.nvim',
  lazy = false,
  priority = 1000,
  dependencies = { 'rktjmp/lush.nvim' },
  opts = {},
}

Usage

Note: The setup() function is optional. Call it before you set the colorscheme if you want to adjust the configuration.

vim.opt.termguicolors = true
vim.cmd('colorscheme bluloco')

You can also apply the style variant directly. These are especially helpful when switching in an already running vim session.

:colorscheme bluloco-dark
:colorscheme bluloco-light

Configuration

These are the default values:

require("bluloco").setup({
  style = "auto", -- "auto" | "dark" | "light"
  transparent = false,
  italics = false,
  terminal = vim.fn.has("gui_running") == 1, -- bluloco colors are enabled in gui terminals per default.
  guicursor = true,
  float_window = "default" -- "default" | "transparent"
})
Option Type Default Description
style "auto" | "dark" | "light" "auto" Select the variant. "auto" follows vim.o.background.
transparent boolean false Use the terminal background.
italics boolean false Use italics for keywords, comments, and markup attributes.
terminal boolean GUI: true; terminal: false Set builtin terminal colors.
guicursor boolean true Set a colored guicursor.
float_window "default" | "transparent" "default" Control float backgrounds with transparency.

style

There are three styles you can configure here: auto, dark and light. The auto setting is the default and will adjust automatically to your vim.o.background value. If you change this value during runtime, it will also adjust accordingly.

Note: The style value only applies if you set the theme with vim.cmd('colorscheme bluloco'). Setting a variant directly overrides it.

transparent

Disables the background and uses the default background of your terminal. Enable it if you want the terminal to be transparent. You still need to configure your terminal accordingly for light and dark backgrounds when switching often.

italics

Enables italics for keywords, comments and markup attributes.

terminal

Enables the bluloco colors in your integrated terminal. You most likely want to keep your terminal colors instead of overriding them if you are running neovim in a terminal. When you are running neovim inside a gui application this setting is enabled per default.

You can skip the terminal setting completely to have it disabled in terminals and enabled in gui neovim.

Note: Some terminals display bold text with the bright color variant. This option overrides that behavior in the integrated terminal. This behavior is not related to this theme. See the Neovim issue.

guicursor

Sets a guicursor to fix your terminal cursor and make it colorful (as intended). It is enabled by default. If you want to override this, make sure to set your :set guicursor after loading the theme or disable it completely.

float_window

Controls how floating windows look when transparent is enabled. The default keeps a solid float background for better contrast, while setting it to "transparent" will also make floating windows inherit your terminal background (useful if you prefer a fully transparent UI).

Plugin support

Currently supported (aka. tested) plugins:

Plugin showcase

You can see a lot of screenshots of themed plugins in the wiki page. No config needed, works out of the box.

Integrations

Lualine

Make sure your lualine settings are set to auto:

require('lualine').setup({
  options = {
    theme = 'auto'
  }
})

Switching light and dark with your OS

This themes light and dark variant are meant to be used during day and night. To make this easily possible I am using the auto-dark-mode.nvim plugin For a seamless integration make sure your bluloco.config.style is set to "auto". My auto-dark-mode.nvim config looks like this:

local auto_dark_mode = require('auto-dark-mode')

local function isAuto()
  return require('bluloco').config.style == 'auto'
end

auto_dark_mode.setup({
  update_interval = 1000,
  set_dark_mode = function()
    if isAuto() then
      vim.o.background = 'dark'
    end
  end,
  set_light_mode = function()
    if isAuto() then
      vim.o.background = 'light'
    end
  end
})

If you are also using lazygit as your git client, you might be interested in this wiki guide to set it up correctly with bluloco. Auto-dark light mode included.

Terminal colors

I've added a bunch of terminal themes for your terminal emulators. I've used the great iTerm-Color-Schemes repository for this, thanks @mbadolato!

They are located at terminal-themes/. Please follow your terminals installation guide in how to apply them.

Contributing

I'd be more than happy for any bugs you find and add an issue. Pull requests are warmly welcome especially for missing plugin support.

Releases

Sponsor this project

Packages

Used by

Contributors

Languages