diff --git a/.config/lazygit/config.toml b/.config/lazygit/config.toml new file mode 100644 index 0000000..7875994 --- /dev/null +++ b/.config/lazygit/config.toml @@ -0,0 +1,4 @@ +os: + editPreset: 'nvim' + # edit: 'nvr --remote {{filename}}' + edit: 'nvim --server $NVIM --remote {{filename}}' diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 7e58de1..691aaa3 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,66 +1,52 @@ { - "LazyVim": { "branch": "main", "commit": "c10948c50b18fae7f256433afdef09e432410480" }, -<<<<<<< HEAD - "avante.nvim": { "branch": "main", "commit": "90a0e77c63251c367935caeaa0070670522c960b" }, - "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, - "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "c7c692a0ad3080710893abbae100171819a3e4be" }, -======= - "avante.nvim": { "branch": "main", "commit": "98bfe1c2a41d645e8d1cbc882aa1067e5f1b6cb0" }, + "LazyVim": { "branch": "main", "commit": "999700997f72227187d49d8b92667183dc7fc809" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "edefef779ab08ce1a4a404713e3012b0d202bd35" }, ->>>>>>> 2dc4bb5e0ea87aa27cd9ce7f5fd6e66e7ebc33c3 "clangd-container.nvim": { "branch": "master", "commit": "8bfb4f202ea64710ce46d8790ca95c9ee89b6ce6" }, "clangd_extensions.nvim": { "branch": "main", "commit": "78c2ecd659d54972be17aa6ba2deac3c53223b80" }, + "codecompanion.nvim": { "branch": "main", "commit": "3af636c9892c70c5a4e91604718bf902076aff26" }, "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "dotenv.nvim": { "branch": "main", "commit": "7d516e9293c6e3ac21830fb10a4e8674c02747c6" }, -<<<<<<< HEAD - "flash.nvim": { "branch": "main", "commit": "b6346946d10d07998efee029fb0f7a593806d0cd" }, -======= - "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, "flash.nvim": { "branch": "main", "commit": "5f0f270fdc7c5b0c21d903ee85b9cb06f2ac636a" }, ->>>>>>> 2dc4bb5e0ea87aa27cd9ce7f5fd6e66e7ebc33c3 - "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" }, + "friendly-snippets": { "branch": "main", "commit": "b4d01b0fdf3c9a549961c2f9ffe8dc09be166219" }, + "gitsigns.nvim": { "branch": "main", "commit": "8d79f2410c76e62b92e51c28c82e28c1c5a3daeb" }, "grug-far.nvim": { "branch": "main", "commit": "11595bf747edc270bce2069d1020502ad4ae56cf" }, "hybrid-theme": { "branch": "main", "commit": "626ae5426a7c8f21dfccce286c690d9cf4195b46" }, - "image.nvim": { "branch": "master", "commit": "88351f1f7d9dbae286e671ce3690a49660dd8a5c" }, - "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, + "image.nvim": { "branch": "master", "commit": "365e2ace0f619164ae6fd2f6f1d2807775dd6849" }, + "indent-blankline.nvim": { "branch": "master", "commit": "f1e186e44d3b7f9ae918008e2c28ce37c6023d2d" }, "just-runner.nvim": { "branch": "main", "commit": "f29d405aa828900df242600720a2b0e57261489f" }, "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "9d28935aa95fa6c1dc7c4d6747f101a72a8a4bec" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "49b16d699f9ca83184330c6eb886737a27f23bdd" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" }, "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, - "mini.ai": { "branch": "main", "commit": "25248c6aa002391936a6200f12d1466015987133" }, - "mini.files": { "branch": "main", "commit": "a249438d15fa6f64085ba83a9d1794d726aaf5ad" }, + "mini.ai": { "branch": "main", "commit": "6c39ae7b11abe479fbe1bc81bf00ac6bca7afa07" }, + "mini.files": { "branch": "main", "commit": "f1cfece89892274f4f4a59d71f24eb90dcfe1b5a" }, "mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" }, "mini.pairs": { "branch": "main", "commit": "b1c5a726921b7a8c9321e9a7a208aa0571de5810" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "10fc361835c856ba4233ef5ea135b919bf3dce97" }, + "nvim-dap": { "branch": "master", "commit": "cfa2d58f4537aca6ca83e2de1a0d9f1491121264" }, + "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, + "nvim-dap-ui": { "branch": "master", "commit": "cc9dd33aade7f20bae414d0cba163bc60d4d4b43" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, "nvim-dev-container": { "branch": "main", "commit": "365b4c815339d42133829006dce3e5f8b182b771" }, -<<<<<<< HEAD - "nvim-lint": { "branch": "master", "commit": "a219b2c9e5b4765e5c845aba119dad55806fcaf1" }, - "nvim-lspconfig": { "branch": "master", "commit": "d592c1e6ad9a0a01b3d5ed3f0345d68407167181" }, - "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" }, - "nvim-treesitter": { "branch": "main", "commit": "bd41519ff7901da11ba6e1c8f419f17f2d94305a" }, -======= - "nvim-lint": { "branch": "master", "commit": "0370fe965697aa8f04252a1562441bdc13723cd1" }, - "nvim-lspconfig": { "branch": "master", "commit": "221c43884319e791519f0d6c94a7f2fbcd653278" }, - "nvim-treesitter": { "branch": "main", "commit": "8b98b4470eb326f1c7b50dae79f8c963568e5720" }, ->>>>>>> 2dc4bb5e0ea87aa27cd9ce7f5fd6e66e7ebc33c3 - "nvim-treesitter-textobjects": { "branch": "main", "commit": "898ee307df58f854d11cd7edd06472574d48014e" }, + "nvim-lint": { "branch": "master", "commit": "3d55c8f67c6ae5c15e1042571e107c7a3d5c5f4e" }, + "nvim-lspconfig": { "branch": "master", "commit": "ffd261c09c3dabd0bf1a438f47a8ae3b22f3c3ff" }, + "nvim-navic": { "branch": "master", "commit": "455808fd0fae06e6d70fadfd61432275db8f34ce" }, + "nvim-nio": { "branch": "master", "commit": "edcc181a875301dd21840189aa2f2f9ad69fc172" }, + "nvim-treesitter": { "branch": "main", "commit": "f603a2f4da48728f80257fb5fbb90145fd1dc173" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "5c7b0263797dfd1bd6202f2b219f3b53a80b2187" }, "nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" }, "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, -<<<<<<< HEAD -======= - "render-markdown.nvim": { "branch": "main", "commit": "4663eb3ecd538bd5062628fb6d95bbe6bdca78f6" }, ->>>>>>> 2dc4bb5e0ea87aa27cd9ce7f5fd6e66e7ebc33c3 + "render-markdown.nvim": { "branch": "main", "commit": "640a3ec6d538bad17c328be373c7cad0293d9589" }, "snacks-terminal-ctl.nvim": { "branch": "master", "commit": "97727421c8d0ffa33d893f22e38cda93e9010742" }, "snacks.nvim": { "branch": "main", "commit": "882c996cf28183f4d63640de0b4c02ec886d01f2" }, + "termyank.nvim": { "branch": "main", "commit": "158fe58eecdf456d0b122cf2c9e4bb46e1ce22b4" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json index f66c0ec..51fec66 100644 --- a/.config/nvim/lazyvim.json +++ b/.config/nvim/lazyvim.json @@ -1,5 +1,6 @@ { "extras": [ + "lazyvim.plugins.extras.dap.core", "lazyvim.plugins.extras.editor.mini-files", "lazyvim.plugins.extras.editor.navic", "lazyvim.plugins.extras.lang.go" diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua index cdb105e..3750691 100644 --- a/.config/nvim/lua/config/keymaps.lua +++ b/.config/nvim/lua/config/keymaps.lua @@ -4,3 +4,23 @@ -- Terminal keymaps ( toggle with 99-count float, tt, ft) -- are registered by the snacks-terminal-ctl plugin (lua/plugins/terminal.lua). + +-- copy the current file name to the system clipboard (OSC52-aware, so it +-- also works over ssh/tmux); C variant drops the extension +local copy_file_name = function(with_extension) + local name = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(0), ":t") + if not with_extension then + name = vim.fn.fnamemodify(name, ":r") + end + vim.fn.setreg("+", name) + vim.notify("Copied: " .. name) +end + +vim.keymap.set("n", "fc", function() + copy_file_name(true) +end, { desc = "Copy file name" }) + +vim.keymap.set("n", "fC", function() + copy_file_name(false) +end, { desc = "Copy file name (no extension)" }) + diff --git a/.config/nvim/lua/plugins/clangd.lua b/.config/nvim/lua/plugins/clangd.lua new file mode 100644 index 0000000..08766f8 --- /dev/null +++ b/.config/nvim/lua/plugins/clangd.lua @@ -0,0 +1,29 @@ +return { + "p00f/clangd_extensions.nvim", + ft = { "c", "cpp", "objc", "objcpp" }, + opts = { + inlay_hints = { + inline = false, + }, + ast = { + --These require codicons (https://github.com/microsoft/vscode-codicons) + role_icons = { + type = "", + declaration = "", + expression = "", + specifier = "", + statement = "", + ["template argument"] = "", + }, + kind_icons = { + Compound = "", + Recovery = "", + TranslationUnit = "", + PackExpansion = "", + TemplateTypeParm = "", + TemplateTemplateParm = "", + TemplateParamObject = "", + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/codecompanion.lua.disabled b/.config/nvim/lua/plugins/codecompanion.lua.disabled new file mode 100644 index 0000000..03ac06e --- /dev/null +++ b/.config/nvim/lua/plugins/codecompanion.lua.disabled @@ -0,0 +1,56 @@ +return { + "olimorris/codecompanion.nvim", + enabled = function() + return true + -- return vim.env.CORTECS_API_KEY ~= nil and vim.env.CORTECS_API_KEY ~= "" + end, + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", + }, + opts = { + adapters = { + acp = { + opencode = "opencode", + }, + http = { + cortecs = function() + return require("codecompanion.adapters").extend("openai_compatible", { + env = { + api_key = "cmd:grep CORTECS_API_KEY ~/.config/nvim/.env | cut -d '=' -f2- | tr -d '\"'", + url = "https://api.cortecs.ai", + }, + + schema = { + model = { + default = "glm-5.3", + }, + }, + }) + end, + }, + }, + + interactions = { + chat = { + adapter = "opencode", + handler = "confirm_handler", + }, + + inline = { + adapter = "cortecs", + handler = "confirm_handler", + }, + + cmd = { + adapter = "cortecs", + handler = "confirm_handler", + }, + }, + }, + keys = { + { "ac", "CodeCompanionChat Toggle", mode = { "n", "v" }, desc = "AI Chat" }, + { "aa", "CodeCompanionActions", mode = { "n", "v" }, desc = "CodeCompanion Actions" }, + { "as", "CodeCompanionChat Add", mode = "v", desc = "Add Selection to Chat" }, + }, +} diff --git a/.config/nvim/lua/plugins/dap.lua b/.config/nvim/lua/plugins/dap.lua new file mode 100644 index 0000000..844f302 --- /dev/null +++ b/.config/nvim/lua/plugins/dap.lua @@ -0,0 +1,52 @@ +return { + { + "mfussenegger/nvim-dap", + config = function() + local dap = require("dap") + + -- 1. The adapter (cpptools' OpenDebugAD7 → drives gdb over MI, same engine VSCode used) + dap.adapters.cppdbg = { + id = "cppdbg", + type = "executable", + command = vim.fn.stdpath("data") .. "/mason/bin/OpenDebugAD7", + } + + -- 2. Shared bits used by every variant + local common_env = { + { name = "SERVER", value = "192.168.122.111" }, + { name = "QT_FATAL_WARNINGS", value = "0" }, + } + local function env_with(...) + local e = vim.deepcopy(common_env) + for _, item in ipairs({ ... }) do table.insert(e, item) end + return e + end + + local base = { + type = "cppdbg", + request = "launch", + MIMode = "gdb", + miDebuggerPath = "/usr/bin/gdb", + miDebuggerArgs = "-ex 'set debuginfod enabled off'", + setupCommands = { + { text = "-enable-pretty-printing", description = "Pretty printing", ignoreFailures = true }, + { text = "-gdb-set disassembly-flavor intel", description = "Intel disassembly", ignoreFailures = true }, + }, + } + + -- 3. One entry per binary/variant + dap.configurations.cpp = { + vim.tbl_extend("force", base, { + name = "SMiKO (-d -u 10000)", + program = "${workspaceFolder}/src/smiko/binary/unix/SMiKO", + args = { "-d", "-u", "10000" }, + cwd = "${workspaceFolder}/src/smiko/binary/unix", + environment = env_with( + { name = "LD_LIBRARY_PATH", value = "${workspaceFolder}/src/smiko/binary/unix/lib" } + ), + }), + } + dap.configurations.c = dap.configurations.cpp + end, + }, +} diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..e2ec880 --- /dev/null +++ b/.config/nvim/lua/plugins/lspconfig.lua @@ -0,0 +1,54 @@ +return { + "neovim/nvim-lspconfig", + opts = { + servers = { + + clangd = { + keys = { + { "ch", "LspClangdSwitchSourceHeader", desc = "Switch Source/Header (C/C++)" }, + }, + root_markers = { + "compile_commands.json", + "compile_flags.txt", + "Makefile", + "configure.ac", + "configure.in", + "config.h.in", + "meson.build", + "meson_options.txt", + "build.ninja", + ".git", + }, + capabilities = { + offsetEncoding = { "utf-16" }, + }, + -- local: + -- cmd = { + -- "clangd", + -- "--background-index", + -- "--clang-tidy", + -- "--header-insertion=iwyu", + -- "--completion-style=detailed", + -- "--function-arg-placeholders", + -- "--fallback-style=llvm", + -- }, + + -- remote + cmd = { + "docker", + "exec", + "-i", + "smiko-builder-enterprise-linux_devcontainer-dev-smiko-client-docker-1", + "/home/developer/.vscode-server/extensions/kylinideteam.kylin-clangd-0.6.2-linux-x64/res/clangd/bin/clangd", + "--background-index", + "--path-mappings=/home/chodylal/src/smiko/smiko-builder-enterprise-linux=/workspace", -- Optional: if paths differ + }, + init_options = { + usePlaceholders = true, + completeUnimported = true, + clangdFileStatus = true, + }, + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/render-markdown.lua b/.config/nvim/lua/plugins/render-markdown.lua new file mode 100644 index 0000000..6f22818 --- /dev/null +++ b/.config/nvim/lua/plugins/render-markdown.lua @@ -0,0 +1,8 @@ +return { + { + "MeanderingProgrammer/render-markdown.nvim", + opts = { + enabled = false, + }, + }, +} diff --git a/.config/nvim/lua/plugins/zenmode.lua b/.config/nvim/lua/plugins/zenmode.lua new file mode 100644 index 0000000..e3a8462 --- /dev/null +++ b/.config/nvim/lua/plugins/zenmode.lua @@ -0,0 +1,13 @@ +return { + "folke/zen-mode.nvim", + opts = { + window = { + width = .90, -- Set your desired width (absolute columns or percentage) + height = 1, -- 1 means full height; use a number for fixed height + backdrop = 0.95, -- Dim the background + }, + plugins = { + twilight = { enabled = true }, -- Dim surrounding code + }, + }, +} diff --git a/.config/sway/config b/.config/sway/config index dd5b345..9baeacf 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -169,7 +169,7 @@ bindsym Control+Mod1+h exec cliphist list | fuzzel --width 80 --dmenu | cliphist bindsym $mod+Shift+a exec $scriptsDir/autoapp # Window switcher -bindsym Mod1+Tab exec swayr switch-window +bindsym Mod1+Tab exec ~/.cargo/bin/swayr switch-window ################################################################# # Window Navigation @@ -565,6 +565,9 @@ exec swayidle -w \ # Notification daemon — mako (Omarchy uses mako) exec --no-startup-id mako +# Local swayrd daemon +exec --no-startup-id /home/chodylal/.cargo/bin/swayrd + # Alternative: swaync (Sway Notification Center) — more feature-rich # exec --no-startup-id swaync diff --git a/.tmux.conf b/.tmux.conf index fd9eb79..4cc2b34 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -5,6 +5,9 @@ set -g default-terminal "tmux-256color" run ~/.tmux.d/tmux-gruvbox/gruvbox-tpm.tmux set -g @tmux-gruvbox 'dark' # or 'dark256', 'light', 'light256' +# scrollback buffer size (lines) +set -g history-limit 10000 + # disable mouse mode (to use selection mode from current terminal) set-option -g mouse off diff --git a/.zshrc b/.zshrc index 902746b..c8afcc1 100644 --- a/.zshrc +++ b/.zshrc @@ -217,3 +217,6 @@ export SUDO_EDITOR=nvim # opencode export PATH=/home/chodak/.opencode/bin:$PATH + +# opencode +export PATH=/home/chodylal/.opencode/bin:$PATH