Skip to content

Sync macOS bootstrap settings - #897

Merged
keito4 merged 2 commits into
mainfrom
codex/sync-macos-bootstrap-config
Jun 29, 2026
Merged

Sync macOS bootstrap settings#897
keito4 merged 2 commits into
mainfrom
codex/sync-macos-bootstrap-config

Conversation

@keito4

@keito4 keito4 commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Pull the PR branch onto the latest main and keep the macOS host config aligned with the current machine state.
  • Remove Karabiner from managed config and require Kanary for keyboard remapping through the nix-darwin system check.
  • Add Agent Deck / Stream Deck development dependencies: Agent Deck tap/formula, Stream Deck cask, Node.js 24, shell PATH setup, and the local agent-deck command symlink.
  • Allow Cmux automation control so Codex and other local automation can open workspaces from outside Cmux.
  • Keep Google Japanese Input sources, Dock cleanup, Chrome, cmux, and bootstrap reliability updates in config.

Verification

  • npm test -- --runInBand
  • npx jest test/nix-darwin-config.test.js --runInBand
  • pre-commit format:check, lint, and test
  • /run/current-system/sw/bin/nix flake check /Users/keito/develop/github.com/keito4/config/nix --extra-experimental-features nix-command --extra-experimental-features flakes

Local setup notes

  • Removed Homebrew-managed Karabiner-Elements from this Mac.
  • Installed signed/notarized Kanary.app into /Applications/Kanary.app and launched it for first-run permissions.
  • Applied Cmux socketControlMode=automation locally, then opened Agent Deck and agentdeck-streamdeck-plugin in Cmux.
  • Opened /Users/keito/Documents/Codex/2026-06-28/c/outputs/apply-latest-config.sh in Terminal so the final darwin-rebuild switch can run with your password.

@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@keito4, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable usage-based reviews in Billing to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information, and refer to the rate limits docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 62b833ee-99ae-425c-b0e7-86e5a85b48bf

📥 Commits

Reviewing files that changed from the base of the PR and between 1a94e7b and d44fa1d.

📒 Files selected for processing (9)
  • docs/adr/0016-use-kanary-for-keyboard-remapping.md
  • nix/flake.nix
  • nix/home/agent-commands.nix
  • nix/home/dotfiles.nix
  • nix/home/packages.nix
  • nix/home/zsh.nix
  • nix/hosts/darwin/default.nix
  • nix/modules/homebrew.nix
  • test/nix-darwin-config.test.js
📝 Walkthrough

Walkthrough

Introduces a configRoot flake binding propagated to Home Manager modules to replace relative ../../ paths. Updates Homebrew cleanup mode, taps, brews, casks, and MAS apps. Adds Dock persistent-apps and Japanese input source preferences to macOS defaults. Adds Homebrew shell init to zsh and nodejs_24 to packages. Updates ADR 0016 and test assertions for Kanary.

Bootstrap and config modernisation

Layer / File(s) Summary
configRoot propagation
nix/flake.nix, nix/home/dotfiles.nix, nix/home/agent-commands.nix
Adds configRoot = ../. in flake, passes it via extraSpecialArgs, and replaces all ../../ relative source paths in dotfiles and agent-commands modules with configRoot + /... expressions. Also sets hostname to keitonoMacBook-Pro and adds backupFileExtension.
Homebrew updates
nix/modules/homebrew.nix
Changes cleanup from "zap" to "none", adds asheshgoplani/tap and agent-deck brew, adds elgato-stream-deck and google-chrome casks, removes mattermost and messenger, and updates masApps (Keynote ID changed, Numbers/Pages/Prime Video removed).
macOS system defaults
nix/hosts/darwin/default.nix
Adds persistent-apps and persistent-others Dock entries and a CustomUserPreferences block for com.apple.HIToolbox with AppleEnabledInputSources and AppleSelectedInputSources for Japanese input sources.
Zsh Homebrew init and nodejs_24
nix/home/zsh.nix, nix/home/packages.nix
Inserts brew shellenv evaluation into the zsh initContent for both Apple Silicon and Intel paths, and adds nodejs_24 to home.packages.
Kanary ADR and test updates
docs/adr/0016-use-kanary-for-keyboard-remapping.md, test/nix-darwin-config.test.js
Rewrites ADR decision and consequences to specify Karabiner removal, Kanary manual install, and early nix-darwin failure on missing Kanary.app. Updates test assertions to match new module inclusions, cask list, ADR wording, and configRoot-based collector path.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Possibly related PRs

  • keito4/config#874: Overlaps on test/nix-darwin-config.test.js changes that exclude karabiner and rework Kanary-vs-Karabiner assertions.
  • keito4/config#893: Directly related Kanary migration work updating ADR 0016, nix/modules/kanary.nix, and the Kanary.app system-check behavior.

Poem

🐇 Hop hop, the paths are now configRoot-based,
No more ../../ trails to be chased!
Karabiner's gone, Kanary's here to stay,
Homebrew's cleaned up in a tidier way.
The rabbit rejoices — new defaults in place! 🎉

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/sync-macos-bootstrap-config

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@keito4
keito4 force-pushed the codex/sync-macos-bootstrap-config branch from f458d24 to d44fa1d Compare June 29, 2026 06:37
@keito4 keito4 changed the title [codex] Sync macOS bootstrap settings Sync macOS bootstrap settings Jun 29, 2026
@keito4
keito4 marked this pull request as ready for review June 29, 2026 06:40
@keito4
keito4 merged commit 62bd2c4 into main Jun 29, 2026
17 checks passed
@keito4
keito4 deleted the codex/sync-macos-bootstrap-config branch June 29, 2026 06:40
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.119.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released リリース済み

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant