Files
dotfiles/nix/home.nix

68 lines
1.7 KiB
Nix

{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "ttm";
home.homeDirectory = builtins.getEnv "HOME";
nixpkgs.overlays = [
(import ./overlays/xonsh.nix)
];
# 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 = pkgs.stdenv.isLinux;
home.packages = with pkgs; [
# Defined in Xonsh overlay
xonsh_with_plugins
# Jump to directories
zoxide
# Better cat
bat
# Better find
fd
# Better df
duf
htop
fzf
ncdu
ripgrep
git
tmux
kitty
nodePackages.pyright
coreutils
zstd
];
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
programs.direnv.stdlib = ''
# From https://github.com/direnv/direnv/wiki/Customizing-cache-location
: ''${XDG_CACHE_HOME:=$HOME/.cache}
declare -A direnv_layout_dirs
direnv_layout_dir() {
echo "''${direnv_layout_dirs[$PWD]:=$(
local path="''${PWD//[^a-zA-Z0-9]/-}"
echo "$XDG_CACHE_HOME/direnv/layouts/''${path:1}"
)}"
}
'';
programs.emacs.enable = true;
programs.emacs.package = pkgs.emacs28NativeComp;
programs.emacs.extraPackages = epkgs: [ epkgs.vterm ];
}