dots/config/default.nix

89 lines
1.7 KiB
Nix
Raw Normal View History

{ pkgs, config, ... }:
let
dotsDir = "${config.home.homeDirectory}/.dot_files/dots";
softLinkDots = dir:
(builtins.listToAttrs (map
(n: {
name = "${dir + "/" + n}";
value = {
source = config.lib.file.mkOutOfStoreSymlink "${dotsDir}/${dir}/${n}";
force = true;
};
})
# HACK: We don't use the absolute path in readDir to respect pure evaluation in nix flakes.
(builtins.attrNames (builtins.readDir ../dots/${dir}))));
in
{
2023-11-30 00:49:32 -06:00
programs.home-manager.enable = true;
home = {
packages = with pkgs; [
gcc
sqlite
luajit
imagemagick
dotnet-sdk_8
cargo
rustc
shellcheck
openjdk
go
nodejs
poetry
python3
ruby
yamllint
curl
llvm
openssh
openssl
pkg-config
wget
rsync
readline
gnumake
cmake
git
gh
ffmpeg
silicon
man
jq
tectonic
fzf
eza
luajit
ripgrep
fd
nixfmt
2023-11-30 00:49:32 -06:00
];
file =
{
".local/" = {
source = ../dots/.local;
recursive = true;
force = true;
};
".omnisharp" = {
source = ../dots/.omnisharp;
force = true;
};
".zshrc" = {
source = ../dots/.zshrc;
force = true;
};
".latexmkrc" = {
source = ../dots/.latexmkrc;
force = true;
};
} // softLinkDots ".config";
2023-11-30 00:49:32 -06:00
};
programs.neovim = {
enable = true;
extraPackages = with pkgs; [ sqlite gh ];
2023-11-30 00:49:32 -06:00
# Magick is required for image.nvim
extraLuaPackages = lp: [ lp.magick ];
};
}