Files
dotfiles/meta/hosts/mainframe.conf.yaml
T
connor a2dc43d665 Standardise across machines; add genuinely-customised app config
Two passes, both aimed at a consistent experience rather than a faithful
snapshot of each machine's accidents.

Standardisation. Audited every host-layer config present on more than one
machine and asked whether the difference was intent or drift:
  - mpv was byte-identical; swayimg differed only because system76 still
    had the shipped default and the work laptop had the real config; bob
    differed by one setting the work laptop was simply missing.
  - user-dirs.dirs disagreed with BOTH machines and with zshenv, which has
    said $HOME/downloads all along. Standardised on that.
  - mimeapps.list is now the union of both machines' associations.
  - swaync's config and style are shared; only wallust's generated
    colors.css stays per host, alongside hypr's and waybar's.
All of the above moved to common/.

Dropped as pure state rather than config: gtk-2.0 (file-chooser geometry),
pavucontrol.ini (window size), zoom.conf (a per-install random_key) and
zoomus.conf (panel widths). gtk-3.0 stays per host — its bookmarks encode
the two different home directories.

App config. GIMP, inkscape, FreeCAD, cura, OrcaSlicer, LightBurn and OBS
all hold real settings, so a curated subset of each is now tracked:
settings, keybindings and user content, but not session state, tool
options, device lists or window geometry. kicad is skipped — both library
tables hold a single entry, i.e. untouched defaults.

Content lives once in common/ even when only one machine has the app; the
host configs decide who gets the link. That is the distinction that lets
53% of link sources be shared while the NAS still does not get GIMP.

Two exclusions on credential grounds: obs-studio/plugin_config holds a
websocket server_password, and gh is dropped entirely because `gh auth
login` writes a token into hosts.yml — now also blocked by name.
2026-09-14 15:05:30 -04:00

41 lines
2.3 KiB
YAML

# Headless homelab host. No WM, no terminal emulator, no browser.
# Owns every singleton automation in the fleet.
# dotbot does NOT carry a defaults block between config files, so each host
# config has to restate it. Without this, linking a path that already exists
# as a real file fails instead of replacing it.
- defaults:
link:
create: true
relink: true
force: true
- link:
~/.config/inbox-tidy: hosts/mainframe/config/inbox-tidy
~/.config/llmfit: hosts/mainframe/config/llmfit
~/.ssh/config.local: hosts/mainframe/ssh/config.local
~/.config/git/identity: hosts/mainframe/git/identity
~/.config/paru: common/paru
~/.config/rbw: common/rbw
~/.config/opencode/personal.json: common/opencode/personal.json
~/.config/opencode/work.json: common/opencode/work.json
~/.config/opencode/work-strict.json: common/opencode/work-strict.json
~/.config/opencode/local.json: common/opencode/local.json
~/.claude/CLAUDE.md: common/claude/CLAUDE.md
~/.claude/settings.json: common/claude/settings.json
~/.config/sunshine/sunshine.conf: hosts/mainframe/sunshine/sunshine.conf
~/.config/sunshine/apps.json: hosts/mainframe/sunshine/apps.json
~/.config/systemd/user/inbox-tidy.service: hosts/mainframe/systemd/inbox-tidy.service
~/.config/systemd/user/inbox-tidy.timer: hosts/mainframe/systemd/inbox-tidy.timer
~/.config/systemd/user/movie-recs.service: hosts/mainframe/systemd/movie-recs.service
~/.config/systemd/user/movie-recs.timer: hosts/mainframe/systemd/movie-recs.timer
~/.config/systemd/user/rent-utilities.service: hosts/mainframe/systemd/rent-utilities.service
~/.config/systemd/user/rent-utilities.timer: hosts/mainframe/systemd/rent-utilities.timer
~/.config/systemd/user/ddns.service: hosts/mainframe/systemd/ddns.service
~/.config/systemd/user/ddns.timer: hosts/mainframe/systemd/ddns.timer
- shell:
- command: systemctl --user daemon-reload
description: Reloading user units
- command: systemctl --user enable --now inbox-tidy.timer movie-recs.timer rent-utilities.timer ddns.timer
description: Enabling the singleton timers (mainframe only)