summaryrefslogtreecommitdiff
path: root/Brewfile
AgeCommit message (Collapse)Author
2026-10-13dot-request: --inbox, and xz compression past 400 KBIgor Soarez
--inbox files into another inbox than dot: the path it posts to and the namespace it signs in both follow it, so the key signs for that inbox only. DOT_REQUEST_URL still overrides the whole URL for testing. A signed request over 400 KB -- the inbox's limit on the wire -- now goes xz -9e compressed with Content-Encoding: xz, which the inbox undoes before checking anything; a smaller one goes as it is. --compress and --no-compress override that either way. Compressing needs xz, so it joins the Brewfile; without it a request that must be compressed is refused, never sent plain. Checked against a local inbox: 148 KB sent plain, 740 KB compressed to 37 KB and accepted, --no-compress over the limit refused with 413, --compress on a small request accepted, a bad --inbox name refused before signing.
2026-10-03install.sh: Alacritty from its release DMG, under a stated ruleIgor Soarez
Homebrew disabled the alacritty cask on 2026-09-01: upstream builds are ad-hoc signed and not notarized. Existing installs kept it, but a new Mac got no Alacritty, and this repo's config, Dock, Hammerspoon and terminal-set-opacity all assume one. Clearing a quarantine flag is now allowed under one rule instead of never: the file is pinned by a hash reviewed here, its signature verifies as unmodified, and the app is named explicitly. Alacritty passes -- the v0.17.0 DMG matches GitHub's published digest, and codesign --verify --deep --strict passes. toggleMute failed on the signature, which is why it stays dropped. The hash is hard-coded rather than looked up, since a checksum fetched beside the file catches corruption, not substitution. The filed version wrapped the steps in `( set -euo pipefail ... ) || warn`, and bash ignores set -e on the left of ||: a wrong hash still installed the app. Each step now exits by hand. Tested against a scratch target with the right hash, a wrong hash, and a failing signature check. From change request 56fc45.
2026-10-01Brewfile: drop toggleMuteIgor Soarez
Ad-hoc signed, no TeamIdentifier, and spctl rejects the bundle as modified since signing, so it only runs with its quarantine flag cleared. A setup script that every machine runs is the wrong place to put an unverifiable binary past Gatekeeper, so the xattr step goes with it and install.sh now says it clears no quarantine flags at all. QuickMD stays: Developer ID, notarized.
2026-10-01Brewfile: say what the two taps actually shipIgor Soarez
Checked rather than assumed. QuickMD is signed with a Developer ID and notarized, so its quarantine flag costs a dialog. toggleMute is ad-hoc signed with no TeamIdentifier, and spctl rejects it as modified since signing -- so the quarantine step is not 'it is not notarized' but 'there is no verifiable publisher'. The trust gate also turned out looser than the first note claimed: it refused an untrusted formula, but both casks installed without it.
2026-10-01Brewfile: toggleMute and QuickMD, from their authors' tapsIgor Soarez
Neither is in homebrew-cask. That costs three things this file cannot express on its own, so install.sh carries them: brew will not load a cask from an unofficial tap until it is trusted, which is per machine and recorded outside the repo; the trust is granted per cask rather than per tap, so it covers these two files and not whatever the taps add later; and toggleMute is not notarized, so Gatekeeper refuses it until com.apple.quarantine is cleared -- that one attribute on that one path, not the `xattr -cr` its README asks for. Nothing here vouches for either binary, and a third-party tap can change what it installs between two runs. Both are deliberate exceptions, named as such.
2026-10-01Brewfile: glow and IceIgor Soarez
Neither is read by anything here, so they sit apart from the tools the config depends on: glow renders markdown in the terminal, Ice manages the menu bar like keepingyouawake beside it.
2026-09-22tree-sitter-cli, and: a read-only clone hands back a change requestIgor Soarez
An https clone of this repo cannot push -- the host serves it anonymously and refuses the push with a 403 -- and that is how a machine whose owner cannot hold a key gets it. An agent troubleshooting there would edit a tracked file, see the fix applied, and lose it at the next pull, or leave that clone unable to fast-forward and quietly cut off from changes. CLAUDE.md now says how to tell the two cases apart, and what to do instead: make it machine-local where a hook covers it, or hand back a change request -- paths, the actual diff, why, and how to verify -- stating that nothing was applied. AGENTS.md is a symlink to CLAUDE.md, so the agents that look for that name get the same file rather than a second copy to drift. tree-sitter-cli: nvim-treesitter generates and compiles its parsers with it.
2026-09-21Brewfile: keepingyouawake, and say that Mac apps belong hereIgor Soarez
Installed by hand on machine after machine, which is the signal it belongs in the list. Nothing in this repo uses it, so the header now says what the casks were already doing: the few Mac apps this account wants wherever it works, alongside the tools the config itself needs.
2026-09-21Brewfile: say why bash is here, correctlyIgor Soarez
The reason given named bin/open, which does not need it: on macOS it execs /usr/bin/open on line 13, before anything 3.2 cannot parse. What does need it is szecret's age bootstrap -- `${os,,}` in secrets/common.sh, reached only when age is absent, which is precisely the state a machine is in before this file has been applied.
2026-09-21install.sh: install Homebrew, add bash, and seed the colour filesIgor Soarez
Three things a machine set up from this repo alone hit on its first run: Homebrew was a dead end -- install.sh printed the command and exited, leaving the one prerequisite everything else needs to be run by hand. It installs it now, NONINTERACTIVE so it does not wait on a RETURN; the sudo password is still asked for, which is why this script is run by hand. bash was missing from the Brewfile, so bin/open and secrets/ ran under the 3.2 macOS ships and failed on `${v,,}`; config/bashrc also looks for the bash-completion 2.x that wants 4.2. Ghostty refused to start -- "error opening config-file ... error.FileNotFound" -- because config-file pointed at the colour file bin/theme writes, which does not exist until theme has run. The include is optional now (`?`), and this script seeds the colour files when a machine has none, leaving a machine that already has a theme alone.
2026-09-17dotfilesIgor Soarez
Shell, editor and terminal configuration, the tools that go with them, and szecret, an age-based secret manager whose store lives elsewhere. History restarts here. What came before was not written to be read by anyone else, and carried machine names, addresses and an encrypted secret store; it is kept privately instead. What is left is meant to be safe on any machine, including one whose owner is not me: see CLAUDE.md for the rule it is written to.