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.
60 lines
2.9 KiB
YAML
60 lines
2.9 KiB
YAML
# 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/beets: common/beets
|
|
~/.config/bottom: common/bottom
|
|
~/.config/fastfetch: common/fastfetch
|
|
~/.config/glow: common/glow
|
|
~/.config/mpd: common/mpd
|
|
~/.config/uv: common/uv
|
|
~/.config/mpv: common/mpv
|
|
~/.config/swayimg: common/swayimg
|
|
~/.config/swaync: common/swaync
|
|
~/.config/mimeapps.list: common/mimeapps.list
|
|
~/.config/ncmpcpp: common/ncmpcpp
|
|
~/.config/GIMP: common/GIMP
|
|
~/.config/inkscape: common/inkscape
|
|
~/.config/FreeCAD: common/FreeCAD
|
|
~/.config/cura: common/cura
|
|
~/.config/OrcaSlicer: common/OrcaSlicer
|
|
~/.config/LightBurn: common/LightBurn
|
|
~/.config/obs-studio: common/obs-studio
|
|
~/.config/gtk-3.0: hosts/system76/config/gtk-3.0
|
|
~/.config/swaync: hosts/system76/config/swaync
|
|
~/.ssh/config.local: hosts/system76/ssh/config.local
|
|
~/.config/wallust: common/wallust
|
|
~/.config/hypr/colors.conf: hosts/system76/hypr/colors.conf
|
|
~/.config/waybar/colors.css: hosts/system76/waybar/colors.css
|
|
~/.config/git/identity: hosts/system76/git/identity
|
|
~/.config/paru: common/paru
|
|
~/.config/rbw: common/rbw
|
|
~/.config/kitty: common/kitty
|
|
~/.config/alacritty: common/alacritty
|
|
~/.config/qutebrowser: common/qutebrowser
|
|
~/.config/networkmanager-dmenu: common/networkmanager-dmenu
|
|
~/.julia/config/startup.jl: common/startup.jl
|
|
~/.config/hypr/hyprland.conf: common/hypr/hyprland.conf
|
|
~/.config/hypr/hyprlock.conf: common/hypr/hyprlock.conf
|
|
~/.config/hypr/toggleFloating.sh: common/hypr/toggleFloating.sh
|
|
~/.config/hypr/local-env.conf: hosts/system76/hypr/local-env.conf
|
|
~/.config/hypr/local.conf: hosts/system76/hypr/local.conf
|
|
~/.config/hypr/hypridle.conf: hosts/system76/hypr/hypridle.conf
|
|
~/.config/waybar/config: common/waybar/config
|
|
~/.config/waybar/style.css: common/waybar/style.css
|
|
~/.config/waybar/sshuttle-status.sh: common/waybar/sshuttle-status.sh
|
|
~/.config/waybar/local.css: hosts/system76/waybar/local.css
|
|
~/.config/systemd/user/hypr_refresh.service: hosts/system76/systemd/hypr_refresh.service
|
|
~/.config/systemd/user/hypr_refresh.timer: hosts/system76/systemd/hypr_refresh.timer
|
|
|
|
- shell:
|
|
- command: systemctl --user daemon-reload
|
|
description: Reloading user units
|