Skip to content

sfn101/lutos.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lutos.nvim

A Neovim plugin that adds a colored vertical bar to the left of the editor window, inspired by the VSCode Peacock extension. Perfect for visually distinguishing between different workspaces/projects.

lutos.mp4

Features

  • 🎨 18 color options including VSCode Peacock-inspired colors
  • 📂 Per-workspace persistence - colors are saved and restored per directory
  • 🔄 Dynamic updates - responds to text changes, scrolling, and window resizing
  • 🏗️ Hybrid architecture - combines statuscolumn + floating window for full coverage
  • 🚫 Non-interfering - preserves all diagnostic signs, LSP indicators, and folds
  • Efficient - single shared buffer for all floating windows

Installation

Using lazy.nvim

{
  "sfn101/lutos.nvim",
  dependencies = {
    "folke/which-key.nvim",
  },
  config = function()
    require("lutos").setup({
      bar_width = 2, -- Width of the colored bar (default: 2)
    })
  end,
}
use {
  "sfn101/lutos.nvim",
  requires = { "folke/which-key.nvim" },
  config = function()
    require("lutos").setup({
      bar_width = 2,
    })
  end,
}

Usage

Color Picker

Press <leader>wp to open the color picker menu and choose a color for your current workspace.

Available Colors

  • Angular Red
  • Azure Blue
  • JavaScript Yellow
  • Mandalorian Blue
  • Node Green
  • React Blue
  • Something Different
  • Svelte Orange
  • Vue Green
  • Red
  • Green
  • Yellow
  • Blue
  • Magenta
  • Orange
  • Purple
  • Pink
  • None (remove color)

Configuration

require("lutos").setup({
  bar_width = 2, -- Width of the colored bar in characters (default: 2)
})

How It Works

Hybrid Architecture

Lutos uses a two-layer architecture to provide full window height coverage without interfering with existing UI elements:

Layer 1 - Statuscolumn (for existing buffer content):

  • Wraps your existing statuscolumn with a colored bar prefix
  • Preserves all sign column functionality (diagnostics, LSP, folds, git signs)
  • No overlay conflicts - sits naturally to the left of all other elements

Layer 2 - Floating Window (for empty space below content):

  • Dynamically positioned below the last buffer line
  • Only appears when there's empty space in the window
  • Automatically adjusts as content changes, scrolls, or window resizes
  • Single shared buffer for efficiency across all windows

State Persistence

Colors are stored per workspace (directory) in ~/.local/share/nvim/lutos_state.json and automatically restored when you return to a workspace.

Requirements

Integration with Snacks.nvim

Lutos works seamlessly with snacks.nvim statuscolumn. If you're using Snacks, lutos will automatically wrap its statuscolumn output with the colored bar.

Credits

Inspired by the Peacock extension for VSCode.

License

MIT License - see LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages