steven-liou / capslock.nvim

Software caps lock for Neovim.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

capslock.nvim

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.

Installation

Neovim 0.7.0+ required. Example via packer:

use("barklan/capslock.nvim")

Setup & Usage

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.

Statusline integration

Use require("capslock").status_string function as a status line component to display [CAPS LOCK] when caps lock is active.

lualine

require("lualine").setup({
    sections = {
        lualine_x = {
            { require("capslock").status_string },
        },
    },
})

feline

Set the function above as a provider in status line component.

Related

About

Software caps lock for Neovim.

License:MIT License


Languages

Language:Lua 99.8%Language:Shell 0.2%Language:Vim Script 0.0%