Skip to content

Nix flake reference

The install pages show the commands. This page lists what they refer to.

Packages (packages.<system>.* on x86_64-linux):

Name Gives you Pick it when
scoot the compositor plus the scoot msg client ($out/bin carries only scoot); GPU and CPU renderers in one binary, picked at run time, with the xwayland feature compiled in and Xwayland on PATH (Linux only) the default everywhere; VM, container, nested-only, real hardware, X11 apps too
scoot-look the look format tool: validates a look and renders a catalog entry at build time (no compositor in its closure, Linux and macOS alike) programs.scoot.lookPackage without the flake’s wrappers, or a plain build-time render
scootbg the wallpaper daemon (Linux only) [wallpaper] without the desktop profile
scootbar the status bar, no font in its closure (Linux only) the bar with your own fonts
scootbar-demo the bar with a bundled font as its default trying the bar on a box with no fonts
default scoot on every system (client-only on macOS) nix run without choosing

The CPU-only minimal build is cargo-only (cargo build --no-default-features: no GBM code, no libgbm, no X11 code); there is no published minimal Nix package.

Apps (nix run mirrors three of them: default, scootbar and scootbar-demo; there is no scootbg or docs-site app):

Terminal window
nix run github:scoot-sh/scoot -- --nested -- foot
nix run github:scoot-sh/scoot -- msg windows
nix run github:scoot-sh/scoot#scootbar-demo -- daemon --right clock

Modules: nixosModules and homeModules both ship default, scoot and scootbar. The desktop profile’s NixOS half is nixosModules.scoot (programs.scoot, including desktop); its user half is homeModules.scoot plus homeModules.scootbar for the bar.

overlays.default adds pkgs.scoot and pkgs.scoot-look and, on Linux, pkgs.scootbg and pkgs.scootbar:

configuration.nix
nixpkgs.overlays = [ inputs.scoot.overlays.default ];

They are the flake’s own builds, the same derivations as packages.<system>.*, not rebuilt against your nixpkgs, so nothing is built twice. With the overlay applied, the modules’ package and wallpaper.package default to these, so the pure modules work without the flake’s wrappers. On macOS the overlay adds the client-only scoot and no scootbg or scootbar. It never adds scootbar-demo: a demo to run, not a package to build on.

Keep the flake’s inputs following your nixpkgs, or the modules build against a second nixpkgs:

flake.nix
home-manager.inputs.nixpkgs.follows = "nixpkgs";

Without the follows, the first rebuild compiles a duplicate dependency tree.

On macOS, scoot is client-only: scoot msg drives a compositor running on Linux. The home-manager module manages the config file on any system (on macOS it also installs the client-only scoot, and the config you edit there deploys to a Linux box), while the NixOS module’s session entry only means anything on NixOS. scoot-look builds on macOS beside the client (it renders the catalog the Linux box installs). scootbg and scootbar are Linux-only: no macOS package, and on macOS a [wallpaper] section renders as written and installs nothing.

Symptom: rebuild fails with not of type 'TOML value' naming programs.scoot.settings. A value in settings has no TOML representation (a Nix function). The option type-check fails at evaluation time, before anything builds. A value with the wrong scoot type (a string for layout.gap) still builds. scoot refuses it at session start. The loader fails safe — see Failure semantics.