add: nvchad
This commit is contained in:
		
							parent
							
								
									0001c26dcd
								
							
						
					
					
						commit
						4430232787
					
				
					 11 changed files with 845 additions and 8 deletions
				
			
		|  | @ -1,14 +1,62 @@ | |||
| { pkgs, ... }: | ||||
| { config, pkgs, lib, ... }: | ||||
| # Let-In ----------------------------------------------------------------------------------------{{{ | ||||
| let | ||||
|   inherit (lib) concatStringsSep optional; | ||||
|   inherit (config.lib.file) mkOutOfStoreSymlink; | ||||
| 
 | ||||
|   # customNvChad = ./nvchad-custom; | ||||
|   populateEnv = ./populate-nvim-env.py; | ||||
| 
 | ||||
|   populateEnvScript = '' | ||||
|     mkdir -p ${config.xdg.dataHome}/nvim/site/plugin | ||||
|     ${pkgs.python39}/bin/python ${populateEnv} -o ${config.xdg.dataHome}/nvim/site/plugin | ||||
|   ''; | ||||
|   # }}} | ||||
| in | ||||
| { | ||||
|   # Neovim | ||||
|   # https://rycee.gitlab.io/home-manager/options.html#opt-programs.neovim.enable | ||||
|   programs.neovim.enable = true; | ||||
| 
 | ||||
|   home.sessionVariables.EDITOR = "nvim"; | ||||
|   programs.neovim.viAlias = true; | ||||
|   programs.neovim.vimAlias = true; | ||||
| 
 | ||||
|   programs = { | ||||
|     neovim = { | ||||
|       enable = true; | ||||
|       viAlias = true; | ||||
|     }; | ||||
|   # Config and plugins ------------------------------------------------------------------------- {{{ | ||||
| 
 | ||||
|   xdg.configFile."nvim" = { | ||||
|     source = "${pkgs.nvchad}"; | ||||
|   }; | ||||
| 
 | ||||
|   home.packages = with pkgs; [ | ||||
|     nvchad | ||||
|     (pkgs.writeShellScriptBin "update-nvim-env" '' | ||||
|       # | ||||
|       # update-nvim-env | ||||
|       # | ||||
|       # Update neovim env such that it can be used in neovide or other GUIs. | ||||
|       ${populateEnvScript} | ||||
|     '') | ||||
|   ]; | ||||
| 
 | ||||
|   home.activation.neovim = lib.hm.dag.entryAfter [ "writeBoundary" ] '' | ||||
|     echo "Populating neovim env..." | ||||
|     ${populateEnvScript} | ||||
|   ''; | ||||
| 
 | ||||
|   programs.bash.initExtra = lib.mkAfter '' | ||||
|     export EDITOR="${config.programs.neovim.package}/bin/nvim" | ||||
|   ''; | ||||
| 
 | ||||
|   programs.zsh.initExtra = lib.mkAfter '' | ||||
|     export EDITOR="${config.programs.neovim.package}/bin/nvim" | ||||
|   ''; | ||||
| 
 | ||||
|   # Required packages -------------------------------------------------------------------------- {{{ | ||||
| 
 | ||||
|   programs.neovim.extraPackages = with pkgs; [ | ||||
|     nodejs_20 | ||||
|     gcc | ||||
|    ]; | ||||
|   # }}} | ||||
| } | ||||
| # vim: foldmethod=marker | ||||
|  |  | |||
							
								
								
									
										72
									
								
								home/ooks/opt/nvim/populate-nvim-env.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								home/ooks/opt/nvim/populate-nvim-env.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,72 @@ | |||
| #!/bin/env python3 | ||||
| 
 | ||||
| import os | ||||
| from collections import OrderedDict | ||||
| import argparse | ||||
| 
 | ||||
| KEYS = [ | ||||
|     # PATH | ||||
|     "PATH", | ||||
|     "CS154_ADMIN", | ||||
|     "BREW_PREFIX", | ||||
|     "CONDA_PYTHON_EXE", | ||||
|     "SPACESHIP_ROOT", | ||||
|     "COLORFGBG", | ||||
|     "XPC_SERVICE_NAME", | ||||
|     "_CE_M", | ||||
|     "XPC_FLAGS", | ||||
|     "LANG", | ||||
|     # terminal | ||||
|     "VISUAL", | ||||
|     "LESS", | ||||
|     "LOGNAME", | ||||
|     "COLORTERM", | ||||
|     "HISTFILE", | ||||
|     "LC_TERMINAL", | ||||
|     "LC_TERMINAL_VERSION", | ||||
|     "ITERM_SESSION_ID", | ||||
|     "ITERM_PROFILE", | ||||
|     "TERM_SESSION_ID", | ||||
|     "TERM_PROGRAM", | ||||
|     "STARSHIP_SESSION_KEY", | ||||
|     "STARSHIP_CONFIG", | ||||
|     "VI_MODE_SET_CURSOR", | ||||
|     "_", | ||||
|     "LSCOLORS", | ||||
|     "ZSH", | ||||
|     "EDITOR", | ||||
|     # XDG | ||||
|     "XDG_DATA_HOME", | ||||
|     "XDG_STATE_HOME", | ||||
|     "XDG_CACHE_HOME", | ||||
|     "XDG_CONFIG_HOME", | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
| def main(output_path): | ||||
|     env = os.environ.copy() | ||||
|     env = OrderedDict(sorted(env.items())) | ||||
|     dst_file = "{}/env.lua".format(output_path) | ||||
|     with open(dst_file, "w") as f: | ||||
|         for key, value in env.items(): | ||||
|             if key in KEYS: | ||||
|                 if key == "PATH": | ||||
|                     f.write('vim.env.PATH = vim.env.PATH .. ":{}"\n'.format(value)) | ||||
|                     continue | ||||
|                 f.write('vim.fn.setenv("{}", "{}")\n'.format(key, value)) | ||||
|         f.close() | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     home_directory = os.path.expanduser("~") | ||||
|     parser = argparse.ArgumentParser("Neovim Populate Env") | ||||
|     parser.add_argument( | ||||
|         "-o", | ||||
|         "--output", | ||||
|         required=False, | ||||
|         help="Output Path", | ||||
|         type=str, | ||||
|         default="{}/.config/nvim/lua/toutaboc".format(home_directory), | ||||
|     ) | ||||
|     args = parser.parse_args() | ||||
|     main(args.output) | ||||
|  | @ -23,6 +23,7 @@ | |||
|     tldr # Community maintained help pages | ||||
|     tmux # Terminal multiplexer | ||||
|     tre-command # Better tree | ||||
|     unzip | ||||
|   ]; | ||||
| 
 | ||||
|   programs = { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue