From 6fc7f49449cb237e1aa37eb1025461fe3ea39589 Mon Sep 17 00:00:00 2001 From: seraphim <18ycm9tx@anonaddy.me> Date: Thu, 27 Aug 2026 11:50:43 +0700 Subject: . --- .config/nvim/init.lua | 3 +++ .config/nvim/lua/config/keymaps.lua | 8 ++++++++ .config/nvim/lua/config/options.lua | 19 ++++++++++++++++++- .config/nvim/lua/config/plugins.lua | 4 ++++ .config/nvim/nvim-pack-lock.json | 4 ++++ 5 files changed, 37 insertions(+), 1 deletion(-) (limited to '.config/nvim') diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index e0ef470..de075d5 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -6,3 +6,6 @@ vim.api.nvim_create_autocmd("FocusGained", { require("config.keymaps") require("config.options") require("config.plugins") + +-- must be last: translates all registered mappings (incl. built-ins) +require('langmapper').automapping({ global = true, buffer = true }) diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua index e2987bc..0d482da 100755 --- a/.config/nvim/lua/config/keymaps.lua +++ b/.config/nvim/lua/config/keymaps.lua @@ -11,3 +11,11 @@ vim.keymap.set("v", "K", ":m '<-2gv=gv", { desc = "moves lines up in visual vim.keymap.set("n", "al", "term", { desc = "Open terminal" }) vim.keymap.set("n", "f", vim.lsp.buf.format) + +-- universal clipboard hotkeys (niri sends these synthesized to the focused app) +-- super+c (Ctrl+Insert): copy selection +vim.keymap.set({"n", "v"}, "", '"+y', { desc = "Copy selection to system clipboard" }) +-- super+v (Shift+Insert): paste +vim.keymap.set({"n", "i", "v"}, "", '"+p', { desc = "Paste from system clipboard" }) +-- super+x (Shift+Delete): cut (delete selection into system clipboard) +vim.keymap.set({"v"}, "", '"+d', { desc = "Cut selection to system clipboard" }) diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua index dac7c76..b9d7e90 100755 --- a/.config/nvim/lua/config/options.lua +++ b/.config/nvim/lua/config/options.lua @@ -2,8 +2,9 @@ vim.cmd("let g:netrw_banner = 0") vim.cmd("set termguicolors") vim.opt.guicursor = "" +vim.opt.clipboard = "unnamedplus" vim.opt.nu = true -vim.opt.relativenumber = false +vim.opt.relativenumber = true vim.opt.tabstop = 2 vim.opt.softtabstop = 2 @@ -37,4 +38,20 @@ vim.opt.hlsearch = true vim.opt.mouse = "a" vim.g.editorconfig = true +-- Russian layout: base layer so QWERTY motions work while Ru is active +-- (langmapper.nvim handles translated *mappings* on top of this) +do + local function escape(str) + return vim.fn.escape(str, [[;,."|\]]) + end + local en = [[`qwertyuiop[]asdfghjkl;'zxcvbnm]] + local ru = [[ёйцукенгшщзхъфывапролджэячсмить]] + local en_shift = [[~QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>]] + local ru_shift = [[ËЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ]] + vim.opt.langmap = vim.fn.join({ + escape(ru_shift) .. ";" .. escape(en_shift), + escape(ru) .. ";" .. escape(en), + }, ",") +end + vim.g.markdown_folding = 1 diff --git a/.config/nvim/lua/config/plugins.lua b/.config/nvim/lua/config/plugins.lua index 464a5ae..0cd74b2 100644 --- a/.config/nvim/lua/config/plugins.lua +++ b/.config/nvim/lua/config/plugins.lua @@ -27,8 +27,12 @@ vim.pack.add { 'https://github.com/antosha417/nvim-lsp-file-operations', 'https://github.com/nvim-telescope/telescope-ui-select.nvim', 'https://github.com/MeanderingProgrammer/render-markdown.nvim', + 'https://github.com/Wansmer/langmapper.nvim', } +-- langmapper: translates registered mappings so they work while Ru is active +require('langmapper').setup() + -- vlang --vim.lsp.config.vlang.setup({}) diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json index dc69b9a..dae1c4d 100644 --- a/.config/nvim/nvim-pack-lock.json +++ b/.config/nvim/nvim-pack-lock.json @@ -16,6 +16,10 @@ "rev": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3", "src": "https://github.com/thePrimeagen/harpoon" }, + "langmapper.nvim": { + "rev": "49462fd9f4f33cf8cfbaa779ba07d3c0b255cc06", + "src": "https://github.com/Wansmer/langmapper.nvim" + }, "lualine.nvim": { "rev": "47f91c416daef12db467145e16bed5bbfe00add8", "src": "https://github.com/nvim-lualine/lualine.nvim" -- cgit v1.2.3