mirror of
https://github.com/elwrcl/copnix.git
synced 2026-10-31 22:28:03 +03:00
add: home-manager,hyprland,kitten and other extras
This commit is contained in:
commit
3615a7b307
56 files changed
+1804
No files matched your search
Executable
+120
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
[[ $EUID -ne 0 ]] && echo "Run with sudo" && exit 1
|
||||
|
||||
# ── CPU ──────────────────────────────────────────────────────────────────────
|
||||
VENDOR=$(grep -m1 'vendor_id' /proc/cpuinfo | awk '{print $3}')
|
||||
if [[ "$VENDOR" == "AuthenticAMD" ]]; then
|
||||
CPU_MICROCODE="hardware.cpu.amd.updateMicrocode"
|
||||
CPU_KVM="kvm-amd"
|
||||
else
|
||||
CPU_MICROCODE="hardware.cpu.intel.updateMicrocode"
|
||||
CPU_KVM="kvm-intel"
|
||||
fi
|
||||
|
||||
# ── GPU ──────────────────────────────────────────────────────────────────────
|
||||
HAS_AMD=false
|
||||
HAS_NVIDIA=false
|
||||
lspci | grep -qi 'amd\|radeon' && HAS_AMD=true
|
||||
lspci | grep -qi 'nvidia' && HAS_NVIDIA=true
|
||||
|
||||
if $HAS_AMD && $HAS_NVIDIA; then
|
||||
GPU_DRIVER="hybrid-amd-nvidia"
|
||||
elif $HAS_AMD; then
|
||||
GPU_DRIVER="amd"
|
||||
elif $HAS_NVIDIA; then
|
||||
GPU_DRIVER="nvidia"
|
||||
else
|
||||
GPU_DRIVER="intel"
|
||||
fi
|
||||
|
||||
echo "CPU: $VENDOR → $CPU_KVM"
|
||||
echo "GPU: $GPU_DRIVER"
|
||||
echo ""
|
||||
|
||||
INITRD_MODULES=""
|
||||
if [[ "$GPU_DRIVER" == "hybrid-amd-nvidia" ]]; then
|
||||
INITRD_MODULES="\"amdgpu\" \"nvidia\" \"nvidia_modeset\" \"nvidia_uvm\" \"nvidia_drm\""
|
||||
elif [[ "$GPU_DRIVER" == "intel" ]]; then
|
||||
INITRD_MODULES="\"i915\""
|
||||
elif [[ "$GPU_DRIVER" == "amd" ]]; then
|
||||
INITRD_MODULES="\"amdgpu\""
|
||||
elif [[ "$GPU_DRIVER" == "nvidia" ]]; then
|
||||
INITRD_MODULES="\"nvidia\" \"nvidia_modeset\" \"nvidia_uvm\" \"nvidia_drm\""
|
||||
fi
|
||||
|
||||
# ── Disks ────────────────────────────────────────────────────────────────────
|
||||
lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT
|
||||
echo ""
|
||||
|
||||
read -rp "Root partition (e.g. /dev/sda2): " ROOT_PART
|
||||
[[ ! -b "$ROOT_PART" ]] && echo "Invalid partition" && exit 1
|
||||
ROOT_UUID=$(blkid -s UUID -o value "$ROOT_PART")
|
||||
ROOT_FSTYPE=$(blkid -s TYPE -o value "$ROOT_PART")
|
||||
echo "Root → $ROOT_UUID ($ROOT_FSTYPE)"
|
||||
|
||||
read -rp "Boot/EFI partition (e.g. /dev/sda1): " BOOT_PART
|
||||
[[ ! -b "$BOOT_PART" ]] && echo "Invalid partition" && exit 1
|
||||
BOOT_UUID=$(blkid -s UUID -o value "$BOOT_PART")
|
||||
echo "Boot → $BOOT_UUID"
|
||||
|
||||
EXTRA_BLOCK=""
|
||||
read -rp "Extra partition? (leave empty to skip): " EXTRA_PART
|
||||
if [[ -n "$EXTRA_PART" ]]; then
|
||||
EXTRA_UUID=$(blkid -s UUID -o value "$EXTRA_PART")
|
||||
EXTRA_FSTYPE=$(blkid -s TYPE -o value "$EXTRA_PART")
|
||||
read -rp "Mount point (e.g. /mnt/hdd): " EXTRA_MOUNT
|
||||
EXTRA_BLOCK="
|
||||
fileSystems.\"$EXTRA_MOUNT\" = {
|
||||
device = \"/dev/disk/by-uuid/$EXTRA_UUID\";
|
||||
fsType = \"$EXTRA_FSTYPE\";
|
||||
options = [ \"defaults\" \"nofail\" ];
|
||||
};
|
||||
"
|
||||
fi
|
||||
|
||||
# ── Write hardware.nix ───────────────────────────────────────────────────────
|
||||
cat > ./hardware.nix <<EOF
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ $INITRD_MODULES ];
|
||||
boot.kernelModules = [ "$CPU_KVM" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/$ROOT_UUID";
|
||||
fsType = "$ROOT_FSTYPE";
|
||||
};
|
||||
$EXTRA_BLOCK
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/$BOOT_UUID";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
$CPU_MICROCODE = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
EOF
|
||||
|
||||
# ── Update machine.nix ───────────────────────────────────────────────────────
|
||||
if grep -q 'elars.hardware.graphics.driver' ./machine.nix; then
|
||||
sed -i "s|elars.hardware.graphics.driver = .*|elars.hardware.graphics.driver = \"$GPU_DRIVER\";|" ./machine.nix
|
||||
echo "Updated driver in machine.nix → $GPU_DRIVER"
|
||||
else
|
||||
echo ""
|
||||
echo "Add this line to machine.nix:"
|
||||
echo " elars.hardware.graphics.driver = \"$GPU_DRIVER\";"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Done. hardware.nix generated."
|
||||
[[ "$GPU_DRIVER" == "hybrid-amd-nvidia" ]] && \
|
||||
echo "PRIME bus IDs needed — run: lspci | grep -E 'VGA|3D'"
|
||||
Reference in new issue
Block a user