A pack is a part of SnapOS you can add to any NixOS system with one line. Every pack is off until you turn it on. They come from the snapos input of your flake.nix, through snapos.nixosModules.packs.
| Pack | Line | What it gives you |
|---|---|---|
| theme | snapos.packs.theme.enable = true; | The red GTK theme and icons, dark or light, the SnapOS wallpapers, the login screen look, the boot menu picture, Snappy in fastfetch. |
| desktops | snapos.packs.desktops.enable = true; | Budgie, KDE Plasma, Xfce or Hyprland set up the SnapOS way (panel, pinned programs, keys), chosen with snapos.desktop. |
| commands | snapos.packs.commands.enable = true; | The snapos command (find, add, remove, list, shell, try, diff, rebuild, rollback, generations, gc, log, doctor), snapctl, and apt that explains the NixOS way. |
| snapguard | snapos.packs.snapguard.enable = true; | SnapGuard: ClamAV, the SnapOS deny-list, the window with Snappy, and real-time scans of Downloads and USB drives. |
| snapweb | snapos.packs.snapweb.enable = true; | SnapWeb, Firefox with the SnapOS look, as the default browser. |
| debian | snapos.packs.debian.enable = true; | The Debian layer: open a .deb (or snap-deb file.deb) and it runs, even Steam. |
| helper | snapos.packs.helper.enable = true; | SnapHelper, the short tour at the first login. |
| updater | snapos.packs.updater.enable = true; | A window at login when there are new packs, snapos update, and the guard that undoes an update that does not start. |
| store | snapos.packs.store.enable = true; | Carapace, the store: every program in Nix, unfree ones too, installed with snapos add and a progress window. |
| flatpak | snapos.packs.flatpak.enable = true; | Flatpak with Flathub, for a program only Flathub has. Off in the full SnapOS too. |
| Option | Values | Used by |
|---|---|---|
snapos.appearance | "dark" or "light" | theme, desktops |
snapos.desktop | "budgie", "plasma", "xfce", "hyprland" | desktops |
snapos.security.onInfected | "contain" or "warn" | snapguard |
The SnapOS that the installer sets up is every pack turned on, plus the SnapOS name and version. In a flake it is snapos.nixosModules.default.
On a system you built, SnapOS only updates what is SnapOS: the snapos input in your flake.lock. When a SnapOS release comes out, the updater offers it; snapos update moves the input forward, builds the next system for the next start, and goes back by itself if it does not start. Your own programs and nixpkgs are yours to update (see Updates).