mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 20:40:24 +01:00
82 lines
2.6 KiB
Nix
82 lines
2.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
pkgs-unstable,
|
|
...
|
|
}:
|
|
###############################################################################
|
|
#
|
|
# AstroNvim's configuration and all its dependencies(lsp, formatter, etc.)
|
|
#
|
|
#e#############################################################################
|
|
let
|
|
shellAliases = {
|
|
v = "nvim";
|
|
vdiff = "nvim -d";
|
|
};
|
|
# the path to nvim directory
|
|
# to make this symlink work, we need to git clone this repo to your home directory.
|
|
configPath = "${config.home.homeDirectory}/nix-config/home/base/tui/editors/neovim/nvim";
|
|
in
|
|
{
|
|
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink configPath;
|
|
# Disable catppuccin to avoid conflict with my non-nix config.
|
|
catppuccin.nvim.enable = false;
|
|
|
|
home.shellAliases = shellAliases;
|
|
programs.nushell.shellAliases = shellAliases;
|
|
|
|
programs.neovim = {
|
|
enable = true;
|
|
package = pkgs-unstable.neovim-unwrapped;
|
|
|
|
# defaultEditor = true; # set EDITOR at system-wide level
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
|
|
# These environment variables are needed to build and run binaries
|
|
# with external package managers like mason.nvim.
|
|
#
|
|
# LD_LIBRARY_PATH is also needed to run the non-FHS binaries downloaded by mason.nvim.
|
|
# it will be set by nix-ld, so we do not need to set it here again.
|
|
extraWrapperArgs = with pkgs; [
|
|
# LIBRARY_PATH is used by gcc before compilation to search directories
|
|
# containing static and shared libraries that need to be linked to your program.
|
|
"--suffix"
|
|
"LIBRARY_PATH"
|
|
":"
|
|
"${lib.makeLibraryPath [
|
|
stdenv.cc.cc
|
|
zlib
|
|
]}"
|
|
|
|
# PKG_CONFIG_PATH is used by pkg-config before compilation to search directories
|
|
# containing .pc files that describe the libraries that need to be linked to your program.
|
|
"--suffix"
|
|
"PKG_CONFIG_PATH"
|
|
":"
|
|
"${lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
|
|
stdenv.cc.cc
|
|
zlib
|
|
]}"
|
|
];
|
|
|
|
# Currently we use lazy.nvim as neovim's package manager, so comment this one.
|
|
#
|
|
# NOTE: These plugins will not be used by astronvim by default!
|
|
# We should install packages that will compile locally or download FHS binaries via Nix!
|
|
# and use lazy.nvim's `dir` option to specify the package directory in nix store.
|
|
# so that these plugins can work on NixOS.
|
|
#
|
|
# related project:
|
|
# https://github.com/b-src/lazy-nix-helper.nvim
|
|
plugins = with pkgs.vimPlugins; [
|
|
# search all the plugins using https://search.nixos.org/packages
|
|
telescope-fzf-native-nvim
|
|
|
|
nvim-treesitter.withAllGrammars
|
|
];
|
|
};
|
|
}
|