Skip to content

S4NKALP/keycodex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Your Personalized Dev Env ❤️👨‍💻

keycodex Demo
keycodex screenshot

Handcrafted Neovim setup for the ultimate CLI dev experience.

✨ Features

  • Fully configured LSP: Out of the box LSP and completions, including Copilot (optional)
  • Awesome keybindings: Intuitive and well documented keybindings with which-key
  • Blazingly fast: Starts up in less than 30ms thanks to extensive lazy loading
  • Batteries included: Has all the necessary plugins included out of the box
  • Git in there: Powerful git integrations thanks to lazygit, fugitive, gitsigns and more
  • Pretty colors: Comes with treesitter and onedark preconfigured with full transparency support
  • Tmux integration: Works with your tmux configurations out of the box
  • Dev tools: Comes with debugging, testing, database and REPL support, pick and choose
  • Auto install: All necessary LSPs, Null LS sources, Treesitter Parsers etc. are auto installed
  • User module: Configure keycodex according to your needs by using the user module!
  • and some more

Most importantly:

Built for extending: keycodex has a easy to understand config structure that promotes personalization, so go ahead, bring your keybindings, functions and plugins over, and truly make keycodex: Your Personalized Development Environment!

⚡ Setup

⚙️ Requirements

Before you begin, ensure you have met the following requirements:

  • You have installed the latest version of neovim
  • Some command line tools: fd, ripgrep

💻 Installation

To install keycodex clone the repo and setup the symlink

git clone https://github.com/S4NKALP/keycodex

On Linux and Mac

ln -sfnv $PWD/keycodex $HOME/.config/nvim

On Windows Powershell

New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\keycodex" -Force

🚀 Usage

🎨 User Configs

keycodex supports a user module where you can store your custom configs and override any default configs.

To use custom configs create the file lua/user/init.lua in keycodex, with the following structure:

-- lua/user/init.lua
local user = {
    auto_install = true, -- enable auto install of LSPs, Treesitter parsers etc.
    user_lsp_servers = {
        -- Auto installed LSPs defined by user
    },
    user_null_ls_sources = {
        -- Auto installed Null LS sources defined by user
    },
    user_treesitter_parsers = {
        -- Auto installed Treesitter parsers defined by user
    },

    enable_db_explorer = false, -- enable dbee.nvim support
    enable_debugger = false, -- enable dap.nvim support
    enable_test_runner = false, -- enable neotest.nvim support
    enable_trainer = false, -- enable hardtime.nvim support
    enable_wakatime = false, -- enable wakatime.nvim support
    enable_smear_cursor = false, -- enable smear-cursor.nvim support
    user_plugins = {
        -- Add your lazy plugin spec here
    },

    user_keybindings = {
        -- Add your which-key bindings here
    }
}

return user

You can add and require any other custom modules and configurations you want in this file.

user module is not part of the repo, you can set up user module as a separate git repository while continuing to receive keycodex updates.

Core

Files in lua/core control the core of neovim:

⌨️ Keybindings

Apart from core/keys most keybindings are configured using which-key

📦 Plugins

You can check out the plugins list file file to see the plugins that are included in keycodex.

  • lang: Plugins related to language features, completions, lsp, editing etc.
  • tools: Plugins that add tool integrations to the editor.
  • ui: Plugins that make improve Neovim user experience.

🙏 Acknowledgments

This project builds upon nvim2k by 2KAbhishek, enhancing it with additional features and optimizations.

Sponsor this project

Contributors 2

  •  
  •  

Languages