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