Skip to content

Install

nix-plist-manager comes as two modules with the same options:

  • home-manager manages your settings: appearance, the Dock, the trackpad, keyboard shortcuts, Finder, anything System Settings keeps per user.
  • nix-darwin manages the machine’s settings, as root: the firewall, sharing, power, date and time, software updates, the login window.

Each settings page marks every option with the module it belongs to. Most people want both.

flake.nix
{
inputs.nix-plist-manager.url = "github:sushydev/nix-plist-manager";
}
flake.nix
darwinConfigurations.my-mac = nix-darwin.lib.darwinSystem {
modules = [
nix-plist-manager.darwinModules.default
home-manager.darwinModules.home-manager
{
home-manager.sharedModules = [ nix-plist-manager.homeManagerModules.default ];
}
./configuration.nix
];
};

In your home-manager configuration:

home.nix
programs.nix-plist-manager = {
enable = true;
options.applications.systemSettings = {
appearance.appearance = "Dark";
desktopAndDock.dock.size = 48;
};
};

And system-wide, in nix-darwin:

configuration.nix
programs.nix-plist-manager = {
enable = true;
options.applications.systemSettings = {
network.firewall.firewall = true;
general.softwareUpdate.automaticallyInstallMacOSUpdates = true;
};
};

Then rebuild (darwin-rebuild switch, or home-manager switch).

Don’t want to write it all by hand? Start from your Mac.