keybars Pro in Neovim: builds and errors on the keyboard, Focus and typing speed in the statusline
- Lua 99%
- Makefile 1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| lua/keybars | ||
| tests | ||
| .busted | ||
| .luacheckrc | ||
| .stylua.toml | ||
| CLAUDE.md | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
keybars.nvim
keybars Pro in Neovim: your editor's work on the keyboard, and the keyboard's state in your statusline.
:KeybarsRun make testruns a command throughkeybars-pro run, so the keyboard showsbuild.running, thenbuild.passedorbuild.failed(the marketplace's CI pack plays them), and a failure's output opens in the quickfix list.:KeybarsMarket [words]browses the marketplace in a picker: show an item, install it, or remove it if it's installed.:KeybarsFocus [start|stop|status]drives keybars Pro's Focus timer.:KeybarsLight top-row red -effect pulseand:KeybarsClearlight and clear keys, askeybars-pro lightandcleardo.require("keybars").status()is a statusline component:🎯12m · 74 wpmwhile Focus or Typing runs, else"". It follows onekeybars-pro watchfor the session, so it's cheap on every redraw.- With
diagnostics = true, a key holds red while any loaded buffer has errors, and clears when they're fixed.
Everything goes through the keybars-pro
command, so it works on any keyboard keybars Pro drives. With
herdr, herdr-keybars
puts your agents and pull requests on the keyboard too.
requirements
- Neovim ≥ 0.11
- keybars Pro running, with its command installed: App settings, Command line, Install the command-line tool
install
return {
"jwarykowski/keybars.nvim",
cmd = { "KeybarsRun", "KeybarsMarket", "KeybarsFocus", "KeybarsLight", "KeybarsClear" },
keys = {
{ "<leader>kr", ":KeybarsRun ", desc = "keybars: run a command" },
{ "<leader>km", "<cmd>KeybarsMarket<cr>", desc = "keybars: marketplace" },
{ "<leader>kf", "<cmd>KeybarsFocus<cr>", desc = "keybars: start Focus" },
},
opts = {},
}
Other plugin managers: add the repo and call require("keybars").setup().
configuration
require("keybars").setup({
cmd = "keybars-pro", -- the command, if it isn't on $PATH
run_name = "build", -- :KeybarsRun's events: <name>.running, .passed, .failed
diagnostics = false, -- hold a key while there are errors
diagnostics_key = "esc", -- as keybars-pro light names keys: esc, top-right, r2c1...
diagnostics_colour = "red",
statusline = { focus = true, typing = true },
})
With lualine:
sections = {
lualine_x = { function() return require("keybars").status() end, "filetype" },
},
:checkhealth keybars checks keybars-pro is there and the app answers.
development
make fmt # stylua
make lint # stylua --check + luacheck
make test # busted (specs run under Neovim via nlua)
make check # lint + test