dot.nix/shell.nix
Chris Toph 3523b82392 Configuration Cleanup
- Removed inaccurate comments
- Refactored browsers to independent nixes
- Small code changes for clarity
2025-05-29 15:25:49 -04:00

84 lines
1.9 KiB
Nix

# This is a Nix flake shell that provides a minimal environment for new install or system recovery
{
pkgs ?
# If pkgs is not defined, instantiate nixpkgs from locked commit
let
lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked;
nixpkgs = fetchTarball {
url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz";
sha256 = lock.narHash;
};
# Import overlays from the flake's overlay structure
overlays = [
(import ./overlays { inputs = { }; }).default
];
in
import nixpkgs { inherit overlays; },
inputs ? null,
...
}:
let
# Import yay directly from its flake, incase overlay or config flake fucks up
yay = builtins.getFlake "git+https://git.ryot.foo/toph/yay.nix.git";
inherit (pkgs) lib;
in
{
default = pkgs.mkShell {
nativeBuildInputs =
builtins.attrValues {
inherit (pkgs)
# Basic nix tools
nix
nixos-rebuild
home-manager
nh
# Git and git-crypt
git
git-crypt
gnupg
gpg-tui
# Shells
fish
bash
# Config tools
dconf2nix
# Network tools
curl
wget
# System tools
coreutils
findutils
gzip
zstd
# Text editors
micro
nano
# Diagnostics
inxi
pciutils
usbutils
lshw
;
}
++ [
yay.packages.${pkgs.system}.default
];
# Overwrite FLAKE to current path, for yay and nh
FLAKE = toString ./.;
shellHook = ''
clear
echo "Minimal shell initialized with flake overlays"
echo -e "Run '\033[1;34myay rebuild\033[0m' to rebuild your system if needed"
echo -e "FLAKE environment variable is set to: \033[1;34m$FLAKE\033[0m"
'';
};
}