summaryrefslogtreecommitdiff
path: root/config/nvim
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-05 16:20:06 +0300
committerIgor Soarez <igor@soarez.org>2026-10-05 16:20:06 +0300
commit09fd7f0294f975f53f72bc3551099f968341419e (patch)
tree33e2924546021f29de050ee9103a9d081a82f696 /config/nvim
parent611dfd90d4e523984a78728ebfee033e4c16b37d (diff)
Caps Lock no longer types <F22> into Neovim
Caps Lock sends F20, and the terminal passes it on as well as Wispr Flow seeing it. tmux reads it as S-F10 and hands the pane ESC[21;2~, which Neovim decodes as <F22> and, with nothing mapped to it, types out as text -- once per repeat while the key is held. Dropped in both places, each enough alone: Neovim maps <F20> and <F22> to nothing, terminal mode included so a :terminal does not pass it to its shell, and tmux binds S-F10 to an empty command, which also swallows a real Shift+F10 that nothing here uses. The empty binding loads on tmux 3.5a and 3.4. From change request cee596.
Diffstat (limited to 'config/nvim')
-rw-r--r--config/nvim/init.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
index 3f094e8..89ab1b8 100644
--- a/config/nvim/init.lua
+++ b/config/nvim/init.lua
@@ -242,6 +242,19 @@ if not vim.g.lazy_bootstrapped then
end
------------------------------------------------------
+---- Caps Lock key -----------------------------------
+------------------------------------------------------
+
+-- Caps Lock sends F20 (hammerspoon), which reaches Neovim as F22 through tmux.
+-- Neovim types the name of a function key nothing maps, so holding it filled
+-- the buffer with <F22>. Wispr Flow reads the key before the terminal does, so
+-- nothing is lost by dropping it here. Terminal mode too, or holding it in a
+-- :terminal would send the key on to the shell running there.
+for _, key in ipairs({ "<F20>", "<F22>" }) do
+ vim.keymap.set({ "n", "x", "s", "o", "i", "c", "t" }, key, "<Nop>")
+end
+
+------------------------------------------------------
---- Terminal ----------------------------------------
------------------------------------------------------