{"id":32557735,"url":"https://github.com/komar007/dot-nvim","last_synced_at":"2026-04-29T16:03:11.983Z","repository":{"id":223137823,"uuid":"758981994","full_name":"komar007/dot-nvim","owner":"komar007","description":"nix-enabled neovim configuration for maximum productivity","archived":false,"fork":false,"pushed_at":"2025-10-28T09:45:01.000Z","size":2039,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T11:29:31.935Z","etag":null,"topics":["home-manager-module","neovim","neovim-config","neovim-configurations","neovim-dotfiles","nix","nix-flake","nvim","nvim-config","nvim-configuration","nvim-dotfiles"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/komar007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-17T16:35:50.000Z","updated_at":"2025-10-28T09:45:04.000Z","dependencies_parsed_at":"2024-07-31T07:29:28.140Z","dependency_job_id":"eadfc7a4-d329-4525-8540-11fb1579a8bc","html_url":"https://github.com/komar007/dot-nvim","commit_stats":null,"previous_names":["komar007/neovim-config","komar007/dot-nvim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/komar007/dot-nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komar007%2Fdot-nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komar007%2Fdot-nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komar007%2Fdot-nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komar007%2Fdot-nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/komar007","download_url":"https://codeload.github.com/komar007/dot-nvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/komar007%2Fdot-nvim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281533490,"owners_count":26517827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-manager-module","neovim","neovim-config","neovim-configurations","neovim-dotfiles","nix","nix-flake","nvim","nvim-config","nvim-configuration","nvim-dotfiles"],"created_at":"2025-10-28T23:50:43.308Z","updated_at":"2025-10-28T23:50:44.205Z","avatar_url":"https://github.com/komar007.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neovim config\n\nThis is my everyday neovim config, used mainly for work.\n\nEverything is provided in hope that it will be useful, but all in all it is just what I find useful\nand it’s nothing but my private preferences grouped together and made public. Enjoy!\n\n![Neovim config\nscreenshot](/../main/screenshot1.png?raw=true \"Neovim config screenshot: LSP documentation\")\n\n## Howto\n\nWhat to do if you want to try out this configuration?\n\n### If you are using Nix (on NixOS or not)\n\nThis repository is a flake which provides a package, a devshell and a home-manager module.\n\nThe simplest way to use this configuration is to use the provided home-manager module.\n\nBackup and remove your current `~/.config/nvim` (unless you already manage it using home-manager -\nthen disable your own configuration), then add the flake input like so:\n\n``` nix\n{\n  description = \"...\";\n  inputs = {\n    #...\n    komar-nvim.url = \"github:komar007/neovim-config\";\n    #...\n  };\n  #...\n}\n```\n\nThen, add the module provided in `homeManagerModules` output of the flake to your home-manager\nconfiguration:\n\n``` nix\n{\n  description = \"...\";\n  inputs = { #... }\n  outputs = { self, nixpkgs, home-manager, komar-nvim, ... } @ inputs:\n  homeConfigurations =\n  let\n    system = \"x86_64-linux\";\n    komar-nvim-module = system: komar-nvim.homeManagerModules.${system}.default;\n  in\n  {\n    home = home-manager.lib.homeManagerConfiguration {\n      #...\n      modules = [\n          komar-nvim-module\n      ];\n      #...\n    }\n  };\n}\n```\n\nRemember to remove neovim from the list of packages to avoid conflict and run `home-manager switch`.\n\n#### Making changes\n\nMaking changes to the configuration and package requires that you clone the repository and switch\nneovim to use both the package and configuration from the repository instead of `~/.config/nvim`\n(which is managed by nix and flake-locked to the github repository). Fortunately, you can do this\nquite easily with the provided `nvim_cold_reload` wrapper.\n\nFirst, clone the repository somewhere:\n\n``` sh\ngit clone --recurse-submodules https://github.com/komar007/neovim-config.git ~/repos/neovim-config\n```\n\nThen, for convenience, set an alias to the wrapper:\n\n``` sh\nalias nvim=~/repos/neovim-config/nvim_wrapper\n```\n\nThen, run `nvim` and inside of neovim, `:ReloadAlt` (provided by wrapper). This reloads neovim to an\nalternative configuration which uses the package (neovim + dependencies like LSP servers) and the\nconfiguration from the flake (cloned to `~/repos/neovim-config`). You can then use `:Reload` as you\nwork on the configuration. `:ReloadNorm` takes you back to the flake-locked configuration and\npackage.\n\nWhen you finally fork this repository on github, you can maintain a stable version of your\nconfiguration in the fork. After you introduce a change, switch to it and test “in production” in\none of you open sessions with `:ReloadAlt` and go back with `:ReloadNorm`. When the change is\nstable, push to gerrit, update your home-manager’s flake input `komar-nvim` and run\n`home-manager switch`.\n\n### If you are not using Nix (and don’t want to (…but you should, really))\n\nI manage the installed LSP servers using Nix and you will either need it or have to provide all the\nrequired executables via `PATH`.\n\nTo try the configuration without the LSP servers, you can override `XDG_CONFIG_HOME` to point to\nthis repository, for example:\n\n``` sh\ngit clone https://github.com/komar007/neovim-config.git ~/repos/neovim-config\nXDG_CONFIG_HOME=~/repos/neovim-config nvim\n```\n\nOr you can wipe your own configuration and clone mine directly into neovim’s config directory, like\nso:\n\n``` sh\nrm -fr ~/.config/nvim\ngit clone https://github.com/komar007/neovim-config.git ~/.config/nvim\nnvim\n```\n\nYou may want to backup your `~/.local/share/nvim` and `~/.local/state/nvim` directories before doing\nthat though.\n\nThis repo uses\n[komar007/nvim_cold_reload.sh](https://gist.github.com/komar007/00f775b30f70ef51fca66cc883ca265e),\nyou can give it a try by setting an alias that resolves to `nvim_wrapper`, for example like so:\n\n``` sh\nalias nvim=~/repos/neovim-config/nvim_wrapper\n```\n\n(but remember to use `--recurse-submodules` when cloning)\n\nNow you can use `:Reload` to quickly reload neovim with new configuration keeping your current\nsession intact.\n\nIf you are not on Nix, `:ReloadAlt` will run the same `nvim` executable, but will actually load the\nconfiguration from the directory in which the wrapper resides. This will make absolutely no sense if\nyou have this repository cloned into `~/.config/nvim` or linked there, but if you just want to try\nit, instead of setting `XDG_CONFIG_HOME` yourself, you can use `nvim_wrapper`. It will run neovim\nnormally, with whatever you have in `~/.config/nvim`, but then switch the configuration when you run\n`:ReloadAlt`. And you’ll also get cold reload as a bonus.\n\nYou may also do everything above if you do use Nix, BTW.\n\n## Screenshots\n\nSnacks picker live grep ![Neovim config\nscreenshot](/../main/screenshot2.png?raw=true \"Neovim config screenshot: snacks picker live grep\")\n\nDiffview plugin + diff colors ![Neovim config\nscreenshot](/../main/screenshot3.png?raw=true \"Neovim config screenshot: Diffview plugin + diff colors\")\n\nCode actions preview ![Neovim config\nscreenshot](/../main/screenshot4.png?raw=true \"Neovim config screenshot: code actions preview\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkomar007%2Fdot-nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkomar007%2Fdot-nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkomar007%2Fdot-nvim/lists"}