The "default application suite" roadmap item, but deliberately NOT a
nomarchy.apps.* option surface: a bare package install has no config to
put behind a toggle, so a thin `mkIf x { systemPackages = [p]; }` only
reinvents what a package list already gives. Instead the suite is a
curated home.packages list in templates/downstream/home.nix (extending
the existing `# firefox` convention) — active staples (libreoffice,
vscode, gimp, inkscape, mpv, amberol) plus commented suggestions. The
opt-out is deleting a line; it also keeps the apps out of the live ISO
automatically (the ISO never scaffolds from the template).
The members that DO need system config become nomarchy.services.* opt-in
toggles instead (config behind the switch, like the existing services):
- steam → programs.steam (32-bit stack, controller udev, RP ports)
- libvirt → libvirtd + virt-manager, login user added to libvirtd group
- obs → obs-studio + a v4l2loopback virtual camera (exclusive_caps=1)
selectable as a webcam in Zoom/Teams
README option table, ROADMAP (services item now "Eight shipped"; suite
item marked done with the no-surface rationale) and the downstream
system.nix examples updated to match.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
2.1 KiB
Nix
45 lines
2.1 KiB
Nix
# Your machine: bootloader, hostname, users, services.
|
|
# The distro itself comes from nomarchy.nixosModules.nomarchy — override
|
|
# any of its defaults here with plain NixOS options (they use mkDefault),
|
|
# or via the nomarchy.system.* toggles.
|
|
{ pkgs, username, ... }:
|
|
|
|
{
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
networking.hostName = "my-nomarchy";
|
|
time.timeZone = "UTC";
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
# Your login user — `username` flows in from flake.nix automatically.
|
|
users.users.${username} = {
|
|
isNormalUser = true;
|
|
extraGroups = [ "wheel" "networkmanager" "video" "input" ];
|
|
};
|
|
|
|
# ── Overrides (uncomment to change) ─────────────────────────────────
|
|
# nomarchy.system.greeter.enable = false; # bring your own login manager
|
|
# environment.systemPackages = [ pkgs.htop ];
|
|
|
|
# ── Opt-in features — uncomment and tweak to enable ─────────────────
|
|
# nomarchy.system.power = { # active power management (laptops)
|
|
# enable = true;
|
|
# backend = "ppd"; # "ppd" (default) or "tlp"
|
|
# laptop = true; # required by batteryChargeLimit
|
|
# batteryChargeLimit = 80; # cap charging for longevity
|
|
# thermal.enable = true; # thermald (Intel CPUs)
|
|
# };
|
|
#
|
|
# nomarchy.services.tailscale.enable = true; # mesh VPN — then `sudo tailscale up`
|
|
# nomarchy.services.syncthing.enable = true; # file sync — GUI at http://127.0.0.1:8384
|
|
# nomarchy.services.podman.enable = true; # rootless containers (docker → podman)
|
|
# nomarchy.services.flatpak.enable = true; # Flatpak + the Flathub remote
|
|
# nomarchy.services.pika.enable = true; # Pika Backup (GUI Borg backups)
|
|
# nomarchy.services.steam.enable = true; # Steam (32-bit libs, controllers, ports)
|
|
# nomarchy.services.libvirt.enable = true; # libvirt/KVM + virt-manager GUI
|
|
# nomarchy.services.obs.enable = true; # OBS Studio + v4l2loopback virtual camera
|
|
|
|
system.stateVersion = "26.05";
|
|
}
|