{ 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]:=$( echo -n "$XDG_CACHE_HOME"/direnv/layouts/ echo -n "$PWD" | sha1sum | cut -d ' ' -f 1 )}" } ''; programs.emacs.enable = true; programs.emacs.package = pkgs.emacs28NativeComp; programs.emacs.extraPackages = epkgs: [ epkgs.vterm ]; }