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