From 6abeaadbe4cea91eb444cf23241b7f0320f2dc33 Mon Sep 17 00:00:00 2001 From: steven-na Date: Sat, 11 Jul 2026 00:27:47 -0700 Subject: Lots of changes --- arch/bigvim/.config/bigvim/lazy-lock.json | 9 +- arch/bigvim/.config/bigvim/lua/keymaps.lua | 8 +- .../.config/bigvim/lua/plugins/actions_preview.lua | 11 +++ arch/bigvim/.config/bigvim/lua/plugins/editor.lua | 46 +++++------ arch/bigvim/.config/bigvim/lua/plugins/linting.lua | 34 +++++++- arch/bigvim/.config/bigvim/lua/plugins/lsp.lua | 1 - arch/bigvim/.config/bigvim/lua/plugins/mason.lua | 5 ++ .../.config/bigvim/lua/plugins/multicursor.lua | 84 +++++++++++++++++++ .../.config/bigvim/lua/plugins/treesitter.lua | 91 +++++++++++++++------ .../bigvim/.config/bigvim/lua/plugins/whichkey.lua | 1 + arch/fish/.config/fish/conf.d/aliases.fish | 4 +- arch/fish/.config/fish/config.fish | 10 +++ arch/fish/.config/fish/fish_variables | 2 +- arch/fish/.config/fish/functions/vims.fish | 2 +- arch/ghostty/.config/ghostty/config | 3 + arch/hyprland/.config/hypr/hyprland.conf | 1 + arch/lightvim/.config/lightvim/lua/plugins.lua | 2 + arch/scripts/.local/bin/Haifufu | Bin 0 -> 21888 bytes arch/scripts/.local/bin/seshc.sh | 19 +++++ arch/scripts/.local/bin/tmux-restore.sh | 8 ++ arch/scripts/.local/bin/vesktop | 3 + arch/tmux/.config/tmux/tmux.conf | 4 + 22 files changed, 285 insertions(+), 63 deletions(-) create mode 100644 arch/bigvim/.config/bigvim/lua/plugins/actions_preview.lua create mode 100644 arch/bigvim/.config/bigvim/lua/plugins/mason.lua create mode 100644 arch/bigvim/.config/bigvim/lua/plugins/multicursor.lua create mode 100755 arch/scripts/.local/bin/Haifufu create mode 100644 arch/scripts/.local/bin/seshc.sh create mode 100644 arch/scripts/.local/bin/tmux-restore.sh create mode 100755 arch/scripts/.local/bin/vesktop diff --git a/arch/bigvim/.config/bigvim/lazy-lock.json b/arch/bigvim/.config/bigvim/lazy-lock.json index fdd24c3..e2cdb07 100644 --- a/arch/bigvim/.config/bigvim/lazy-lock.json +++ b/arch/bigvim/.config/bigvim/lazy-lock.json @@ -1,5 +1,6 @@ { "LuaSnip": { "branch": "master", "commit": "a62e1083a3cfe8b6b206e7d3d33a51091df25357" }, + "actions-preview.nvim": { "branch": "master", "commit": "0ac9c2aa3cfc8c885321c0862b50b6b1c3392405" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "conform.nvim": { "branch": "master", "commit": "dca1a190aa85f9065979ef35802fb77131911106" }, @@ -7,19 +8,19 @@ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "fzf-lua": { "branch": "main", "commit": "b437bafc981a180d609bb4092c56ce8999f7a2c4" }, "gitsigns.nvim": { "branch": "main", "commit": "6d808f99bd63303646794406e270bd553ad7792e" }, - "hardtime.nvim": { "branch": "main", "commit": "b4e431934af1fe224a3a801f632c008278cb7628" }, - "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, "leap.nvim": { "branch": "main", "commit": "156c71aabb68d520c6269db4103c8e5580e3ea67" }, "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" }, - "mini.animate": { "branch": "main", "commit": "0365de8b69331c25d0d0d7573407a7dc7719e578" }, + "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, "mini.base16": { "branch": "main", "commit": "800f107b27a00978b0dadd672d6da21a5b12fa9a" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "multicursor.nvim": { "branch": "main", "commit": "704b99f10a72cc05d370cfeb294ff83412a8ab55" }, "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, "nvim-lint": { "branch": "master", "commit": "eab58b48eb11d7745c11c505e0f3057165902461" }, "nvim-lspconfig": { "branch": "master", "commit": "31026a13eefb20681124706a79fc1df6bf11ab27" }, "nvim-surround": { "branch": "main", "commit": "61319d4bd1c5e336e197defa15bd104c51f0fb29" }, "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" }, "nvim-ufo": { "branch": "main", "commit": "ab3eb124062422d276fae49e0dd63b3ad1062cfc" }, "nvim-web-devicons": { "branch": "master", "commit": "4fc505ac7bd7692824a142e96e5f529c133862f8" }, "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, diff --git a/arch/bigvim/.config/bigvim/lua/keymaps.lua b/arch/bigvim/.config/bigvim/lua/keymaps.lua index 2a38a95..a6779b0 100644 --- a/arch/bigvim/.config/bigvim/lua/keymaps.lua +++ b/arch/bigvim/.config/bigvim/lua/keymaps.lua @@ -31,10 +31,10 @@ map("n", "se", "=", { desc = "Equal splits" }) map("n", "sx", "close", { desc = "Close split" }) -- Move lines -map("n", "", "m .+1==", { desc = "Move line down" }) -map("n", "", "m .-2==", { desc = "Move line up" }) -map("v", "", ":m '>+1gv=gv", { desc = "Move selection down" }) -map("v", "", ":m '<-2gv=gv", { desc = "Move selection up" }) +map("n", "", "m .+1==", { desc = "Move line down" }) +map("n", "", "m .-2==", { desc = "Move line up" }) +map("v", "", ":m '>+1gv=gv", { desc = "Move selection down" }) +map("v", "", ":m '<-2gv=gv", { desc = "Move selection up" }) -- Stay in visual after indent map("v", "<", "ca", + function() require("actions-preview").code_actions() end, + mode = { "n", "v" }, + desc = "Code action", + }, + }, +} diff --git a/arch/bigvim/.config/bigvim/lua/plugins/editor.lua b/arch/bigvim/.config/bigvim/lua/plugins/editor.lua index a6ec0e0..8e1a3c5 100644 --- a/arch/bigvim/.config/bigvim/lua/plugins/editor.lua +++ b/arch/bigvim/.config/bigvim/lua/plugins/editor.lua @@ -7,29 +7,6 @@ return { { "S", "(leap-from-window)", mode = { "n", "o" }, desc = "Leap from window" }, }, }, - -- Enforce good vim habits - { - "m4xshen/hardtime.nvim", - event = "VeryLazy", - dependencies = { "MunifTanjim/nui.nvim" }, - opts = { - max_count = 4, - -- Remove arrows from disabled (completely blocked) and add to - -- restricted (blocked after max_count, same as hjkl) - disabled_keys = { - [""] = {}, - [""] = {}, - [""] = {}, - [""] = {}, - }, - restricted_keys = { - [""] = { "n", "x" }, - [""] = { "n", "x" }, - [""] = { "n", "x" }, - [""] = { "n", "x" }, - }, - }, - }, -- Auto-close brackets/quotes { "windwp/nvim-autopairs", @@ -63,11 +40,30 @@ return { end, }, }, - -- Surround text objects: ys, ds, cs + -- Surround text objects (gz* keymaps) { "kylechui/nvim-surround", version = "*", event = "VeryLazy", - opts = {}, + init = function() + vim.g.nvim_surround_no_insert_mappings = true + vim.g.nvim_surround_no_normal_mappings = true + vim.g.nvim_surround_no_visual_mappings = true + end, + config = function() + require("nvim-surround").setup({}) + local map = vim.keymap.set + map("i", "z", "(nvim-surround-insert)", { desc = "Surround (insert)" }) + map("i", "Z", "(nvim-surround-insert-line)", { desc = "Surround line (insert)" }) + map("n", "gza", "(nvim-surround-normal)", { desc = "Add surround" }) + map("n", "gzaa", "(nvim-surround-normal-cur)", { desc = "Add surround (curline)" }) + map("n", "gzA", "(nvim-surround-normal-line)", { desc = "Add surround (linewise)" }) + map("n", "gzAA", "(nvim-surround-normal-cur-line)", { desc = "Add surround line (cur)" }) + map("n", "gzd", "(nvim-surround-delete)", { desc = "Delete surround" }) + map("n", "gzc", "(nvim-surround-change)", { desc = "Change surround" }) + map("n", "gzC", "(nvim-surround-change-line)", { desc = "Change surround (linewise)" }) + map("x", "gz", "(nvim-surround-visual)", { desc = "Surround selection" }) + map("x", "gZ", "(nvim-surround-visual-line)", { desc = "Surround selection (linewise)" }) + end, }, } diff --git a/arch/bigvim/.config/bigvim/lua/plugins/linting.lua b/arch/bigvim/.config/bigvim/lua/plugins/linting.lua index bbbeaa7..a53af9f 100644 --- a/arch/bigvim/.config/bigvim/lua/plugins/linting.lua +++ b/arch/bigvim/.config/bigvim/lua/plugins/linting.lua @@ -2,8 +2,40 @@ return { "mfussenegger/nvim-lint", event = { "BufReadPost", "BufWritePost", "InsertLeave" }, config = function() + -- local cppcheck = require("lint").linters.cppcheck + -- + -- -- Let nvim-lint append the current file normally. + -- cppcheck.append_fname = true + -- + -- cppcheck.args = { + -- "--enable=warning,style,performance,information", + -- function() + -- -- Detect language from the actual file extension, not + -- -- vim.bo.filetype -- Neovim's heuristic for ambiguous .h + -- -- files often resolves to "cpp" regardless of content. + -- local bufname = vim.api.nvim_buf_get_name(0) + -- local ext = bufname:match("%.([^.]+)$") or "" + -- local cpp_exts = { cpp = true, cc = true, cxx = true, hpp = true, hh = true, hxx = true } + -- if cpp_exts[ext] then + -- return "--language=c++" + -- end + -- return "--language=c" + -- end, + -- "--inline-suppr", + -- "--quiet", + -- "--suppress=missingIncludeSystem", + -- "--suppress=unmatchedSuppression", + -- "--suppress=checkersReport", + -- function() + -- if vim.fn.isdirectory("build") == 1 then + -- return "--cppcheck-build-dir=build" + -- end + -- end, + -- "--template={file}:{line}:{column}: [{id}] {severity}: {message}", + -- } + require("lint").linters_by_ft = { - c = { "cppcheck" }, + -- c = { "cppcheck" }, cpp = { "cppcheck" }, python = { "ruff" }, } diff --git a/arch/bigvim/.config/bigvim/lua/plugins/lsp.lua b/arch/bigvim/.config/bigvim/lua/plugins/lsp.lua index 76566d1..b933650 100644 --- a/arch/bigvim/.config/bigvim/lua/plugins/lsp.lua +++ b/arch/bigvim/.config/bigvim/lua/plugins/lsp.lua @@ -68,7 +68,6 @@ return { map("gI", vim.lsp.buf.implementation, "Goto implementation") map("K", vim.lsp.buf.hover, "Hover docs") map("rn", vim.lsp.buf.rename, "Rename") - map("ca", vim.lsp.buf.code_action, "Code action") map("[d", vim.diagnostic.goto_prev, "Prev diagnostic") map("]d", vim.diagnostic.goto_next, "Next diagnostic") map("e", vim.diagnostic.open_float, "Show diagnostic") diff --git a/arch/bigvim/.config/bigvim/lua/plugins/mason.lua b/arch/bigvim/.config/bigvim/lua/plugins/mason.lua new file mode 100644 index 0000000..10fafd9 --- /dev/null +++ b/arch/bigvim/.config/bigvim/lua/plugins/mason.lua @@ -0,0 +1,5 @@ +return { + "williamboman/mason.nvim", + cmd = { "Mason", "MasonInstall", "MasonUninstall", "MasonUpdate", "MasonLog" }, + opts = {}, +} diff --git a/arch/bigvim/.config/bigvim/lua/plugins/multicursor.lua b/arch/bigvim/.config/bigvim/lua/plugins/multicursor.lua new file mode 100644 index 0000000..2ee4954 --- /dev/null +++ b/arch/bigvim/.config/bigvim/lua/plugins/multicursor.lua @@ -0,0 +1,84 @@ +return { + "jake-stewart/multicursor.nvim", + event = "VeryLazy", + config = function() + local mc = require("multicursor-nvim") + mc.setup() + local nv = { "n", "v" } + + -- Bind everything via a function so we can re-apply per-buffer + -- (oil buffers set their own buffer-local maps that would otherwise + -- shadow these globals). + local function bind(buf) + local opts_base = buf and { buffer = buf } or {} + local function set(mode, lhs, rhs, opts) + local o = vim.tbl_extend("force", opts_base, opts or {}) + vim.keymap.set(mode, lhs, rhs, o) + end + + -- Adding cursors (Alt+Shift+arrow — Ctrl+Shift+arrow is move-line) + set(nv, "", function() mc.lineAddCursor(1) end, { desc = "Add cursor down" }) + set(nv, "", function() mc.lineAddCursor(-1) end, { desc = "Add cursor up" }) + + -- Skipping (advance without dropping a cursor) + set(nv, "m", function() mc.lineSkipCursor(1) end, { desc = "Skip line down" }) + set(nv, "m", function() mc.lineSkipCursor(-1) end, { desc = "Skip line up" }) + + -- Match-based add / skip + set(nv, "mn", function() mc.matchAddCursor(1) end, { desc = "Add cursor: next match" }) + set(nv, "mp", function() mc.matchAddCursor(-1) end, { desc = "Add cursor: prev match" }) + set(nv, "ms", function() mc.matchSkipCursor(1) end, { desc = "Skip match, advance" }) + set(nv, "mA", mc.matchAllAddCursors, { desc = "Cursors for all matches" }) + + -- Repeat keys: ;/, add or skip when cursors active; default f/F/t/T otherwise + set("n", ";", function() + if mc.hasCursors() then mc.matchAddCursor(1) else vim.cmd("normal! ;") end + end, { desc = "Repeat f/F/t/T · next-match cursor when active" }) + set("n", ",", function() + if mc.hasCursors() then mc.matchSkipCursor(1) else vim.cmd("normal! ,") end + end, { desc = "Reverse f/F/t/T · skip-match when active" }) + + -- Manual toggle / delete + set(nv, "mt", mc.toggleCursor, { desc = "Toggle cursor here" }) + set(nv, "mx", mc.deleteCursor, { desc = "Delete cursor under main" }) + + -- Rotate / jump main focus through cursor list (arrows) + set(nv, "m", mc.nextCursor, { desc = "Rotate to next cursor" }) + set(nv, "m", mc.prevCursor, { desc = "Rotate to prev cursor" }) + set(nv, "mF", mc.firstCursor, { desc = "Jump to first cursor" }) + set(nv, "mL", mc.lastCursor, { desc = "Jump to last cursor" }) + + -- Bulk ops + set(nv, "m=", mc.alignCursors, { desc = "Align cursors" }) + set(nv, "mu", mc.restoreCursors, { desc = "Restore last cursors" }) + set(nv, "md", function() + if mc.cursorsEnabled() then mc.disableCursors() else mc.enableCursors() end + end, { desc = "Freeze/unfreeze cursors" }) + set(nv, "m.", function() mc.transposeCursors(1) end, { desc = "Transpose forward" }) + set(nv, "m,", function() mc.transposeCursors(-1) end, { desc = "Transpose back" }) + + -- Pattern-based (visual mode — needs a selection) + set("x", "m/", mc.matchCursors, { desc = "Cursors at regex matches" }) + set("x", "mS", mc.splitCursors, { desc = "Split selection by pattern" }) + + -- Esc: re-enable / clear / nohlsearch + set("n", "", function() + if not mc.cursorsEnabled() then + mc.enableCursors() + elseif mc.hasCursors() then + mc.clearCursors() + else + vim.cmd("nohlsearch") + end + end) + end + + bind(nil) + + -- Re-bind buffer-local for oil so its keymaps don't shadow ours. + vim.api.nvim_create_autocmd("FileType", { + pattern = "oil", + callback = function(args) bind(args.buf) end, + }) + end, +} diff --git a/arch/bigvim/.config/bigvim/lua/plugins/treesitter.lua b/arch/bigvim/.config/bigvim/lua/plugins/treesitter.lua index 348eaba..97dfa42 100644 --- a/arch/bigvim/.config/bigvim/lua/plugins/treesitter.lua +++ b/arch/bigvim/.config/bigvim/lua/plugins/treesitter.lua @@ -1,31 +1,72 @@ return { "nvim-treesitter/nvim-treesitter", + branch = "main", + lazy = false, build = ":TSUpdate", - event = { "BufReadPre", "BufNewFile" }, - opts = { - ensure_installed = { - "c", - "cpp", - "python", - "lua", - "haskell", - "vim", - "vimdoc", - "query", - "bash", - "markdown", - "markdown_inline", - "json", - "toml", - "yaml", - "odin", - }, - highlight = { enable = true }, - indent = { enable = true }, - auto_install = false, + dependencies = { + { "nvim-treesitter/nvim-treesitter-textobjects", branch = "main" }, }, - config = function(_, opts) - -- new API, configs module is gone - require("nvim-treesitter").setup(opts) + config = function() + require("nvim-treesitter").setup({}) + + local parsers = { + "c", "cpp", "python", "lua", "haskell", "rust", "odin", + "vim", "vimdoc", "query", "bash", "diff", + "markdown", "markdown_inline", "json", "toml", "yaml", + } + require("nvim-treesitter").install(parsers) + + vim.api.nvim_create_autocmd("FileType", { + callback = function(args) + local lang = vim.treesitter.language.get_lang(vim.bo[args.buf].filetype) + if lang and vim.treesitter.language.add(lang) then + pcall(vim.treesitter.start, args.buf, lang) + vim.bo[args.buf].indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" + end + end, + }) + + local ok_to, to = pcall(require, "nvim-treesitter-textobjects") + if not ok_to then return end + to.setup({ + select = { lookahead = true }, + move = { set_jumps = true }, + }) + local sel = require("nvim-treesitter-textobjects.select") + local move = require("nvim-treesitter-textobjects.move") + local swap = require("nvim-treesitter-textobjects.swap") + local map = vim.keymap.set + + local objs = { + { "af", "@function.outer", "around function" }, + { "if", "@function.inner", "inside function" }, + { "ac", "@class.outer", "around class" }, + { "ic", "@class.inner", "inside class" }, + { "aa", "@parameter.outer", "around argument" }, + { "ia", "@parameter.inner", "inside argument" }, + { "ab", "@block.outer", "around block" }, + { "ib", "@block.inner", "inside block" }, + { "ai", "@conditional.outer", "around conditional" }, + { "ii", "@conditional.inner", "inside conditional" }, + { "al", "@loop.outer", "around loop" }, + { "il", "@loop.inner", "inside loop" }, + } + for _, o in ipairs(objs) do + local lhs, q, d = o[1], o[2], o[3] + map({ "x", "o" }, lhs, function() sel.select_textobject(q, "textobjects") end, { desc = d }) + end + + local nmo = { "n", "x", "o" } + map(nmo, "]m", function() move.goto_next_start("@function.outer", "textobjects") end, { desc = "next func start" }) + map(nmo, "[m", function() move.goto_previous_start("@function.outer", "textobjects") end, { desc = "prev func start" }) + map(nmo, "]M", function() move.goto_next_end("@function.outer", "textobjects") end, { desc = "next func end" }) + map(nmo, "[M", function() move.goto_previous_end("@function.outer", "textobjects") end, { desc = "prev func end" }) + map(nmo, "]]", function() move.goto_next_start("@class.outer", "textobjects") end, { desc = "next class start" }) + map(nmo, "[[", function() move.goto_previous_start("@class.outer", "textobjects") end, { desc = "prev class start" }) + map(nmo, "][", function() move.goto_next_end("@class.outer", "textobjects") end, { desc = "next class end" }) + map(nmo, "[]", function() move.goto_previous_end("@class.outer", "textobjects") end, { desc = "prev class end" }) + + map("n", "a", function() swap.swap_next("@parameter.inner") end, { desc = "Swap arg with next" }) + map("n", "A", function() swap.swap_previous("@parameter.inner") end, { desc = "Swap arg with prev" }) end, } diff --git a/arch/bigvim/.config/bigvim/lua/plugins/whichkey.lua b/arch/bigvim/.config/bigvim/lua/plugins/whichkey.lua index 97e8b19..e9afa04 100644 --- a/arch/bigvim/.config/bigvim/lua/plugins/whichkey.lua +++ b/arch/bigvim/.config/bigvim/lua/plugins/whichkey.lua @@ -10,6 +10,7 @@ return { { "s", group = "split" }, { "r", group = "refactor" }, { "c", group = "code" }, + { "m", group = "multicursor" }, { "cF", desc = "Toggle autoformat" }, { "cf", desc = "Format buffer" }, { "e", desc = "File explorer" }, diff --git a/arch/fish/.config/fish/conf.d/aliases.fish b/arch/fish/.config/fish/conf.d/aliases.fish index cab8bad..a7f237c 100644 --- a/arch/fish/.config/fish/conf.d/aliases.fish +++ b/arch/fish/.config/fish/conf.d/aliases.fish @@ -6,12 +6,14 @@ alias find 'fd' alias cd 'z' alias y 'yazi' alias tl 'tldr' -# alias info 'pinfo' # uncomment once pinfo is installed (AUR: pinfo) +alias tm 'bash seshc.sh' +alias info 'pinfo' # Man page shortcuts abbr -a m1 'man -s 1' abbr -a m2 'man -s 2' abbr -a m3 'man -s 3' +abbr -a clib 'man -s 3' abbr -a m5 'man -s 5' abbr -a m7 'man -s 7' abbr -a m8 'man -s 8' diff --git a/arch/fish/.config/fish/config.fish b/arch/fish/.config/fish/config.fish index f53a352..006230a 100644 --- a/arch/fish/.config/fish/config.fish +++ b/arch/fish/.config/fish/config.fish @@ -27,3 +27,13 @@ direnv hook fish | source # Wallust: set FZF_DEFAULT_OPTS with colors from ~/.cache/wallust/fzf-colors when wiring theming set -gx FZF_DEFAULT_COMMAND 'fd --type f --hidden --follow --exclude .git' set -gx FZF_DEFAULT_OPTS '--height 40% --layout=reverse --border' + +function fish_should_add_to_history + # List the exact commands you want to ignore here + for cmd in Haifufu + if string match -qr "^$cmd" -- $argv + return 1 # Tells Fish NOT to save the command + end + end + return 0 # Saves all other commands +end diff --git a/arch/fish/.config/fish/fish_variables b/arch/fish/.config/fish/fish_variables index 0a0f533..d527eac 100644 --- a/arch/fish/.config/fish/fish_variables +++ b/arch/fish/.config/fish/fish_variables @@ -1,5 +1,5 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 -SETUVAR NV_LAST_CONFIG:lightvim +SETUVAR NV_LAST_CONFIG:bigvim SETUVAR __fish_initialized:4300 SETUVAR fish_user_paths:/home/blake/\x2ecargo/bin\x1e/home/blake/\x2elocal/bin diff --git a/arch/fish/.config/fish/functions/vims.fish b/arch/fish/.config/fish/functions/vims.fish index 237b1ea..6ba4da7 100644 --- a/arch/fish/.config/fish/functions/vims.fish +++ b/arch/fish/.config/fish/functions/vims.fish @@ -1,5 +1,5 @@ function vims --description 'Pick or launch an nvim config via NVIM_APPNAME' - set -l configs nvim lightvim + set -l configs nvim lightvim bigvim set -l repick 0 set -l args diff --git a/arch/ghostty/.config/ghostty/config b/arch/ghostty/.config/ghostty/config index 4cc79d8..7069355 100644 --- a/arch/ghostty/.config/ghostty/config +++ b/arch/ghostty/.config/ghostty/config @@ -17,6 +17,9 @@ mouse-hide-while-typing = true keybind = ctrl+backspace=text:\x17 confirm-close-surface = false +keybind = ctrl+tab=unbind +keybind = ctrl+shift+tab=unbind + background-opacity = 0.85 background-blur-radius = 20 diff --git a/arch/hyprland/.config/hypr/hyprland.conf b/arch/hyprland/.config/hypr/hyprland.conf index ba0c019..0b00cb6 100644 --- a/arch/hyprland/.config/hypr/hyprland.conf +++ b/arch/hyprland/.config/hypr/hyprland.conf @@ -86,3 +86,4 @@ exec-once = spicetify watch -s exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store exec-once = hyprctl setcursor Hackneyed 1 +exec-once = bash ~/.local/bin/tmux-restore.sh diff --git a/arch/lightvim/.config/lightvim/lua/plugins.lua b/arch/lightvim/.config/lightvim/lua/plugins.lua index 2f737b2..1ba998e 100644 --- a/arch/lightvim/.config/lightvim/lua/plugins.lua +++ b/arch/lightvim/.config/lightvim/lua/plugins.lua @@ -303,6 +303,8 @@ return { { "bp", "BufferLinePick", desc = "Pick buffer" }, { "bo", "BufferLineCloseOthers", desc = "Close others" }, { "bc", "BufferLinePickClose", desc = "Close (pick)" }, + { "", "BufferLineCycleNext", desc = "Cycle buffer (next)" }, + }, opts = { options = { diff --git a/arch/scripts/.local/bin/Haifufu b/arch/scripts/.local/bin/Haifufu new file mode 100755 index 0000000..18674bd Binary files /dev/null and b/arch/scripts/.local/bin/Haifufu differ diff --git a/arch/scripts/.local/bin/seshc.sh b/arch/scripts/.local/bin/seshc.sh new file mode 100644 index 0000000..0c659d6 --- /dev/null +++ b/arch/scripts/.local/bin/seshc.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +query="${1:-}" + +sessions=$(sesh list -j -t) + +if [[ -z "$query" ]]; then + name=$(jq -r '.[0].Name' <<<"$sessions") +else + name=$(jq -r '.[].Name' <<<"$sessions" | fzf --filter "$query" | head -n1) +fi + +if [[ -z "${name:-}" ]]; then + echo "${0:-}: no session matched '$query'" >&2 + exit 1 +fi + +exec sesh connect "$name" diff --git a/arch/scripts/.local/bin/tmux-restore.sh b/arch/scripts/.local/bin/tmux-restore.sh new file mode 100644 index 0000000..2788c51 --- /dev/null +++ b/arch/scripts/.local/bin/tmux-restore.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +tmux start-server +tmux has-session -t main 2>/dev/null || tmux new-session -d -s main +sleep 0.3 +tmux send-keys -t main C-Space +sleep 0.1 +tmux send-keys -t main C-r diff --git a/arch/scripts/.local/bin/vesktop b/arch/scripts/.local/bin/vesktop new file mode 100755 index 0000000..6f96421 --- /dev/null +++ b/arch/scripts/.local/bin/vesktop @@ -0,0 +1,3 @@ +#!/bin/bash +export PULSE_SINK=discord_sink +exec /usr/sbin/vesktop "$@" diff --git a/arch/tmux/.config/tmux/tmux.conf b/arch/tmux/.config/tmux/tmux.conf index 38e15a9..3e40d3e 100644 --- a/arch/tmux/.config/tmux/tmux.conf +++ b/arch/tmux/.config/tmux/tmux.conf @@ -101,11 +101,15 @@ set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'christoomey/vim-tmux-navigator' set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-continuum' # Disable vim-tmux-navigator's default C-h/j/k/l bindings (using arrows instead) set -g @vim-tmux-navigator-no-wrap 1 set -g @vim_tmux_navigator_no_mappings 1 +# tmux-continuum +set -g @continuum-restore 'off' +set -g @continuum-save-interval '5' run '~/.tmux/plugins/tpm/tpm' # vim-tmux-navigator binds C-h to select-pane -L after TPM loads. -- cgit v1.2.3