From 9b864a53b1655a02ffbc0e754b096ff85c46147b Mon Sep 17 00:00:00 2001 From: nnduc Date: Tue, 17 Feb 2026 21:43:19 +0700 Subject: [PATCH] lua nvim, change mod key --- i3/config | 2 +- nvim-server/init.lua | 83 ++++++++++++++++++++++++++++++++++++++++++++ sway/config | 2 +- 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 nvim-server/init.lua diff --git a/i3/config b/i3/config index 26a17d2..5237f5e 100644 --- a/i3/config +++ b/i3/config @@ -9,7 +9,7 @@ # # Please see https://i3wm.org/docs/userguide.html for a complete reference! -set $mod Mod1 +set $mod Mod4 set $wallpaper '/data/sync/images/wallpapers/suse.png' # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. diff --git a/nvim-server/init.lua b/nvim-server/init.lua new file mode 100644 index 0000000..486e7bd --- /dev/null +++ b/nvim-server/init.lua @@ -0,0 +1,83 @@ +-- Minimal server editor config +-- Launch with: NVIM_APPNAME=nvim-server nvim + +-------------------- Options -------------------- +vim.g.mapleader = "," +vim.opt.number = true +vim.opt.cursorline = true +vim.opt.expandtab = true +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.softtabstop = 4 +vim.opt.autoindent = true +vim.opt.smartindent = true +vim.opt.hlsearch = true +vim.opt.incsearch = true +vim.opt.ignorecase = true +vim.opt.smartcase = true +vim.opt.splitright = true +vim.opt.splitbelow = true +vim.opt.termguicolors = true +vim.opt.scrolloff = 8 +vim.opt.signcolumn = "no" +vim.opt.updatetime = 250 +vim.opt.undofile = true +vim.opt.clipboard = "unnamedplus" + +-------------------- Keymaps -------------------- +vim.keymap.set("n", "i", ":nohlsi", { silent = true }) +vim.keymap.set("n", "", ":w", { silent = true }) + +-- Window navigation +vim.keymap.set("n", "", "h") +vim.keymap.set("n", "", "j") +vim.keymap.set("n", "", "k") +vim.keymap.set("n", "", "l") + +-- Tab management +vim.keymap.set("n", "to", ":tabonly", { silent = true }) +vim.keymap.set("n", "o", ":only", { silent = true }) +vim.keymap.set("n", "", ":tabn", { silent = true }) +vim.keymap.set("n", "", ":tabp", { silent = true }) + + +-------------------- Netrw (built-in file browser) -------------------- +vim.g.netrw_banner = 0 +vim.g.netrw_liststyle = 3 +vim.keymap.set("n", "", ":Explore", { silent = true }) + +-------------------- Statusline (built-in) -------------------- +vim.opt.statusline = " %f %m%r%= %y %l:%c %p%% " + +-------------------- Bootstrap lazy.nvim -------------------- +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if vim.fn.isdirectory(lazypath) == 0 then + vim.fn.system({ + "git", "clone", "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + { "4ree/viml-surround", event = "VeryLazy" }, + { "numToStr/Comment.nvim", event = "VeryLazy", opts = {} }, + { + "junegunn/fzf.vim", + dependencies = { "junegunn/fzf" }, + keys = { + { "f", "Files", desc = "Find files" }, + { "b", "Buffers", desc = "Buffers" }, + { "r", "Rg", desc = "Ripgrep" }, + { "g", "GFiles", desc = "Git files" }, + }, + }, +}) + +-------------------- Grep (use ripgrep if available) -------------------- +if vim.fn.executable("rg") == 1 then + vim.opt.grepprg = "rg --vimgrep --smart-case" + vim.opt.grepformat = "%f:%l:%c:%m" +end diff --git a/sway/config b/sway/config index 8fd0694..6e28831 100644 --- a/sway/config +++ b/sway/config @@ -7,7 +7,7 @@ ### Variables # # Logo key. Use Mod1 for Alt. -set $mod Mod1 +set $mod Mod4 # Home row direction keys, like vim #set $left h #set $down j