nixos-config-master/shell.nix

73 lines
1.4 KiB
Nix

{ pkgs ? import <nixpkgs> { } }:
let
# Import core module configurations
coreModule = import ./modules/core {
inherit pkgs;
config = { };
lib = pkgs.lib;
};
# Development shell tools on top of core tools
extraPackages = with pkgs; [
# Nix tools
nixos-install-tools
nixos-generate-config
nix-prefetch-git
nixpkgs-fmt
nil # Nix LSP
# System tools
gparted
parted
cryptsetup
# Installation tools
git
curl
wget
rsync
# Hardware info
lshw
dmidecode
pciutils
usbutils
# Disk utilities
gptfdisk
hdparm
# Network tools
iw
wirelesstools
ethtool
# Debugging tools
htop
btop
];
in
pkgs.mkShell {
# Combine core packages with extra development tools
packages = coreModule.home.packages ++ extraPackages;
# Shell environment setup
shellHook = ''
# Source environment variables if .envrc exists
if [ -f .envrc ]; then
source .envrc
else
echo "Warning: .envrc file not found. Copy .envrc.example to .envrc and modify as needed."
fi
# Print available tools
echo "NixOS configuration development shell loaded with the following tools:"
echo "- Core tools from modules/core"
echo "- Installation and development tools"
echo ""
echo "Use 'nix develop' or 'nix-shell' to enter this environment"
'';
}