73 lines
1.4 KiB
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"
|
|
'';
|
|
}
|