- nix-flatpak input; discord, telegram, qbz as Flathub flatpaks; removes qbz and proton-pass-cli flake inputs - proton-pass-cli and claude-code from nixpkgs-unstable via extraSpecialArgs - dconf color-scheme = prefer-dark replaces per-session gsettings call Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
80 lines
3.2 KiB
Nix
80 lines
3.2 KiB
Nix
{ config, pkgs, lib, inputs, ... }:
|
|
|
|
# terra — Ryzen 9 5900X / Radeon RX 6800 XT desktop (MSI MS-7A32). Replaces
|
|
# CachyOS on the OS SSD (Kingston SA400, sdb). Dev-data disks (sdc ext4
|
|
# /mnt/hdd_01, LVM vg_ssd /mnt/ssd_01) are kept out of disko and mounted here
|
|
# as plain filesystems so they're never wiped. The leftover ntfs disks
|
|
# (sda, sdf, nvme0n1) are ignored entirely — not referenced anywhere.
|
|
let
|
|
unstable = import inputs.nixpkgs-unstable {
|
|
inherit (pkgs.stdenv.hostPlatform) system;
|
|
config = pkgs.config;
|
|
};
|
|
in
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
./disk-config.nix # disko: OS-disk (sdb) partitions + filesystems
|
|
./secrets.nix # sops-nix: darman password, tailscale key
|
|
../../common.nix # shared base: user / ssh / nix / firewall
|
|
../../services/vpn/tailscale.nix
|
|
../../services/desktop/desktop-hyprland.nix
|
|
../../services/desktop/desktop-apps.nix
|
|
];
|
|
|
|
networking.hostName = "terra";
|
|
|
|
services.flatpak = {
|
|
enable = true;
|
|
remotes = [{ name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; }];
|
|
packages = [
|
|
{ appId = "com.blitzfc.qbz"; origin = "flathub"; }
|
|
{ appId = "com.discordapp.Discord"; origin = "flathub"; }
|
|
{ appId = "org.telegram.desktop"; origin = "flathub"; }
|
|
];
|
|
};
|
|
|
|
# Proton Pass CLI — in nixpkgs-unstable (2.2.3+); scripts/deploy uses it to
|
|
# autofill sudo/ssh passwords from the "HomeLab" vault.
|
|
environment.systemPackages = [ unstable.proton-pass-cli ];
|
|
|
|
# ---- home-manager (user-level config for darman) ----
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.backupFileExtension = "hm-bak";
|
|
home-manager.extraSpecialArgs = { inherit unstable; };
|
|
home-manager.users.darman = import ./home.nix;
|
|
|
|
# ---- Boot (UEFI) ----
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
hardware.cpu.amd.updateMicrocode = true;
|
|
|
|
# ---- GPU (Radeon RX 6800 XT / Navi 21) ----
|
|
# amdgpu needs the redistributable navi21 firmware blobs to bind the card.
|
|
# Without them the module loads but never initialises the GPU: there's no
|
|
# DRM card for it, the display falls back to the 1024x768 EFI
|
|
# simple-framebuffer as "Unknown-1", and the real DP-2/HDMI-A-1 outputs
|
|
# never appear — so hyprland's monitor rules match nothing.
|
|
hardware.enableRedistributableFirmware = true;
|
|
# Early KMS: bind amdgpu in the initrd so it drives the console + greeter
|
|
# from boot instead of handing over from simple-framebuffer later.
|
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
|
|
|
# ---- Dev-data disks — NOT in disko, mounted read-write, never wiped ----
|
|
# UUIDs captured from the running CachyOS box; verify after install
|
|
# (`lsblk -o NAME,UUID,MOUNTPOINT`) in case disko/kernel enumerates differently.
|
|
fileSystems."/mnt/hdd_01" = {
|
|
device = "/dev/disk/by-uuid/b8445126-ec6d-4f88-818a-d9e13031d9a4";
|
|
fsType = "ext4";
|
|
options = [ "nofail" ];
|
|
};
|
|
fileSystems."/mnt/ssd_01" = {
|
|
device = "/dev/disk/by-uuid/6ca18a9f-27bc-4e58-aea8-de43a0d0ed5d";
|
|
fsType = "ext4";
|
|
options = [ "nofail" ];
|
|
};
|
|
|
|
system.stateVersion = "26.05";
|
|
}
|