Skip to content

Install IBM Plex fonts through Home Manager - #48

Closed
Jin-HoMLee wants to merge 21 commits into
kunchenguid:mainfrom
Jin-HoMLee:fm/dotfiles-add-ibm-plex
Closed

Jin-HoMLee wants to merge 21 commits into
kunchenguid:mainfrom
Jin-HoMLee:fm/dotfiles-add-ibm-plex

Conversation

@Jin-HoMLee

Copy link
Copy Markdown

Add pkgs.ibm-plex to home.packages in home.nix, alongside the existing nerd-fonts.hack.

The IBM Plex font install was likely dropped when the Nix setup was rebuilt. Installing it through Home Manager means IBM Plex Sans/Mono are declared in the dotfiles and survive future rebuilds.

No other changes.

Jin-HoMLee and others added 21 commits August 17, 2026 17:51
* feat(home): install github-cli

Add gh to home.packages alongside the other everyday CLI tools.

* chore(pi): sync agent-persisted settings

pi writes lastChangelogVersion, defaultProvider, and defaultModel
back into settings.json at runtime via the out-of-store symlink;
committing the current state.

* chore(gitignore): deny-list herdr runtime dir instead of enumerating files

The old rule listed known runtime files one by one (*.log,
session.json, *.sock) and missed .plugins.lock, which showed up
untracked. Ignore everything under home/.config/herdr/ except the
one file we actually track, config.toml, so future runtime files
can't sneak through the same way.
Pi (github.com/earendil-works/pi) stays opt-in and npm-installed per
the README's existing Pi section - this only adds the node runtime
its already-installed shim needs to run, restoring it after
homebrew's zap cleanup removed an undeclared node.

Also bumps the nix-homebrew input (and its nested brew-src) from a
patched Homebrew 6.0.1 to 6.0.18. The old pin threw
'unknown install step: run' on any formula bottle using a newer
Homebrew post-install step format, which is what node's own
dependency chain hit.
Whisper dictation/transcription app, installed via nix-homebrew
since it is not packaged in nixpkgs.
Adds kunchenguid/tap and the baby-menu cask (self-editing menu-bar
app: https://github.com/kunchenguid/baby-menu).

Also sets onActivation.extraEnv.HOMEBREW_NO_REQUIRE_TAP_TRUST=1: since
Homebrew 6.0.0, brew refuses to load casks/formulae from non-official
taps until interactively `brew trust`-ed, and that grant doesn't
reliably reach the internal `brew cleanup` subprocess spawned by
`--force-cleanup` during sudo-driven darwin-rebuild activation. Taps
only reach the Brewfile via a reviewed commit to this file, so
Homebrew's own interactive re-confirmation on top of that is
redundant here.
* feat: install Codex via Homebrew, fix co alias for CLI flag removal

Add the codex cask to configuration.nix, matching claude-code as an
always-latest agent CLI (rather than pinning via nixpkgs), since both
ship weekly-ish and Homebrew's onActivation.autoUpdate keeps them
current on every rebuild.

Also fix the co alias: --full-auto was removed in Codex CLI v0.147.0
(deprecated since v0.128) in favor of explicit --sandbox and
--ask-for-approval flags. Update home.nix and the README reference to
match.

* docs: also list nodejs in the Nix packages README bullet

Caught in code review: the bullet already omitted nodejs, which has
been installed via home.nix since commit 028cef0.
… at xhigh thinking

Syncs Pi's live default provider/model/thinking-level settings back
into the repo.
* feat(home): install Grok CLI from nixpkgs-unstable

The x.ai installer left a manual install under ~/.grok, which never lands on
PATH. Install grok-build declaratively instead, so `grok` comes from the
managed profile.

26.05 has no grok-build, so flake.nix gains a second, narrowly used
nixpkgs-unstable input threaded through specialArgs/extraSpecialArgs. home.nix
imports it with the same nixpkgs policy as the rest of the config, because
grok-build is unfree (`unfreeRedistributable`).

Resolves to grok-build 1.0.13, providing `grok` (and the `agent` symlink) in
home.packages.

* docs(agents): record why grok-build needs the unstable import

The unfree package can only come from a nixpkgs instance instantiated with
the repo's nixpkgs policy; `legacyPackages` and a `pkgs.extend` overlay both
fail the unfree check, which is what a future "simplification" would try.
…guid#37) (#8)

Drop the public git pin from managed Pi settings and README so the remaining npm packages stay declared without documenting a removed installer.

Co-authored-by: Kun Chen <3233006+kunchenguid@users.noreply.github.com>
* fix(pi): prioritize corrected launcher in zsh

* fix(homebrew): declare Handy instead of OpenSuperWhisper
…n-upstream

# Conflicts:
#	home/.pi/agent/settings.json
chore: sync fork with Kun upstream (merge upstream/main, ancestry-only, zero tree diff)
The live Pi settings only had compact-adviser because of an uncommitted
working-tree edit, so a Home Manager rebuild would drop it again.
Declare the pinned npm release in the committed settings and document it
as the third deliberately pinned third-party Pi package.
Install OpenCode as a Home Manager package from the vendor's official
Darwin arm64 v1.18.32 binary and wrap it with the auto-update gate, so a
rebuild reproduces the exact version Firstmate's adapter was verified
against. Staying on the 1.x line keeps the interactive --model flag that
OpenCode 2.0 removed.

Home Manager owns only the opencode package and the shared AGENTS.md
symlink; the user's opencode.json (Marginalia MCP + instructions) is left
untouched.
Pin the Pi coding agent like OpenCode instead of running a floating
npm install: fetch the exact 1.1.0 npm tarball content-addressed, build
it through buildNpmPackage with a vendored package-lock.json and fixed
npmDepsHash, and rework the pi launcher to exec the pinned store-path
bundle directly under the corrected Node 24, dropping the PATH-search
fallback.
Add pkgs.ibm-plex alongside nerd-fonts.hack so IBM Plex Sans/Mono
survive rebuilds instead of being dropped with the old setup.
@Jin-HoMLee Jin-HoMLee closed this Oct 18, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking an interest in these dotfiles.
This repo is public so you can read it, learn from it, and fork it freely, but it is Kun's personal setup and does not accept pull requests or feature requests.
If you want to adapt something, please fork the repo and make it yours.
If you found a bug, please open a bug report issue instead of sending a patch.
Pull requests are auto-closed here so the repo can stay personal and predictable.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant