diff --git a/neovim-colemak/.gitignore b/neovim-colemak/.gitignore
new file mode 100644
index 0000000..e033bc6
--- /dev/null
+++ b/neovim-colemak/.gitignore
@@ -0,0 +1 @@
+lazy-lock.json
diff --git a/neovim-colemak/init.lua b/neovim-colemak/init.lua
new file mode 100644
index 0000000..260d2d4
--- /dev/null
+++ b/neovim-colemak/init.lua
@@ -0,0 +1,139 @@
+-- Setup Lazy Plugin Manager
+require("config.lazy")
+
+-- Setup Config
+vim.cmd.colorscheme("rose-pine")
+vim.opt.termguicolors = true
+
+vim.opt.nu = true
+vim.opt.rnu = true
+
+vim.opt.tabstop = 2
+vim.opt.softtabstop = 2
+vim.opt.shiftwidth = 2
+vim.opt.expandtab = true
+vim.opt.autoindent = true
+
+vim.opt.smartindent = true
+
+vim.opt.wrap = false
+
+vim.opt.swapfile = false
+vim.opt.backup = false
+vim.opt.undodir = os.getenv("HOME") .. "/.nvim/undodir"
+vim.opt.undofile = true
+
+vim.opt.hlsearch = false
+vim.opt.incsearch = true
+
+vim.opt.termguicolors = true
+
+vim.opt.scrolloff = 12
+
+vim.opt.updatetime = 50
+
+vim.opt.splitbelow = true
+vim.opt.splitright = true
+
+vim.opt.encoding = "utf-8"
+
+vim.opt.shell = "bash"
+
+vim.opt.mouse = ""
+
+vim.opt.ignorecase = true
+vim.opt.smartcase = true
+vim.opt.incsearch = true
+
+vim.opt.cursorline = true
+
+vim.opt.title = true
+
+vim.opt.clipboard = "unnamedplus"
+
+vim.opt.colorcolumn = "80"
+
+vim.cmd "set showtabline=0 | set laststatus=0"
+
+vim.wo.fillchars='eob: '
+
+vim.g.codeium_enabled = false
+
+vim.g.mapleader = " "
+vim.keymap.set("n", "<leader>bk", vim.cmd.bdelete,
+ { desc = "Kill Buffer" })
+vim.keymap.set("n", "<leader>bn", vim.cmd.bnext,
+ { desc = "Next Buffer" })
+vim.keymap.set("n", "<leader>bp", vim.cmd.bprev,
+ { desc = "Previous Buffer" })
+
+vim.keymap.set("n", "K", vim.lsp.buf.hover)
+vim.keymap.set("n", "gd", vim.lsp.buf.definition)
+vim.keymap.set("n", "gt", vim.lsp.buf.type_definition)
+vim.keymap.set("n", "gi", vim.lsp.buf.implementation)
+vim.keymap.set("n", "ge", vim.diagnostic.goto_next)
+
+vim.keymap.set("n", "<leader>wh", vim.cmd.split,
+ { desc = "Split Window Horizontally" })
+vim.keymap.set("n", "<leader>wv", vim.cmd.vsplit,
+ { desc = "Split Window Vertically" })
+vim.keymap.set("n", "<leader>wc", "<C-w>q",
+ { desc = "Close Window" })
+vim.keymap.set("n", "<leader>ww", "<C-w>w",
+ { desc = "Next Window" })
+
+
+local tscope = require('telescope.builtin')
+vim.keymap.set('n', '<leader>ff', tscope.find_files,
+ { desc = "Find File" })
+vim.keymap.set('n', '<leader>fb', tscope.buffers,
+ { desc = "Find Buffer" })
+vim.keymap.set('n', '<leader>fh', tscope.help_tags,
+ { desc = "Find Help" })
+vim.keymap.set('n', '<leader>fg', function()
+ tscope.grep_string(
+ { search = vim.fn.input("Grep > "),
+ desc = "Find by Grep" });
+end)
+
+-- Setup Plugins
+require("telescope").setup({})
+require("nvim-autopairs").setup({
+ disable_filetype = { "TelescopePrompt" , "vim" }
+})
+require("nvim-highlight-colors").setup({})
+require("statuscol").setup({relculright = true})
+require("lualine").setup({
+ options = {
+ icons_enabled = false,
+ component_separators = { left = '|', right = '|'},
+ section_separators = { left = '', right = ''},
+ },
+ sections = {
+ lualine_a = {"mode","filename"},
+ lualine_b = {},
+ lualine_c = {},
+ lualine_x = {"diagnostics"},
+ lualine_y = {},
+ lualine_z = {}
+ }
+})
+require('leap').create_default_mappings()
+require('leap').opts.equivalence_classes = {
+ ' \t\r\n', '([{', ')]}', '\'"`' }
+require("nvim-treesitter.configs").setup({
+ ensure_installed = {"c", "vimdoc", "markdown", "jsonc", "lua"},
+ sync_install = false,
+ highlight = { enable = true },
+ indent = { enable = true },
+})
+-- require("config.cmp")
+local capabilities = require('cmp_nvim_lsp').default_capabilities()
+require("lspconfig").clangd.setup({capabilities = capabilities})
+require("lspconfig").rust_analyzer.setup({})
+
+-- Use Colemak Bindings
+require("config.colemak")
+
+-- Neovide Config
+require("config.neovide")
diff --git a/neovim-colemak/lua/config/cmp.lua b/neovim-colemak/lua/config/cmp.lua
new file mode 100644
index 0000000..13ca020
--- /dev/null
+++ b/neovim-colemak/lua/config/cmp.lua
@@ -0,0 +1,30 @@
+vim.opt.completeopt={"menu", "menuone", "noselect"}
+
+local cmp = require'cmp'
+
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
+ -- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+)
+ end,
+ },
+ window = {
+ -- completion = cmp.config.window.bordered(),
+ -- documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'path' },
+ { name = 'luasnip' }, -- For luasnip users.
+ }, {
+ { name = 'buffer' },
+ })
+})
diff --git a/neovim-colemak/lua/config/colemak.lua b/neovim-colemak/lua/config/colemak.lua
new file mode 100644
index 0000000..a3a8d9a
--- /dev/null
+++ b/neovim-colemak/lua/config/colemak.lua
@@ -0,0 +1,29 @@
+local function map(mode, lhs, rhs, opts)
+ local options = { noremap = true, silent = true }
+ if opts then
+ options = vim.tbl_extend("force", options, opts)
+ end
+ vim.keymap.set(mode, lhs, rhs, options)
+end
+
+map("", "n", "j")
+map("", "e", "k")
+map("", "i", "l")
+map("", "j", "n")
+map("", "k", "e")
+map("", "l", "i")
+map("", "K", "E")
+map("", "N", "J")
+map("", "E", "K") -- As in 'Explore' documentation
+map("", "L", "I")
+map("", "I", "L")
+map("", "J", "N")
+
+map("n", "<c-w>h", "<c-w>h")
+map("n", "<c-w>n", "<c-w>j")
+map("n", "<c-w>e", "<c-w>k")
+map("n", "<C-w>i", "<c-w>l")
+
+-- Kakoune Holdover
+map ("n", "gh", "0")
+map ("n", "gi", "$")
diff --git a/neovim-colemak/lua/config/lazy.lua b/neovim-colemak/lua/config/lazy.lua
new file mode 100644
index 0000000..f5ee74c
--- /dev/null
+++ b/neovim-colemak/lua/config/lazy.lua
@@ -0,0 +1,35 @@
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- Make sure to setup `mapleader` and `maplocalleader` before
+-- loading lazy.nvim so that mappings are correct.
+-- This is also a good place to setup other settings (vim.opt)
+vim.g.mapleader = " "
+vim.g.maplocalleader = "\\"
+
+-- Setup lazy.nvim
+require("lazy").setup({
+ spec = {
+ -- import your plugins
+ { import = "plugins" },
+ },
+ -- Configure any other settings here. See the documentation for more details.
+ -- colorscheme that will be used when installing plugins.
+ install = { colorscheme = { "habamax" } },
+ -- automatically check for plugin updates
+ checker = { enabled = true },
+})
diff --git a/neovim-colemak/lua/config/neovide.lua b/neovim-colemak/lua/config/neovide.lua
new file mode 100644
index 0000000..9f86d98
--- /dev/null
+++ b/neovim-colemak/lua/config/neovide.lua
@@ -0,0 +1,13 @@
+if vim.g.neovide then
+ -- Some Code
+ vim.o.guifont = "InconsolataGo Nerd Font"
+
+ -- Helper function for transparency formatting
+ local alpha = function()
+ return string.format("%x", math.floor(255 * vim.g.transparency or 0.8))
+ end
+ -- g:neovide_transparency should be 0 if you want to unify transparency of content and title bar.
+ vim.g.neovide_transparency = 1.0
+ vim.g.transparency = 0.8
+ vim.g.neovide_background_color = "#0f1117" .. alpha()
+end
diff --git a/neovim-colemak/lua/plugins.lua b/neovim-colemak/lua/plugins.lua
new file mode 100644
index 0000000..7982b53
--- /dev/null
+++ b/neovim-colemak/lua/plugins.lua
@@ -0,0 +1,32 @@
+return {
+ {"rose-pine/neovim", as = "rose-pine"},
+ {"brenoprata10/nvim-highlight-colors"},
+ {"windwp/nvim-autopairs"},
+ {"nvim-treesitter/nvim-treesitter"},
+ {"nvim-telescope/telescope.nvim",
+ dependencies = {"nvim-lua/plenary.nvim"}},
+ {"hrsh7th/nvim-cmp"},
+ {"hrsh7th/cmp-buffer"},
+ {"hrsh7th/cmp-path"},
+ {"hrsh7th/cmp-nvim-lsp"},
+ {"L3MON4D3/LuaSnip"},
+ {"saadparwaiz1/cmp_luasnip"},
+ {"ggandor/leap.nvim",
+ dependencies = {"tpope/vim-repeat"}},
+ {"nvim-lualine/lualine.nvim"},
+ {"luukvbaal/statuscol.nvim"},
+ {"Exafunction/codeium.vim", event = 'BufEnter'},
+ {"neovim/nvim-lspconfig", lazy = false,
+ dependencies = {
+ { "ms-jpq/coq_nvim", branch = "coq" },
+ { "ms-jpq/coq.artifacts", branch = "artifacts" },
+ { 'ms-jpq/coq.thirdparty', branch = "3p" }
+ },
+ init = function()
+ vim.g.coq_settings = {
+ auto_start = true, -- if you want to start COQ at startup
+ -- Your COQ settings here
+ }
+ end,
+ }
+}
|