Files
dotfiles/hosts/neogaia/default.nix
alexion 505002bb2b feat(claude-code): add a Module and enable it on neogaia
Install Claude Code through home-manager's native programs.claude-code
module, matching how the tmux and fish Modules use their home-manager
options rather than a raw home.packages entry. The feature Module at
modules/claude-code/claude-code.nix stays thin — just the enable option
and the delegation — and writes no settings, so login and first-run
configuration remain interactive and no auth material enters the repo.

Signing in without a browser (needed over the console or SSH) is
documented in modules/claude-code/authentication.md: the paste-code OAuth
flow, where the printed URL is opened on another device and the code
pasted back, and the ANTHROPIC_API_KEY path for non-interactive use.

The neogaia toplevel builds with claude-code-2.1.209 included.
2026-07-19 07:57:43 -04:00

56 lines
1.7 KiB
Nix

{ pkgs, ... }:
# neogaia — Dell XPS 13 9380 laptop.
#
# The disk layout lives in ./disk.nix (disko); the resulting `fileSystems` are
# derived from it, so none are declared by hand here.
{
imports = [
./hardware-configuration.nix
./disk.nix
];
system.stateVersion = "26.05";
# systemd-boot on the EFI system partition disko creates. The initrd prompts
# for the LUKS passphrase (disko wires up boot.initrd.luks.devices), so a
# normal boot unlocks the encrypted root.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# neogaia runs the CachyOS kernel, selected per-Host via boot.kernelPackages.
boot.kernelPackages = pkgs.linuxPackages_cachyos;
# Intel CPU microcode updates for the XPS 13's Core i7-8565U.
hardware.cpu.intel.updateMicrocode = true;
# Redistributable firmware — carries the ath10k blobs the QCA6174 wifi needs.
hardware.enableRedistributableFirmware = true;
# Swap is RAM-backed zram rather than an on-disk partition.
zramSwap.enable = true;
# NetworkManager drives the wifi so it can be joined from the console.
networking.networkmanager.enable = true;
# An SSH daemon so the rest of the setup can be driven over the network.
services.openssh.enable = true;
# fish as the login shell.
modules.fish.enable = true;
modules.fish.defaultShell = true;
# tmux as the terminal multiplexer.
modules.tmux.enable = true;
# Neovim, configured declaratively via nixvim.
modules.nvim.enable = true;
# Claude Code, Anthropic's CLI, installed via home-manager.
modules.claude-code.enable = true;
# Locale preferences for the base system.
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_GB.UTF-8";
console.keyMap = "us";
}