diff --git a/.config/nvim b/.config/nvim
new file mode 160000
index 00000000..6212cc61
--- /dev/null
+++ b/.config/nvim
@@ -0,0 +1 @@
+Subproject commit 6212cc611f4d54f64dbca18838e4aeaa60f39f71
diff --git a/.config/nvim/.neoconf.json b/.config/nvim/.neoconf.json
deleted file mode 100644
index 7c480874..00000000
--- a/.config/nvim/.neoconf.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "neodev": {
-    "library": {
-      "enabled": true,
-      "plugins": true
-    }
-  },
-  "neoconf": {
-    "plugins": {
-      "lua_ls": {
-        "enabled": true
-      }
-    }
-  }
-}
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
deleted file mode 100644
index ed2ca840..00000000
--- a/.config/nvim/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-_G.Config = require("config")
-_G.Lib = require("lib")
-
-require("config.lazy")
diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json
deleted file mode 100644
index f03853fb..00000000
--- a/.config/nvim/lazyvim.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "extras": [
-
-  ],
-  "news": {
-    "NEWS.md": "3314"
-  },
-  "version": 3
-}
\ No newline at end of file
diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua
deleted file mode 100644
index 583330dc..00000000
--- a/.config/nvim/lua/config/autocmds.lua
+++ /dev/null
@@ -1,57 +0,0 @@
--- Autocmds are automatically loaded on the VeryLazy event
--- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--- Add any additional autocmds here
-
-local autocmds = {
-    { -- Automatically change line numeration
-        { "BufEnter", "FocusGained", "InsertLeave", "WinEnter" },
-        {
-            group = "auto_number",
-            command = 'if &nu && mode() != "i" | set rnu | endif',
-            -- callback = function()
-            --     if vim.opt.number and vim.fn.mode() ~= "i" then
-            --         vim.opt.relativenumber = true
-            --     end
-            -- end,
-        },
-    },
-    { -- Automatically change line numeration
-        { "BufLeave", "FocusLost", "InsertEnter", "WinLeave" },
-        {
-            group = "auto_number",
-            command = "if &nu | set nornu | endif",
-            -- callback = function()
-            --     if vim.opt.number then
-            --         vim.opt.relativenumber = false
-            --     end
-            -- end,
-        },
-    },
-    { -- Trigger shortcuts script
-        "BufWritePost",
-        {
-            pattern = { "directories", "files" },
-            command = "silent!!shortcuts",
-        },
-    },
-    { -- Trigger xrdb
-        "BufWritePost",
-        {
-            pattern = { "xresources" },
-            command = "silent!!xrdb %",
-        },
-    },
-}
-
-vim.api.nvim_create_augroup("user_config", { clear = true })
-for _, entry in ipairs(autocmds) do
-    local event = entry[1]
-    local opts = entry[2]
-    if type(opts.group) == "string" and opts.group ~= "" then
-        local exists, _ = pcall(vim.api.nvim_get_autocmds, { group = opts.group })
-        if not exists then
-            vim.api.nvim_create_augroup(opts.group, {})
-        end
-    end
-    vim.api.nvim_create_autocmd(event, opts)
-end
diff --git a/.config/nvim/lua/config/init.lua b/.config/nvim/lua/config/init.lua
deleted file mode 100644
index 959bf006..00000000
--- a/.config/nvim/lua/config/init.lua
+++ /dev/null
@@ -1,17 +0,0 @@
----@class config
----@field ui config.ui
----@field language config.language
----@field shortcuts config.shortcuts
----@field secrets? config.secrets
-local M = {}
-
-setmetatable(M, {
-    __index = function(_, k)
-        local ok, mod = pcall(require, "config." .. k)
-        if ok then
-            return mod
-        end
-    end,
-})
-
-return M
diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua
deleted file mode 100644
index 3fe8206f..00000000
--- a/.config/nvim/lua/config/keymaps.lua
+++ /dev/null
@@ -1,8 +0,0 @@
--- Keymaps are automatically loaded on the VeryLazy event
--- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
--- Add any additional keymaps here
-
-local unmap = vim.api.nvim_del_keymap
-
-unmap("n", "<Leader>uL")
-unmap("n", "<Leader>ul")
diff --git a/.config/nvim/lua/config/language.lua b/.config/nvim/lua/config/language.lua
deleted file mode 100644
index 51b524bb..00000000
--- a/.config/nvim/lua/config/language.lua
+++ /dev/null
@@ -1,192 +0,0 @@
----@diagnostic disable: missing-fields
----@class config.language
-local M = {}
-
----@type table<string, conform.FormatterUnit>
-M.formatters_by_ft = {
-    lua = { "stylua" },
-    sh = { "shfmt" },
-    python = { "black" },
-}
-
----@type table<string, conform.FormatterConfigOverride|fun(bufnr: integer): nil|conform.FormatterConfigOverride>
-M.formatters = {
-    injected = { options = { ignore_errors = true } },
-    shfmt = { prepend_args = { "-i", "4", "-ci" } },
-}
-
----@type table<string,table>
-M.linters_by_ft = {
-    dockerfile = { "hadolint" },
-    markdown = { "markdownlint" },
-}
-
----@type table<string,table>
-M.linters = {}
-
----@type Array<string>
-M.mason_install = {
-    "ansible-lint",
-    "ansible-language-server",
-    "basedpyright",
-    "bash-language-server",
-    "codelldb",
-    "debugpy",
-    "dockerfile-language-server",
-    "docker-compose-language-service",
-    "json-lsp",
-    "lua-language-server",
-    "hadolint",
-    "marksman",
-    "markdownlint",
-    "ruff-lsp",
-    "rust-analyzer",
-}
-
----@type Array<string>
-M.treesitter_install = {
-    "bash",
-    "c",
-    "diff",
-    "dockerfile",
-    "html",
-    "json",
-    "jsonc",
-    "json5",
-    "lua",
-    "luadoc",
-    "luap",
-    "markdown",
-    "markdown_inline",
-    "ninja",
-    "python",
-    "query",
-    "regex",
-    "ron",
-    "rst",
-    "rust",
-    "toml",
-    "vim",
-    "vimdoc",
-    "xml",
-    "yaml",
-}
-
----@type lspconfig.options
-M.lsp = {
-    jsonls = {
-        on_new_config = function(new_config)
-            new_config.settings.json.schemas = new_config.settings.json.schemas or {}
-            vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas())
-        end,
-        settings = {
-            json = {
-                format = {
-                    enable = true,
-                },
-                validate = { enable = true },
-            },
-        },
-    },
-    lua_ls = {
-        settings = {
-            Lua = {
-                workspace = {
-                    checkThirdParty = false,
-                },
-                codeLens = {
-                    enable = true,
-                },
-                completion = {
-                    callSnippet = "Replace",
-                },
-            },
-        },
-    },
-    ruff_lsp = {
-        keys = {
-            {
-                "<leader>co",
-                function()
-                    vim.lsp.buf.code_action({
-                        apply = true,
-                        context = {
-                            only = { "source.organizeImports" },
-                            diagnostics = {},
-                        },
-                    })
-                end,
-                desc = "Organize Imports",
-            },
-        },
-    },
-    yamlls = {
-        capabilities = {
-            textDocument = {
-                foldingRange = {
-                    dynamicRegistration = false,
-                    lineFoldingOnly = true,
-                },
-            },
-        },
-        on_new_config = function(new_config)
-            new_config.settings.yaml.schemas = vim.tbl_deep_extend(
-                "force",
-                new_config.settings.yaml.schemas or {},
-                require("schemastore").yaml.schemas()
-            )
-        end,
-        settings = {
-            redhat = { telemetry = { enabled = false } },
-            yaml = {
-                keyOrdering = false,
-                format = {
-                    enable = true,
-                },
-                validate = true,
-                schemaStore = {
-                    enable = false,
-                    url = "",
-                },
-            },
-        },
-    },
-}
-
----@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
-M.lsp_setup = {
-    ruff_lsp = function()
-        LazyVim.lsp.on_attach(function(client, _)
-            if client.name == "ruff_lsp" then
-                client.server_capabilities.hoverProvider = false
-                client.server_capabilities.renameProvider = false
-            end
-        end)
-    end,
-    rust_analyzer = function()
-        return true
-    end,
-    ["*"] = function(server, opts)
-        local base = vim.lsp.protocol.make_client_capabilities()
-        local cmp = require("cmp_nvim_lsp").default_capabilities()
-        vim.tbl_deep_extend("force", opts.capabilities, base)
-        vim.tbl_deep_extend("force", opts.capabilities, cmp)
-        require("lspconfig")[server].setup(opts)
-    end,
-}
-
-setmetatable(M, {
-    __index = function(_, k)
-        if k == "lsp" then
-            for l, _ in pairs(M.lsp) do
-                M.lsp[l].mason = false
-                return M.lsp
-            end
-        end
-        return require("custom." .. k)
-    end,
-})
-
-M.dap = {}
-
-return M
diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua
deleted file mode 100644
index 7ce13d61..00000000
--- a/.config/nvim/lua/config/lazy.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-
-if not (vim.uv or vim.loop).fs_stat(lazypath) then
-    vim.fn.system({
-        "git",
-        "clone",
-        "--filter=blob:none",
-        "https://github.com/folke/lazy.nvim.git",
-        "--branch=stable",
-        lazypath,
-    })
-end
-vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
-
-require("lazy").setup({
-    spec = {
-        {
-            "LazyVim/LazyVim",
-            import = "lazyvim.plugins",
-        },
-        { import = "lazyvim.plugins.extras.coding.yanky" },
-        { import = "lazyvim.plugins.extras.coding.copilot" },
-        { import = "lazyvim.plugins.extras.dap.core" },
-        -- { import = "lazyvim.plugins.extras.ui.edgy" },
-        { import = "lazyvim.plugins.extras.editor.aerial" },
-        { import = "lazyvim.plugins.extras.editor.leap" },
-        { import = "lazyvim.plugins.extras.test.core" },
-        { import = "plugins" },
-    },
-    defaults = {
-        lazy = true,
-        version = false,
-    },
-    install = { colorscheme = { "tokyonight" } },
-    checker = { enabled = true },
-    performance = {
-        rtp = {
-            disabled_plugins = {
-                "gzip",
-                -- "matchit",
-                "matchparen",
-                "netrwPlugin",
-                "tarPlugin",
-                "tohtml",
-                "tutor",
-                "zipPlugin",
-            },
-        },
-    },
-})
diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua
deleted file mode 100644
index ae8f5528..00000000
--- a/.config/nvim/lua/config/options.lua
+++ /dev/null
@@ -1,16 +0,0 @@
--- Options are automatically loaded before lazy.nvim startup
--- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
--- Add any additional options here
-
-local o = vim.opt
-local g = vim.g
-
-o.shiftwidth = 4
-o.tabstop = 4
-o.scrolloff = 8
-o.conceallevel = 0
-
-g.loaded_node_provider = 0
-g.loaded_perl_provider = 0
-g.loaded_python3_provider = 0
-g.loaded_ruby_provider = 0
diff --git a/.config/nvim/lua/config/secrets.lua b/.config/nvim/lua/config/secrets.lua
deleted file mode 100644
index d1b3936c..00000000
--- a/.config/nvim/lua/config/secrets.lua
+++ /dev/null
@@ -1,6 +0,0 @@
----@class config.secrets
-return {
-    sourcery = "user_qHOjfe6w58Xeuw7_wij5zh7CCRGzPXQKJE7nJwiYlcnAQ1_mGN4AKSL9q1I",
-    intelephense = "00QRJLHV4WVNB1E",
-    openai = "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",
-}
diff --git a/.config/nvim/lua/config/shortcuts.lua b/.config/nvim/lua/config/shortcuts.lua
deleted file mode 100644
index 471ba0d9..00000000
--- a/.config/nvim/lua/config/shortcuts.lua
+++ /dev/null
@@ -1,22 +0,0 @@
--- NOTE: Managed by shortcuts script
----@class config.shortcuts
-return {
-    gh = "/home/luca",
-    gch = "/home/luca/.cache",
-    gcf = "/home/luca/.config",
-    gdt = "/home/luca/.local/share",
-    gst = "/home/luca/.local/state",
-    gsc = "/home/luca/.local/bin",
-    gle = "/home/luca/.local/libexec",
-    gmn = "/mnt",
-    gco = "/home/luca/Documents/dev",
-    gdl = "/home/luca/Downloads",
-    gdm = "/home/luca/Documents",
-    gdk = "/home/luca/Desktop",
-    gms = "/home/luca/Music",
-    gpc = "/home/luca/Pictures",
-    gvd = "/home/luca/Videos",
-    gds = "/home/luca/.local/share/stow/dots",
-    glg = "/home/luca/.local/log",
-    gsv = "/home/luca/.local/sv",
-}
diff --git a/.config/nvim/lua/config/ui.lua b/.config/nvim/lua/config/ui.lua
deleted file mode 100644
index 5d1abc13..00000000
--- a/.config/nvim/lua/config/ui.lua
+++ /dev/null
@@ -1,121 +0,0 @@
----@class config.ui
-local M = {}
-
----@type Array<string>
-M.banners = {
-    [[
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣿⣿⣿⣷⣶⣤⡀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀
-⠀⣀⣴⣶⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀
-⣰⣿⣿⠿⠛⠿⢿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
-⣿⣿⡇⠀⠀⠀⠀⠈⠛⢿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀
-⠹⣿⣧⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⢀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀
-⠀⠙⢿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣷⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣶⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠉⠻⠷⡄⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠀⢀⣠⣤⣤⣄⡀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣷⡀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⡀⠀⠀⠀⠀⣿⠟⠉⠉⠙⢿⣿⣿⣷
-⠀⠀⠀⣀⣠⣤⣤⣤⣶⣶⣶⣤⣤⠀⣴⣿⣿⣿⡿⠟⠛⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠉⠀⠀⠀⢀⣼⣿⣿⡿
-⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠛⠻⠏⣼⣿⣿⡿⣋⣀⣤⣤⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⣀⣠⣴⣾⣿⣿⡿⠁
-⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡿⠋⠘⠿⠟⠛⠛⢻⣿⣿⣿⠋⠁⠈⠉⢿⣿⣿⣧⠀⠙⠻⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀
-⠙⣷⣤⣀⠀⠀⠀⢀⣀⣤⣶⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡟⠀⠀⠀⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀
-⠀⠈⠛⠿⢿⣿⣿⣿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⡀⠀⢠⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣷⣶⣶⣶⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢶⣦⣤⣶⣾⣿⣿⡶⠈⠉⠛⠿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣶⡿⠿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-]],
-    [[
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠤⠤⠤⠤⠤⠤⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠒⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢦⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢇⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀
-⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡀⠀⠀⠀⠀⠀
-⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
-⢠⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⠀⠀⠀⠀⠀
-⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠟⠁⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⠀⠀⠀⠀⠀
-⣸⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⡀⠀⠀⢉⣿⣿⠀⠀⠀⠀⠀
-⣿⣿⣿⣿⣶⣦⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⠿⠿⠿⠟⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀
-⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣤⣀⡀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
-⠀⠘⣿⣿⣿⣯⡉⠙⠛⠻⠿⢿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣶⣦⣄⣀⡀⠀⠀⠀⣀⣀⣠⣤⣾⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀
-⠀⠀⠸⣿⣿⣿⣷⣤⠀⠀⠀⠀⠀⠉⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠙⣿⣿⣿⣿⣿⣶⣀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⠀⢀⠀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠈⠙⠛⠻⠿⠿⠿⠀⢀⣠⣴⣶⣦⡀⠀⠀
-⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣿⣷⡀⢀⠀⠀⠀⠀⠀⠀⡀⢠⣿⠟⠉⠀⠀⠁⣀⡀
-⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣷⣤⣦⣀⣤⣿⣿⣿⡀⠀⢀⣠⣾⣿⣿
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠻⠿⠿⠿⣿⡿⠿⠿⠿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀
-]],
-    [[
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢒⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢣⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⡦⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡐⣸⠂⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠸⡢⡀⠀⠀⠀⠀⠀⠔⣰⠏⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⢖⡠⣨⠊⠒⠠⣀⢀⠊⣠⠃⡰⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠠⠀⠀⠠⠠⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⢰⠑⠚⠀⠀⠀⡉⠀⢇⡰⠀⠀⠀⠀⠀⢀⠠⠐⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠈⡄⠀⠀⠀⠀⠘⠠⠐⡇⠀⠀⠀⠠⠐⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⢃⠀⠀⠀⠀⠀⠀⢀⠁⠀⢀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠀⠼⢄⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⢸⠀⠀⠀⠀⠀⠀⢸⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠈⠢⠄⠀⠀⠀⠀
-⠀⠀⢸⠀⠀⠀⠀⠀⠀⠸⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠎⠀⠀⠀⠀⠀⠀⡠⠀⠈⢆⠀⠀⠀
-⠀⠀⠨⠀⠀⠀⠀⠀⠀⠀⢆⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⡌⠀⠀⢎⠨⡄⠀⠀
-⠀⠀⠀⡂⠀⠀⠀⠀⠀⠀⠈⢎⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠸⠀⠀⢸⠸⢀⠇⠀⠀
-⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠡⢕⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⢐⠀⠀⠈⠢⠥⠀⠀⠀
-⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡉⠒⠠⣀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀⡰⠁⠀⠀⠀
-⠀⠀⠀⠀⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠠⢄⠈⠑⠒⠤⡀⠀⢐⠅⠀⠀⠀⠀⠀⠀⠀⡁⡂⠉⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠈⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠤⢀⠓⠈⠢⢀⢀⠠⠤⠐⠀⡉⠌⠀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠰⠐⠪⠤⢀⢀⠀⠀⠀⠀⠀⠀
-⠀⠀⠀⠀⠀⠀⠀⠈⠁⠢⠄⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠒⡠⠄
-⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠂⠐⠐⠐⠂⠂⠠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄⠐⠂⠂⠀⠉⠀⠀⠀
-]],
-}
-
----@type Array<table>
-M.buttons = {
-    -- {
-    --     action = LazyVim.telescope("files"),
-    --     desc = " Find File" .. string.rep(" ", 33),
-    --     icon = " ",
-    --     key = "f",
-    -- },
-    {
-        action = "enew",
-        desc = " New File" .. string.rep(" ", 34),
-        icon = " ",
-        key = "n",
-    },
-    -- {
-    --     action = "Telescope live_grep",
-    --     desc = " Find Text" .. string.rep(" ", 33),
-    --     icon = " ",
-    --     key = "g",
-    -- },
-    -- {
-    --     action = "TodoTelescope",
-    --     desc = " Find Todo" .. string.rep(" ", 33),
-    --     icon = "󰱒 ",
-    --     key = "t",
-    -- },
-    {
-        action = 'lua require("persistence").load()',
-        desc = " Restore Session" .. string.rep(" ", 27),
-        icon = " ",
-        key = "s",
-    },
-    {
-        action = "qa",
-        desc = " Quit" .. string.rep(" ", 38),
-        icon = " ",
-        key = "q",
-    },
-}
-
-return M
diff --git a/.config/nvim/lua/lib.lua b/.config/nvim/lua/lib.lua
deleted file mode 100644
index c3224134..00000000
--- a/.config/nvim/lua/lib.lua
+++ /dev/null
@@ -1,25 +0,0 @@
-local M = {}
-
----@return table<string, function>
-function M.generate_shortcut_maps()
-    local shortcuts = Config.shortcuts
-    local fs = require("neo-tree.sources.filesystem")
-    local maps = {}
-    for map, path in pairs(shortcuts) do
-        maps[map] = function(state)
-            fs._navigate_internal(state, path, nil, nil, false)
-        end
-    end
-    return maps
-end
-
----@param key string
----@return string?
-function M.get_secret(key)
-    local ok, keys = pcall(require, "config.secrets")
-    if ok then
-        return keys[key]
-    end
-end
-
-return M
diff --git a/.config/nvim/lua/plugins/coding.lua b/.config/nvim/lua/plugins/coding.lua
deleted file mode 100644
index 7ee8847d..00000000
--- a/.config/nvim/lua/plugins/coding.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-return {
-    {
-        "echasnovski/mini.surround",
-        opts = {
-            custom_surroundings = {
-                B = {
-                    input = { "{{ ().*() }}" },
-                    output = { left = "{{ ", right = " }}" },
-                },
-            },
-        },
-    },
-    {
-        "echasnovski/mini.ai",
-        opts = {
-            custom_textobjects = {
-                B = {
-                    require("mini.ai").gen_spec.pair("{{ ", " }}"),
-                },
-            },
-        },
-    },
-}
diff --git a/.config/nvim/lua/plugins/editor.lua b/.config/nvim/lua/plugins/editor.lua
deleted file mode 100644
index f04696ad..00000000
--- a/.config/nvim/lua/plugins/editor.lua
+++ /dev/null
@@ -1,302 +0,0 @@
----@type LazySpec
-return {
-    {
-        "ggandor/flit.nvim",
-        enabled = false,
-    },
-    {
-        "CopilotC-Nvim/CopilotChat.nvim",
-        dependencies = {
-            { "zbirenbaum/copilot.lua" },
-            { "nvim-lua/plenary.nvim" },
-            {
-                "folke/which-key.nvim",
-                optional = true,
-                opts = { defaults = { ["<leader>a"] = { name = "+ai" }, ["<leader>ac"] = { name = "+copilot" } } },
-            },
-        },
-        keys = {
-            { "<leader>acc", "<cmd>CopilotChatToggle<cr>", desc = "Toggle Chat", mode = { "n", "v" } },
-            { "<leader>acx", "<cmd>CopilotChatReset<cr>", desc = "Reset Chat", mode = { "n", "v" } },
-            { "<leader>acf", "<cmd>CopilotChatFix<cr>", desc = "Fix Selection", mode = { "v" } },
-            { "<leader>ace", "<cmd>CopilotChatExplain<cr>", desc = "Explain Selection", mode = { "v" } },
-            { "<leader>acr", "<cmd>CopilotChatExplain<cr>", desc = "Review Selection", mode = { "v" } },
-            { "<leader>aco", "<cmd>CopilotChatOptimize<cr>", desc = "Optimize Selection", mode = { "v" } },
-            { "<leader>acd", "<cmd>CopilotChatDocs<cr>", desc = "Document Selection", mode = { "v" } },
-            { "<leader>act", "<cmd>CopilotChatTests<cr>", desc = "Unittest Selection", mode = { "v" } },
-        },
-        opts = {
-            window = {
-                layout = "float",
-                width = 0.9,
-                height = 0.8,
-            },
-            mappings = {
-                complete = {
-                    detail = "Use @<Tab> or /<Tab> for options.",
-                    insert = "<Tab>",
-                },
-                close = {
-                    normal = "q",
-                    insert = "<C-c>",
-                },
-                reset = {
-                    normal = "<C-l>",
-                    insert = "<C-l>",
-                },
-                submit_prompt = {
-                    normal = "<CR>",
-                    insert = "<C-CR>",
-                },
-                accept_diff = {
-                    normal = "<C-y>",
-                    insert = "<C-y>",
-                },
-                yank_diff = {
-                    normal = "gy",
-                },
-                show_diff = {
-                    normal = "gd",
-                },
-                show_system_prompt = {
-                    normal = "gp",
-                },
-                show_user_selection = {
-                    normal = "gs",
-                },
-            },
-        },
-    },
-    {
-        "jackMort/ChatGPT.nvim",
-        cmd = { "ChatGPT", "ChatGPTActAs", "ChatGPTEditWithInstructions", "ChatGPTRun" },
-        dependencies = {
-            "MunifTanjim/nui.nvim",
-            "nvim-lua/plenary.nvim",
-            "folke/trouble.nvim",
-            "nvim-telescope/telescope.nvim",
-            {
-                "folke/which-key.nvim",
-                optional = true,
-                opts = {
-                    defaults = {
-                        ["<leader>a"] = { name = "+ai" },
-                        ["<leader>ag"] = { name = "+chatgpt" },
-                        ["<leader>agt"] = { name = "+translate" },
-                    },
-                },
-            },
-        },
-        config = function(_, opts)
-            local key = Lib.get_secret("openai")
-            if key then
-                require("chatgpt.api").OPENAI_API_KEY = key
-                require("chatgpt.api").AUTHORIZATION_HEADER = "Authorization: Bearer " .. key
-                require("chatgpt").setup(opts)
-            end
-        end,
-        --stylua: ignore
-        keys = {
-            { "<leader>agc",  function() require("chatgpt").openChat() end,                                              desc = "Toggle Chat" },
-            { "<leader>age",  function() require("chatgpt").edit_with_instructions() end,                                desc = "Edit with instruction",     mode = { "n", "v" } },
-            { "<leader>agg",  function() require("chatgpt").run_action("grammar_correction") end,                        desc = "Grammar Correction",        mode = { "n", "v" } },
-            { "<leader>agtg", function() require("chatgpt").run_action({ fargs = { "translate", "german" } }) end,       desc = "German",                    mode = { "n", "v" } },
-            { "<leader>agte", function() require("chatgpt").run_action({ fargs = { "translate", "english" } }) end,      desc = "English",                   mode = { "n", "v" } },
-            { "<leader>agtf", function() require("chatgpt").run_action({ fargs = { "translate", "french" } }) end,       desc = "French",                    mode = { "n", "v" } },
-            { "<leader>agtr", function() require("chatgpt").run_action({ fargs = { "translate", "russian" } }) end,      desc = "Russian",                   mode = { "n", "v" } },
-            { "<leader>agk",  function() require("chatgpt").run_action({ fargs = { "keywords" } }) end,                  desc = "Keywords",                  mode = { "n", "v" } },
-            { "<leader>agd",  function() require("chatgpt").run_action({ fargs = { "docstring" } }) end,                 desc = "Docstring",                 mode = { "n", "v" } },
-            { "<leader>aga",  function() require("chatgpt").run_action({ fargs = { "add_tests" } }) end,                 desc = "Add Tests",                 mode = { "n", "v" } },
-            { "<leader>ago",  function() require("chatgpt").run_action({ fargs = { "optimize_code" } }) end,             desc = "Optimize Code",             mode = { "n", "v" } },
-            { "<leader>ags",  function() require("chatgpt").run_action({ fargs = { "summarize" } }) end,                 desc = "Summarize",                 mode = { "n", "v" } },
-            { "<leader>agf",  function() require("chatgpt").run_action({ fargs = { "fix_bugs" } }) end,                  desc = "Fix Bugs",                  mode = { "n", "v" } },
-            { "<leader>agx",  function() require("chatgpt").run_action({ fargs = { "explain_code" } }) end,              desc = "Explain Code",              mode = { "n", "v" } },
-            { "<leader>agr",  function() require("chatgpt").run_action({ fargs = { "roxygen_edit" } }) end,              desc = "Roxygen Edit",              mode = { "n", "v" } },
-            { "<leader>agl",  function() require("chatgpt").run_action({ fargs = { "code_readability_analysis" } }) end, desc = "Code Readability Analysis", mode = { "n", "v" } },
-        },
-        opts = {
-            edit_with_instructions = {
-                keymaps = {
-                    close = "<C-c>",
-                    accept = "<C-y>",
-                    toggle_diff = "<C-d>",
-                    toggle_settings = "<C-o>",
-                    toggle_help = "<C-.>",
-                    cycle_windows = "<Tab>",
-                    use_output_as_input = "<C-,>",
-                },
-            },
-            chat = {
-                question_sign = "",
-                answer_sign = "󰚩",
-                sessions_window = {
-                    active_sign = " 󰭹 ",
-                    inactive_sign = " 󰻞 ",
-                    current_line_sign = "",
-                    border = {
-                        style = "single",
-                    },
-                    win_options = {
-                        winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                    },
-                },
-                keymaps = {
-                    close = "<C-c>",
-                    yank_last = "<C-y>",
-                    yank_last_code = "<C-p>",
-                    scroll_up = "<C-u>",
-                    scroll_down = "<C-d>",
-                    new_session = "<C-g>",
-                    cycle_windows = "<Tab>",
-                    cycle_modes = "<C-f>",
-                    next_message = "<C-n>",
-                    prev_message = "<C-p>",
-                    select_session = "<Space>",
-                    rename_session = "r",
-                    delete_session = "d",
-                    draft_message = "<C-r>",
-                    edit_message = "e",
-                    delete_message = "d",
-                    toggle_settings = "<C-o>",
-                    toggle_sessions = "<C-s>",
-                    toggle_help = "<C-.>",
-                    toggle_message_role = "<C-,>",
-                    toggle_system_role_open = "<C-'>",
-                    stop_generating = "<C-x>",
-                },
-            },
-            popup_layout = {
-                default = "center",
-                center = {
-                    width = "90%",
-                    height = "80%",
-                },
-                right = {
-                    width = "30%",
-                    width_settings_open = "50%",
-                },
-            },
-            popup_window = {
-                border = {
-                    style = "single",
-                },
-                win_options = {
-                    winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                },
-            },
-            system_window = {
-                border = {
-                    style = "single",
-                },
-                win_options = {
-                    winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                },
-            },
-            popup_input = {
-                border = {
-                    style = "single",
-                },
-                win_options = {
-                    winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                },
-                submit = "<C-Enter>",
-                submit_n = "<Enter>",
-            },
-            settings_window = {
-                border = {
-                    style = "single",
-                },
-                win_options = {
-                    winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                },
-            },
-            help_window = {
-                border = {
-                    style = "single",
-                },
-                win_options = {
-                    winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
-                },
-            },
-            openai_params = {
-                -- model = "gpt-3.5-turbo",
-                model = "gpt-4-turbo",
-            },
-            openai_edit_params = {
-                -- model = "gpt-3.5-turbo",
-                model = "gpt-4-turbo",
-            },
-        },
-    },
-    {
-        "nvim-neo-tree/neo-tree.nvim",
-        opts = {
-            filesystem = {
-                window = {
-                    mappings = Lib.generate_shortcut_maps(),
-                },
-            },
-        },
-    },
-    {
-        "folke/todo-comments.nvim",
-        opts = {
-            highlight = {
-                multiline = false,
-            },
-        },
-    },
-    {
-        "zk-org/zk-nvim",
-        ft = { "markdown" },
-        main = "zk",
-        dependencies = {
-            {
-                "folke/which-key.nvim",
-                optional = true,
-                opts = { defaults = { ["<leader>z"] = { name = "+zk" } } },
-            },
-        },
-        opts = {
-            picker = "telescope",
-            lsp = {
-                cmd = { "zk", "lsp" },
-                name = "zk",
-                config = {
-                    on_attach = function(client)
-                        if client.name == "zk" then
-                            require("zk").cd()
-                        end
-                    end,
-                },
-                auto_attach = {
-                    enabled = true,
-                    filetypes = { "markdown" },
-                },
-            },
-        },
-        --stylua: ignore
-        keys = {
-            { "<leader>zn",  function() require("zk.commands").get("ZkNew")({ title = vim.fn.input('Title: ') }) end, desc = "New Note",             mode = { "n", "v" } },
-            { "<leader>znt", function() require("zk.commands").get("ZkNewFromTitleSelection")() end,                  desc = "Title from selection", mode = { "v" } },
-            {
-                "<leader>znc",
-                function()
-                    require("zk.commands").get("ZkNewFromContentSelection")({
-                        title = vim.fn.input(
-                            'Title: ')
-                    })
-                end,
-                desc = "Content from selection",
-                mode = { "v" }
-            },
-            { "<leader>zb", function() require("zk.commands").get("ZkBacklinks")() end,                      desc = "Links" },
-            { "<leader>zl", function() require("zk.commands").get("ZkLinks")() end,                          desc = "Backlinks" },
-            { "<leader>zx", function() require("zk.commands").get("ZkIndex")() end,                          desc = "Index" },
-            { "<leader>zf", function() require("zk.commands").get("ZkNotes")({ sort = { 'modified' } }) end, desc = "Find Notes" },
-            { "<leader>zt", function() require("zk.commands").get("ZkTags")() end,                           desc = "Find Note Tags" },
-            { "<leader>zf", function() require("zk.commands").get("ZkMatch")() end,                          desc = "Find Notes (Match Selection)", mode = { "v" } },
-            { "<leader>zi", function() require("zk.commands").get("ZkInsertLinkAtSelection")() end,          desc = "Insert Link",                  mode = { "n", "v" } },
-        },
-    },
-}
diff --git a/.config/nvim/lua/plugins/language.lua b/.config/nvim/lua/plugins/language.lua
deleted file mode 100644
index a3335c20..00000000
--- a/.config/nvim/lua/plugins/language.lua
+++ /dev/null
@@ -1,231 +0,0 @@
----@type LazySpec
-return {
-    {
-        "nvim-treesitter/nvim-treesitter",
-        opts = {
-            auto_install = true,
-            ensure_installed = Config.language.treesitter_install,
-            highlight = {
-                additional_vim_regex_highlighting = { "markdown" },
-            },
-        },
-    },
-    {
-        "stevearc/conform.nvim",
-        opts = {
-            formatters_by_ft = Config.language.formatters_by_ft,
-            formatters = Config.language.formatters,
-        },
-    },
-    {
-        "neovim/nvim-lspconfig",
-        opts = {
-            servers = Config.language.lsp,
-            setup = Config.language.lsp_setup,
-        },
-    },
-    {
-        "mfussenegger/nvim-lint",
-        opts = {
-            linters_by_ft = Config.language.linters_by_ft,
-            linters = Config.language.linters,
-        },
-    },
-    {
-        "williamboman/mason.nvim",
-        opts = {
-            ensure_installed = Config.language.mason_install,
-            registries = {
-                "github:mason-org/mason-registry",
-            },
-        },
-    },
-    {
-        "hrsh7th/nvim-cmp",
-        opts = function(_, opts)
-            local cmp = require("cmp")
-            local luasnip = require("luasnip")
-
-            table.insert(opts.auto_brackets, "python")
-
-            table.insert(opts.sources, { name = "crates" })
-
-            opts.preselect = cmp.PreselectMode.None
-            opts.snippet = {
-                expand = function(args)
-                    require("luasnip").lsp_expand(args.body)
-                end,
-            }
-            opts.mapping = {
-                ["<Up>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }),
-                ["<Down>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }),
-                ["<C-Space>"] = cmp.mapping(function(fallback)
-                    if cmp.visible() then
-                        if luasnip.expandable() then
-                            luasnip.expand()
-                        else
-                            cmp.confirm({
-                                select = true,
-                            })
-                        end
-                    else
-                        fallback()
-                    end
-                end),
-
-                ["<Tab>"] = cmp.mapping(function(fallback)
-                    if cmp.visible() then
-                        cmp.select_next_item()
-                    elseif luasnip.locally_jumpable(1) then
-                        luasnip.jump(1)
-                    else
-                        fallback()
-                    end
-                end, { "i", "s" }),
-
-                ["<S-Tab>"] = cmp.mapping(function(fallback)
-                    if cmp.visible() then
-                        cmp.select_prev_item()
-                    elseif luasnip.locally_jumpable(-1) then
-                        luasnip.jump(-1)
-                    else
-                        fallback()
-                    end
-                end, { "i", "s" }),
-            }
-
-            opts.experimental = {
-                ghost_text = false,
-            }
-        end,
-    },
-    {
-        "mfussenegger/nvim-ansible",
-        keys = {
-            {
-                "<leader>tr",
-                function()
-                    require("ansible").run()
-                end,
-                silent = true,
-            },
-        },
-        {
-            "b0o/SchemaStore.nvim",
-            lazy = true,
-            version = false,
-        },
-    },
-    {
-        "iamcco/markdown-preview.nvim",
-        cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
-        build = function()
-            vim.fn["mkdp#util#install"]()
-        end,
-        keys = {
-            {
-                "<leader>cp",
-                ft = "markdown",
-                "<cmd>MarkdownPreviewToggle<cr>",
-                desc = "Markdown Preview",
-            },
-        },
-        config = function()
-            vim.cmd([[do FileType]])
-        end,
-    },
-    {
-        "nvim-neotest/neotest",
-        dependencies = {
-            "nvim-neotest/neotest-python",
-        },
-        opts = function(_, opts)
-            local _, rt = pcall(require, "rustaceanvim.neotest")
-            opts.adapters = vim.tbl_deep_extend("force", opts.adapters, {
-                ["neotest-python"] = {},
-                rt,
-            })
-        end,
-    },
-    {
-        "mfussenegger/nvim-dap-python",
-        -- stylua: ignore
-        keys = {
-            { "<leader>dPt", function() require("dap-python").test_method() end, desc = "Debug Method", ft = "python" },
-            { "<leader>dPc", function() require("dap-python").test_class() end,  desc = "Debug Class",  ft = "python" },
-        },
-        config = function()
-            local path = require("mason-registry").get_package("debugpy"):get_install_path()
-            require("dap-python").setup(path .. "/venv/bin/python")
-        end,
-    },
-    {
-        "linux-cultist/venv-selector.nvim",
-        cmd = "VenvSelect",
-        opts = function(_, opts)
-            if LazyVim.has("nvim-dap-python") then
-                opts.dap_enabled = true
-            end
-            return vim.tbl_deep_extend("force", opts, {
-                name = {
-                    "venv",
-                    ".venv",
-                    "env",
-                    ".env",
-                },
-            })
-        end,
-        keys = { { "<leader>cv", "<cmd>:VenvSelect<cr>", desc = "Select VirtualEnv" } },
-    },
-    {
-        "Saecki/crates.nvim",
-        event = { "BufRead Cargo.toml" },
-        opts = {
-            src = {
-                cmp = { enabled = true },
-            },
-        },
-    },
-    {
-        "mrcjkb/rustaceanvim",
-        version = "^4",
-        ft = { "rust" },
-        opts = {
-            server = {
-                on_attach = function(_, bufnr)
-                    vim.keymap.set("n", "<leader>cR", function()
-                        vim.cmd.RustLsp("codeAction")
-                    end, { desc = "Code Action", buffer = bufnr })
-                    vim.keymap.set("n", "<leader>dr", function()
-                        vim.cmd.RustLsp("debuggables")
-                    end, { desc = "Rust Debuggables", buffer = bufnr })
-                end,
-                default_settings = {
-                    ["rust-analyzer"] = {
-                        cargo = {
-                            allFeatures = true,
-                            loadOutDirsFromCheck = true,
-                            runBuildScripts = true,
-                        },
-                        checkOnSave = {
-                            allFeatures = true,
-                            command = "clippy",
-                            extraArgs = { "--no-deps" },
-                        },
-                        procMacro = {
-                            enable = true,
-                            ignored = {
-                                ["async-trait"] = { "async_trait" },
-                                ["napi-derive"] = { "napi" },
-                                ["async-recursion"] = { "async_recursion" },
-                            },
-                        },
-                    },
-                },
-            },
-        },
-        config = function(_, opts)
-            vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {})
-        end,
-    },
-}
diff --git a/.config/nvim/lua/plugins/ui.lua b/.config/nvim/lua/plugins/ui.lua
deleted file mode 100644
index 269f725e..00000000
--- a/.config/nvim/lua/plugins/ui.lua
+++ /dev/null
@@ -1,78 +0,0 @@
----@type LazySpec
-return {
-    {
-        "folke/tokyonight.nvim",
-        lazy = true,
-        opts = { style = "night" },
-        on_highlights = function(hl, _)
-            hl.CurSearch = nil
-        end,
-    },
-    {
-        "folke/noice.nvim",
-        opts = {
-            cmdline = {
-                view = "cmdline",
-                presets = {
-                    command_palette = false,
-                },
-            },
-        },
-    },
-    {
-        "nvimdev/dashboard-nvim",
-        opts = function(_, opts)
-            local center = Config.ui.buttons
-            local banners = Config.ui.banners
-            for _, button in ipairs(center) do
-                button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
-                button.key_format = "  %s"
-            end
-            math.randomseed(os.time())
-            local banner = "\n" .. banners[math.random(#banners)] .. "\n"
-            opts.config.header = vim.split(banner, "\n")
-            opts.config.center = center
-            opts.config.footer = function()
-                local stats = require("lazy").stats()
-                local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
-                return { "Behold: a Snail's Vim | " .. stats.count .. "  " .. ms .. "ms" }
-            end
-        end,
-    },
-    {
-        "echasnovski/mini.indentscope",
-        opts = {
-            draw = {
-                animation = require("mini.indentscope").gen_animation.none(),
-            },
-        },
-    },
-    {
-        "nvim-lualine/lualine.nvim",
-        opts = {
-            sections = {
-                lualine_y = {
-                    {
-                        function()
-                            --stylua: ignore
-                            local chars = { "", "", "", "", "", "", "", "", "", "", "", "", "" }
-                            return chars[math.ceil(vim.fn.line(".") / vim.fn.line("$") * #chars)]
-                        end,
-                        separator = " ",
-                        padding = { left = 1, right = 0 },
-                    },
-                    { "location", padding = { left = 0, right = 1 } },
-                },
-                lualine_z = {
-                    {
-                        "o:encoding",
-                        fmt = string.upper,
-                        separator = " ",
-                        padding = { left = 1, right = 0 },
-                    },
-                    { "fileformat", padding = { left = 0, right = 1 } },
-                },
-            },
-        },
-    },
-}
diff --git a/.config/nvim/spell/en.utf-8.add b/.config/nvim/spell/en.utf-8.add
deleted file mode 100644
index 8cbb1484..00000000
--- a/.config/nvim/spell/en.utf-8.add
+++ /dev/null
@@ -1,10 +0,0 @@
-ansible
-submodules
-roundcube
-postgres
-binpkgs
-hostdir
-config
-wireguard
-Webchecks
-fail2ban
diff --git a/.config/nvim/stylua.toml b/.config/nvim/stylua.toml
deleted file mode 100644
index e55efd51..00000000
--- a/.config/nvim/stylua.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-indent_type = "Spaces"
-indent_width = 4
-column_width = 120
diff --git a/.config/nvim/todo b/.config/nvim/todo
deleted file mode 100644
index cc22b988..00000000
--- a/.config/nvim/todo
+++ /dev/null
@@ -1,2 +0,0 @@
-show color codes
-window split border contrast
diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile
index b1ff9354..9b6bdd46 100644
--- a/.config/zsh/.zprofile
+++ b/.config/zsh/.zprofile
@@ -123,7 +123,6 @@ export XBPS_DISTDIR="$XDG_DOCUMENTS_DIR/dev/desktop/void-packages"
 export ZK_NOTEBOOK_DIR="$XDG_DOCUMENTS_DIR/notes"
 
 localpath="$(find -L ~/.local/bin -type d -printf %p: | sed 's/.$//')"
-fpath=($XDG_CONFIG_HOME/zsh/completions $fpath)
 export PATH="$PATH:$localpath"
 
 export PNPM_HOME="/home/luca/.local/share/pnpm"
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 6c5fabe1..4251a6a0 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -13,4 +13,3 @@ source "$ZDOTDIR/plugins/virtualenvwrapper.plugin.zsh"
 
 export GPG_TTY="$(tty)"
 gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
-clear
diff --git a/.config/zsh/configs/setup b/.config/zsh/configs/setup
index 3e1d9308..42c714f4 100644
--- a/.config/zsh/configs/setup
+++ b/.config/zsh/configs/setup
@@ -1,5 +1,7 @@
 [ ! -f $XDG_DATA_HOME/zsh/history ] && mkdir -p $XDG_DATA_HOME/zsh && touch $XDG_DATA_HOME/zsh/history
 
+fpath=($XDG_CONFIG_HOME/zsh/completions $fpath)
+
 setopt HIST_IGNORE_ALL_DUPS HIST_REDUCE_BLANKS HIST_VERIFY BANG_HIST interactive_comments autocd noflowcontrol longlistjobs nonomatch notify hash_list_all share_history histignorespace PROMPT_SUBST
 
 autoload -Uz colors && colors
@@ -25,5 +27,6 @@ export SAVEHIST=10000000
 export HISTFILE="$XDG_DATA_HOME/zsh/history"
 export KEYTIMEOUT=1
 
+
 source $ZDOTDIR/configs/hashes
 source $ZDOTDIR/configs/prompt
diff --git a/.gitmodules b/.gitmodules
index 71258a0e..573e5312 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
 [submodule ".config/zsh/plugins/fast-syntax-highlighting"]
 	path = .config/zsh/plugins/fast-syntax-highlighting
 	url = https://github.com/zdharma-continuum/fast-syntax-highlighting
+[submodule ".config/nvim"]
+	path = .config/nvim
+	url = https://git.snaile.de/snailed/nvim-init.git