Software caps lock for Neovim.
Works in normal, insert and command modes. Normal mode commands, other buffers, and other applications
are unaffected (e.g. jk
mapped as Escape
in insert mode will work with caps lock enabled).
Especially useful if caps lock key is acting as another Ctrl
or Esc
.
Neovim 0.7.0+ required. Example via packer:
use("barklan/capslock.nvim")
require("capslock").setup()
vim.keymap.set({ "i", "c", "n" }, "<C-g>c", "<Plug>CapsLockToggle")
vim.keymap.set("i", "<C-l>", "<Plug>CapsLockToggle")
This maps <C-g>c
in insert, command and normal modes and <C-l>
in insert mode to toggle caps lock.
- When activated in insert or command mode it toggles temporary caps lock. It is automatically disabled after leaving insert mode or command line.
- When activated in normal mode, it toggles caps lock for both normal and insert modes and doesn't turn off automatically.
Use require("capslock").status_string
function as a status line component to
display [CAPS LOCK]
when caps lock is active.
require("lualine").setup({
sections = {
lualine_x = {
{ require("capslock").status_string },
},
},
})
Set the function above as a provider
in status line component.
- Inspired by tpope's vim-capslock.
- Unicode support enabled thanks to ustring library.