Fix two bugs the mainframe cutover surfaced

dotbot does not carry a `defaults` block between config files, so the
host configs ran without force/relink and refused to replace paths that
already existed as real files — the opencode profiles, the Claude files,
the sunshine config and the old systemd units all failed to link. Each
host config now restates the block.

ddns.timer used OnCalendar=*-*-*/2, which systemd rejects: a day-of-month
step needs an explicit start value. The retired cron line was
`0 2 */2 * *`, so the correct spelling is *-*-1/2.
This commit is contained in:
2026-09-14 14:33:05 -04:00
parent e6644d0616
commit 229b4bce6f
5 changed files with 39 additions and 1 deletions
+3 -1
View File
@@ -3,7 +3,9 @@ Description=Dynamic DNS record update, every other day
ConditionHost=mainframe
[Timer]
OnCalendar=*-*-*/2 02:00:00
# Matches the retired cron line: 0 2 */2 * *. systemd needs an explicit
# start value for the day-of-month step; a bare */2 fails to parse.
OnCalendar=*-*-1/2 02:00:00
Persistent=true
[Install]
+9
View File
@@ -1,5 +1,14 @@
# 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/git/identity: hosts/mainframe/git/identity
~/.config/paru: common/paru
+9
View File
@@ -1,5 +1,14 @@
# Headless server. Shell and nvim should feel identical to the workstations;
# nothing else belongs here. The shortness of this file is the point.
# 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/git/identity: hosts/nas/git/identity
~/.config/paru: common/paru
+9
View File
@@ -1,5 +1,14 @@
# Work laptop. Ubuntu 24.04, Hyprland, user connorjohnstone.
# No singleton timers here — that is deliberate.
# 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/git/identity: hosts/sctfw004/git/identity
~/.config/kitty: common/kitty
+9
View File
@@ -1,4 +1,13 @@
# Personal laptop. Hyprland, full desktop.
# 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/git/identity: hosts/system76/git/identity
~/.config/paru: common/paru