37 lines
1.0 KiB
Nix
37 lines
1.0 KiB
Nix
{ pkgs }:
|
|
|
|
{
|
|
homep = pkgs.writeShellScriptBin "homep" (''
|
|
#!/run/current-system/sw/bin/bash
|
|
|
|
# Ensure the package manifest is generated or updated
|
|
if [ ! -f "/tmp/nixpkgs_manifest.txt" ]; then
|
|
echo "Generating Nixpkgs manifest..."
|
|
nix-env -qaP 2>/dev/null | awk '{print $1}' | sed 's/nixos\.//' > /tmp/nixpkgs_manifest.txt
|
|
fi
|
|
|
|
# Select packages using fzf with multi-select enabled
|
|
selected_packages=$(cat /tmp/nixpkgs_manifest.txt | fzf -m)
|
|
|
|
# Check if any packages were selected
|
|
if [ -n "$selected_packages" ]; then
|
|
echo "$selected_packages" | while read -r package; do
|
|
# Append each selected package to the Nix config file
|
|
sed -i "/^\t]/i \ \t\t$package" "$HOME/sysflakes/glasshouse-desktop/home/userpkgs.nix"
|
|
echo "Added $package to the Home Manager configuration."
|
|
done
|
|
|
|
echo "Packages added successfully. Rebuild system config?"
|
|
select yn in "Yes" "No"; do
|
|
case $yn in
|
|
"Yes" ) nixswitch;break;;
|
|
"No" ) exit;;
|
|
esac
|
|
done
|
|
|
|
else
|
|
echo "No packages selected."
|
|
fi
|
|
'');
|
|
}
|