A companion plugin for the paso cli
- Lua 100%
| lua/paso | ||
| README.md | ||
paso.nvim
Neovim companion plugin for paso - a terminal kanban board.
Automatically configures paso with a theme generated from your Neovim colorscheme, similar to how snacks.nvim integrates with lazygit.
Features
- Opens paso in a floating terminal window
- Auto-generates theme from your Neovim colorscheme
- Regenerates theme automatically on colorscheme change
- Supports custom theme overrides
Requirements
- Neovim >= 0.9.0
- snacks.nvim
- paso installed and in PATH
Installation
lazy.nvim
{
"thenoetrevino/paso.nvim",
dependencies = {
"folke/snacks.nvim",
},
opts = {
-- your paso.nvim configuration
},
}
Usage
Basic Commands
-- Open paso
require("paso").open()
-- Toggle paso (open if closed, close if open)
require("paso").toggle()
Keybindings
-- Example keybindings in your config
vim.keymap.set("n", "<leader>p", function() require("paso").toggle() end, { desc = "Toggle Paso" })
Configuration
Default configuration:
{
-- Auto-configure theme from colorscheme
configure = true,
-- Path to theme file
theme_path = vim.fn.stdpath("cache") .. "/paso-theme.yaml",
-- Theme mappings (Neovim highlight groups → paso colors)
theme = {
accent = { fg = "Special" },
create = { fg = "String" },
edit = { fg = "Function" },
delete = { fg = "DiagnosticError" },
column_border = { fg = "FloatBorder" },
task_border = { fg = "FloatBorder" },
task_background = { bg = "NormalFloat" },
selected_border = { fg = "MatchParen" },
selected_bg = { bg = "Visual" },
title = { fg = "Title" },
subtle = { fg = "Comment" },
normal = { fg = "Normal" },
info_fg = { fg = "DiagnosticInfo" },
info_bg = { bg = "NormalFloat" },
warning_fg = { fg = "DiagnosticWarn" },
warning_bg = { bg = "NormalFloat" },
error_fg = { fg = "DiagnosticError" },
error_bg = { bg = "NormalFloat" },
},
-- Window configuration (passed to snacks.terminal)
win = {
position = "float",
height = 0.9,
width = 0.9,
border = "rounded",
},
}
Custom Configuration
require("paso").open({
-- Override window size
win = {
height = 0.8,
width = 0.8,
},
-- Override specific theme colors
theme = {
accent = { fg = "DiagnosticHint" },
create = { fg = "DiagnosticOk" },
},
})
How It Works
- paso.nvim reads your Neovim colorscheme highlight groups
- Maps them to paso color fields (accent, create, edit, etc.)
- Writes a theme YAML file to
~/.cache/nvim/paso-theme.yaml - Sets
PASO_THEME_FILEenvironment variable before launching paso - paso reads and merges this theme file with your user config
License
MIT