Files
dotfiles/nix/home.nix

59 lines
1.5 KiB
Nix

{ config, pkgs, ... }: let
# Mach-nix is a toolkit for constructing custom Python environments
mach-nix = import (builtins.fetchGit {
url = "https://github.com/DavHau/mach-nix/";
ref = "refs/tags/3.3.0";
}) {
pkgs = pkgs;
};
xonsh_pyenv = mach-nix.mkPython {
requirements = ''
xontrib-fzf-widgets
xonsh-direnv
'';
};
xonsh_with_plugins = pkgs.xonsh.overrideAttrs (old: {
propagatedBuildInputs = old.propagatedBuildInputs ++ xonsh_pyenv.python.pkgs.selectPkgs xonsh_pyenv.python.pkgs;
});
in
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "ttm";
home.homeDirectory = builtins.getEnv "HOME";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "22.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# Enable integration with generic Linux OSs
targets.genericLinux.enable = true;
home.packages = with pkgs; [
xonsh_with_plugins
zoxide
fd
fzf
ncdu
ripgrep
git
tmux
kitty
nodePackages.pyright
emacs28NativeComp
];
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
}