- Hyprland workspace rules: start-communications.sh launches telegram + discord into special:communications; qbz/discord/telegram switched to flatpak (nix-flatpak, Flathub) — removes qbz and proton-pass-cli flake inputs - proton-pass-cli and claude-code sourced from nixpkgs-unstable; unstable pkgs set threaded into home-manager via extraSpecialArgs - GTK/libadwaita dark theme fixed: dconf color-scheme = prefer-dark written declaratively instead of a per-session gsettings call - scripts/keys: store/restore SSH host keys and sops age keys via Proton Pass (ssh_host#<config> / age#<config> / age#admin naming)
74 lines
3.1 KiB
Nix
74 lines
3.1 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.
|
|
{
|
|
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 — not in nixpkgs; ./scripts/deploy uses it to autofill
|
|
# sudo/ssh passwords from the "HomeLab" vault. Packaged by the
|
|
# proton-pass-cli flake input (github:tomsch/proton-pass-cli-nix).
|
|
environment.systemPackages = [ inputs.proton-pass-cli.packages.${pkgs.system}.default ];
|
|
|
|
# ---- home-manager (user-level config for darman) ----
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.backupFileExtension = "hm-bak";
|
|
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";
|
|
}
|