Skip to content

Your Mac's System Settings, in Nix.

Dark mode, the Dock, your trackpad, keyboard shortcuts, the firewall and hundreds more, one readable line each. Set up a new Mac in one rebuild, and never click through System Settings again.
configuration.nix
programs.nix-plist-manager.options.applications.systemSettings = {
appearance.appearance = "Dark";
appearance.accentColor = "Purple";
displays.trueTone = false;
desktopAndDock.dock.automaticallyHideAndShowTheDock.enabled = true;
trackpad.pointAndClick.tapToClick = true;
keyboard.keyboardShortcuts.screenshots.copyPictureOfSelectedAreaToTheClipboard = "⌘⇧S";
};
552settings you can declare
506per user, with home-manager
46system-wide, with nix-darwin
528in System Settings, across 20 panes
18in Finder
6in Journal and Voice Memos
72%398 settings round-tripped through System Settings on macOS 27, to prove they show what you declared

Everything you’d normally click through, named after the control you’d click.

Turn off True Tone

displays.trueTone = false;

Night Shift at night

displays.nightShift.schedule = "Sunset to Sunrise";

Your color, everywhere

appearance.accentColor = "Pink";

A smaller Dock without the clutter

desktopAndDock.dock.size = 36;
desktopAndDock.dock.showSuggestedAndRecentAppsInDock = false;

Lock the screen from a corner

desktopAndDock.hotCorners.topRight.action = "Lock Screen";

Three-finger drag

accessibility.pointerControl.trackpadOptions.dragging = "Three Finger Drag";

Keys that repeat fast

keyboard.keyRepeatRate = 2;
keyboard.delayUntilRepeat = 15;

Seconds and battery % in the menu bar

menuBar.clock.displayTheTimeWithSeconds = true;
menuBar.batteryOptions.showPercentage = true;

Firewall on, and invisible

network.firewall.firewall = true;
network.firewall.options.enableStealthMode = true;

Each line goes inside programs.nix-plist-manager.options.applications.systemSettings, like the configuration above. Finder, Journal and Voice Memos have theirs under applications.

Named after what you click

desktopAndDock.dock.automaticallyHideAndShowTheDock is the switch labeled Automatically hide and show the Dock in Desktop & Dock. The values are the words in the pop-up menus: "Sunset to Sunrise", "Lock Screen", "Three Finger Drag".

Start from the Mac you have

nix run github:sushydev/nix-plist-manager#current reads your Mac and writes its settings out as a Nix file to import. Change something later and --against shows just that.

Checked against the real thing

Every setting was worked out from what macOS itself writes, and 398 of them are round-tripped through System Settings on macOS 27 to prove it shows your value.

Applied the way macOS does

The Dock restarts, keyboard shortcuts activate without logging out, the firewall goes through Apple’s own tool. The settings that only apply at login say so.

Per user and system-wide

Your preferences through home-manager, the machine’s (firewall, sharing, power, login window) through nix-darwin, with the same option names.

Even what you arrange

The Dock’s apps, the menu bar’s layout and your wallpaper are captured once and restored on every Mac.

  1. Add the flake and the module (home-manager, nix-darwin, or both):

    inputs.nix-plist-manager.url = "github:sushydev/nix-plist-manager";
    imports = [ inputs.nix-plist-manager.homeManagerModules.default ];
  2. Turn it on and set something:

    programs.nix-plist-manager = {
    enable = true;
    options.applications.systemSettings.appearance.appearance = "Dark";
    };
  3. Rebuild. System Settings now shows what you declared.

The install guide covers nix-darwin and home-manager in full, and Start from your Mac turns what you’ve already set up into configuration.