Welcome to my Neovim configuration, inspired and powered by Nixvim. |
Type | Status |
---|---|
bare |
Simple Most minimal Config to get running quickly. (Contains fzf and neo-tree) |
base |
A Complete Set for Development and ideal for use |
full |
Also contails all of the above + tex stuff (They are heavy on download, few gigs ) |
bare
config is meant to use with nix run
on virtual system or somewhere I wanna get the job done quickly
base
config is the default package and it is meat to be used normally.
full
config contains tex/latex
setup the package download is heavy that's why it is not recommended to have always.
Layout
./
├── config/
│ ├── base/
│ ├── core/
│ └── default.nix
├── lang/
│ ├── default.nix
│ ├── lua.nix
│ └── shell.nix
├── lib/
│ ├── default.nix
│ └── icons.nix
├── pkgs/
│ └── default.nix
├── variables/
│ └── default.nix
├── flake.lock
├── flake.nix
├── LICENSE
└── README.md
- Every file in a dir is imported by
default.nix
. You don't need to import them manually. - The
lib/default.nix
file is responsible for importing all utility functions and modules. - The
general.nix
file contains small plugins that do not require extensive configuration.
I have added files in
config/lang
still not working:womp:
. Ensure you have donegit add <newfile>
that's how flakes work. (git restore --staged .
to revert). [Same for any new file.]
How to update plugins to latest version? ->
nix flake update
should do that. Also I regularly update the flake.lock file.
Ensure that you have nix installed on your system and flakes enabled.
# This is multiuser installation of nix requires sudo
sh <(curl -L https://nixos.org/nix/install) --daemon
As the config is based on flakes you can run it quickly without any long code snippet.
nix run "github:niksingh710/nvix"
# inputs
nvix.url = "github:niksingh710/nvix";
# Overlay
nvix = inputs.nvix.packages.${pkgs.system}.<type>.extend {
config.colorschemes.tokyonight.settings.transparent = true;
};
home.packages = [
nvix
];
To run a specific config
nix run "github:niksingh710/nvix#bare"
nix run "github:niksingh710/nvix#base"
nix run "github:niksingh710/nvix#full"
nix profile install "github:niksingh710/nvix"
# flake input (ensure it is using unstable input of nixpkgs as i prefer that)
{
inputs.nvix = {
url = "github:niksingh710/nvix";
inputs.nixpkgs.follows = "nixpkgs";
};
}
# flake module pkg install or home-manager package (in my config i manager system variable)
# you may need to adjust that accordingly.
[
inputs.nvix.packages.${system}.default
];
Note
The Screenshots are taken after I have installed my configs via my ndots.
I utilize extend
feature of nixvim there to update my colorscheme and have the one from wallpaper.
vim.api.nvim_exec([[
function! CustomTelescopeHighlights() abort
" Fetching colors from core Neovim highlight groups
let fg = synIDattr(hlID('Normal'), 'fg')
let bg0 = synIDattr(hlID('Normal'), 'bg')
let bg1 = synIDattr(hlID('NormalFloat'), 'bg')
let orange = synIDattr(hlID('WarningMsg'), 'fg')
let purple = synIDattr(hlID('Statement'), 'fg')
let green = synIDattr(hlID('String'), 'fg')
let red = synIDattr(hlID('ErrorMsg'), 'fg')
" Setting custom highlights for Telescope
call nvim_set_hl(0, 'TelescopeMatching', {'fg': orange})
call nvim_set_hl(0, 'TelescopeSelection', {'fg': fg, 'bg': bg1, 'bold': v:true})
call nvim_set_hl(0, 'TelescopePromptPrefix', {'bg': bg1})
call nvim_set_hl(0, 'TelescopePromptNormal', {'bg': bg1})
call nvim_set_hl(0, 'TelescopeResultsNormal', {'bg': bg0})
call nvim_set_hl(0, 'TelescopePreviewNormal', {'bg': bg0})
call nvim_set_hl(0, 'TelescopePromptBorder', {'bg': bg1, 'fg': bg1})
call nvim_set_hl(0, 'TelescopeResultsBorder', {'bg': bg0, 'fg': bg0})
call nvim_set_hl(0, 'TelescopePreviewBorder', {'bg': bg0, 'fg': bg0})
call nvim_set_hl(0, 'TelescopePromptTitle', {'bg': purple, 'fg': bg0})
call nvim_set_hl(0, 'TelescopeResultsTitle', {'fg': bg0})
call nvim_set_hl(0, 'TelescopePreviewTitle', {'bg': green, 'fg': bg0})
call nvim_set_hl(0, 'CmpItemKindField', {'bg': red, 'fg': bg0})
" Make cmp menu transparent
call nvim_set_hl(0, 'PMenu', {'bg': 'NONE'})
endfunction
" Call the function to apply the custom highlights
call CustomTelescopeHighlights()
]], false)