Files
dotfiles/hosts/neogaia/default.nix
alexion f4c4d1430c feat(toolkit): bundle the baseline interactive toolset (task 0001)
Add modules.toolkit, an aggregator that enables fish, tmux, nvim, git,
and direnv as one unit, so any Host or Guest shell feels identical. Each
member is set via mkDefault, so a Host can still override any single
piece while the one flag brings up the whole bundle.

neogaia now enables the bundle as a single line in place of its five
individual enables, keeping the Host a flat checklist.
2026-07-25 12:15:19 -04:00

59 lines
1.7 KiB
Nix

{
config,
inputs,
pkgs,
...
}:
# neogaia — Dell XPS 13 9380 laptop.
# Disk layout is in ./disk.nix.
# `fileSystems` are derived from it, none declared here.
{
imports = [
inputs.nixos-hardware.nixosModules.dell-xps-13-9380
./hardware-configuration.nix
./disk.nix
];
system.stateVersion = "26.05";
# systemd-boot on the EFI system partition.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_cachyos;
# Redistributable firmware for the QCA6174 wifi (ath10k blobs).
# Intel microcode updates follow from this, so none is declared here.
hardware.enableRedistributableFirmware = true;
# RAM-backed swap, no on-disk swap partition.
zramSwap.enable = true;
# So wifi can be joined from the console.
networking.networkmanager.enable = true;
# So setup can be driven over the network.
# The matching host public keys sit beside this file in plaintext, since
# publishing them is their purpose.
modules.ssh.enable = true;
modules.ssh.hostKeys.sopsFile = ../../secrets/neogaia.yaml;
modules.ssh.userKey.sopsFile = ../../secrets/neogaia.yaml;
# A machine the operator works from, so it admits the workstation keys alone.
modules.ssh.authorizedKeys = config.modules.ssh.workstationKeys;
modules.toolkit.enable = true;
# fish as the login shell.
modules.fish.defaultShell = true;
modules.agents.claude-code.enable = true;
modules.agents.tools.gitea-axi.enable = true;
modules.agents.pi.enable = true;
modules.desktop.enable = true;
modules.desktop.obsidian.enable = true;
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_GB.UTF-8";
}