89 lines
1.7 KiB
Nix
89 lines
1.7 KiB
Nix
{ 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
|
|
{
|
|
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
|
|
];
|
|
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";
|
|
};
|
|
|
|
programs.neovim = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [ sqlite gh ];
|
|
# Magick is required for image.nvim
|
|
extraLuaPackages = lp: [ lp.magick ];
|
|
};
|
|
}
|