@sebastienrousseau/dotfiles 0.2.503 → 0.2.505
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +86 -1
- package/README.md +5 -5
- package/docs/COPYRIGHT +1 -1
- package/docs/OPENCODE.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/A2A.md +2 -2
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/02-tutorials/01-first-install.md +1 -1
- package/docs/operations/RELEASE_PIPELINE.md +3 -3
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +6 -6
- package/docs/security/AUTOMATION_SECRETS.md +1 -1
- package/docs/security/MCP_POLICY.md +4 -4
- package/docs/security/SECURITY_CHECKLIST.md +1 -1
- package/docs/security/SOUP_REGISTER.md +4 -4
- package/install.sh +98 -6
- package/package.json +1 -1
- package/scripts/README.md +3 -3
- package/scripts/ci/check-copyright-headers.sh +3 -2
- package/scripts/ci/check-shell-preamble.sh +3 -2
- package/scripts/ci/guard-gitleaks-checkout.sh +3 -2
- package/scripts/demo/record.sh +2 -1
- package/scripts/diagnostics/a2a-conformance.sh +2 -1
- package/scripts/diagnostics/alias-governance.sh +2 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -1
- package/scripts/diagnostics/aliases-manifest.sh +2 -1
- package/scripts/diagnostics/benchmark.sh +3 -2
- package/scripts/diagnostics/conflicts.sh +2 -1
- package/scripts/diagnostics/doctor-unified.sh +3 -2
- package/scripts/diagnostics/doctor.sh +2 -1
- package/scripts/diagnostics/drift-dashboard.sh +2 -1
- package/scripts/diagnostics/health.sh +2 -1
- package/scripts/diagnostics/history-analysis.sh +2 -1
- package/scripts/diagnostics/mcp-doctor.sh +2 -1
- package/scripts/diagnostics/perf.sh +3 -2
- package/scripts/diagnostics/scorecard.sh +2 -1
- package/scripts/diagnostics/secret-governance.sh +2 -1
- package/scripts/diagnostics/security-score.sh +25 -5
- package/scripts/diagnostics/smoke-test.sh +2 -1
- package/scripts/diagnostics/snapshot.sh +2 -1
- package/scripts/diagnostics/verify.sh +2 -1
- package/scripts/diagnostics/verify_state.sh +2 -1
- package/scripts/diagnostics/version-locks.sh +13 -2
- package/scripts/diagnostics/workstation-attestation.sh +2 -1
- package/scripts/dot/commands/agent.sh +2 -1
- package/scripts/dot/commands/agents.sh +2 -1
- package/scripts/dot/commands/ai.sh +19 -33
- package/scripts/dot/commands/aliases.sh +2 -1
- package/scripts/dot/commands/appearance.sh +2 -1
- package/scripts/dot/commands/core.sh +2 -1
- package/scripts/dot/commands/diagnostics.sh +2 -1
- package/scripts/dot/commands/env-emit.sh +2 -1
- package/scripts/dot/commands/fleet.sh +12 -6
- package/scripts/dot/commands/init.sh +2 -1
- package/scripts/dot/commands/lint.sh +2 -1
- package/scripts/dot/commands/manual.sh +2 -1
- package/scripts/dot/commands/meta.sh +2 -1
- package/scripts/dot/commands/patterns.sh +2 -1
- package/scripts/dot/commands/registry.sh +2 -1
- package/scripts/dot/commands/restore.sh +2 -1
- package/scripts/dot/commands/secrets.sh +2 -1
- package/scripts/dot/commands/security.sh +2 -1
- package/scripts/dot/commands/tools.sh +2 -1
- package/scripts/fonts/install-nerd-fonts.sh +2 -1
- package/scripts/fonts/patch-fonts.sh +2 -1
- package/scripts/git-hooks/install.sh +2 -1
- package/scripts/git-hooks/pre-commit-audit.sh +4 -3
- package/scripts/lib/secrets_provider.sh +2 -1
- package/scripts/ops/ai-setup.sh +2 -1
- package/scripts/ops/bundle.sh +3 -2
- package/scripts/ops/chaos.sh +2 -1
- package/scripts/ops/chezmoi-apply.sh +19 -5
- package/scripts/ops/chezmoi-diff.sh +2 -1
- package/scripts/ops/chezmoi-remove.sh +2 -1
- package/scripts/ops/chezmoi-update.sh +2 -1
- package/scripts/ops/heal-chezmoi.sh +2 -1
- package/scripts/ops/heal-system.sh +2 -1
- package/scripts/ops/heal-tools.sh +2 -1
- package/scripts/ops/heal.sh +2 -1
- package/scripts/ops/post-apply-repair.sh +2 -1
- package/scripts/ops/prewarm.sh +2 -1
- package/scripts/ops/release.sh +2 -1
- package/scripts/ops/rollback.sh +2 -1
- package/scripts/ops/setup.sh +2 -1
- package/scripts/ops/teleport.sh +2 -1
- package/scripts/qa/check-version-consistency.sh +2 -1
- package/scripts/qa/coverage-baseline.sh +2 -1
- package/scripts/qa/docs-coverage.sh +2 -1
- package/scripts/qa/reliability-audit.sh +2 -1
- package/scripts/qa/scorecard-snapshot.sh +2 -1
- package/scripts/qa/traceability-coverage.sh +2 -1
- package/scripts/qa/validate-examples.sh +2 -1
- package/scripts/qa/wsl-contract.sh +2 -1
- package/scripts/secrets/age-init.sh +2 -1
- package/scripts/secrets/create-secrets-file.sh +2 -1
- package/scripts/secrets/encrypt-ssh-key.sh +2 -1
- package/scripts/security/backup.sh +2 -1
- package/scripts/security/check-disclosure-key-expiry.sh +2 -1
- package/scripts/security/dns-doh.sh +2 -1
- package/scripts/security/encryption-check.sh +2 -1
- package/scripts/security/enforce-policies.sh +2 -1
- package/scripts/security/firewall.sh +2 -1
- package/scripts/security/lock-configs.sh +2 -1
- package/scripts/security/lock-screen.sh +2 -1
- package/scripts/security/manage-secrets.sh +2 -1
- package/scripts/security/ssh-cert.sh +2 -1
- package/scripts/security/telemetry-kill.sh +2 -1
- package/scripts/security/usb-safety.sh +2 -1
- package/scripts/theme/apply-gnome-theme.sh +2 -1
- package/scripts/theme/extract-heic-frames.sh +2 -1
- package/scripts/theme/extract-theme.py +2 -1
- package/scripts/theme/install-boot-logo.sh +2 -1
- package/scripts/theme/install-catppuccin-themes.sh +2 -1
- package/scripts/theme/install-cursors.sh +2 -1
- package/scripts/theme/install-file-icons.sh +2 -1
- package/scripts/theme/install-grub-theme.sh +2 -1
- package/scripts/theme/install-lock-icon.sh +2 -1
- package/scripts/theme/merge-wallpaper.sh +2 -1
- package/scripts/theme/rebuild-themes.sh +26 -3
- package/scripts/theme/switch.sh +3 -2
- package/scripts/theme/wallpaper-rotate.sh +2 -1
- package/scripts/theme/wallpaper-sync.sh +3 -2
- package/scripts/tools/cmatrix.sh +2 -1
- package/scripts/tools/detect-collisions.py +2 -1
- package/scripts/tools/emoji-picker.sh +2 -1
- package/scripts/tools/figlet-banner.sh +2 -1
- package/scripts/tools/log-rotate.sh +2 -1
- package/scripts/tools/lolcat-wrap.sh +2 -1
- package/scripts/tools/pipes.sh +2 -1
- package/scripts/tuning/linux.sh +2 -1
- package/scripts/tuning/macos.sh +2 -1
- package/scripts/uninstall.sh +2 -1
- package/scripts/version-sync.sh +21 -4
package/scripts/ops/chaos.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Chaos Engineering: Randomly corrupt config files to test self-healing (dot heal)
|
|
4
5
|
# USE WITH CAUTION: This intentionally breaks your environment.
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
set -euo pipefail
|
|
4
5
|
|
|
5
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
@@ -9,11 +10,20 @@ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
|
|
|
9
10
|
# shellcheck source=../../lib/dot/log.sh
|
|
10
11
|
# shellcheck disable=SC1091
|
|
11
12
|
source "$SCRIPT_DIR/../../lib/dot/log.sh"
|
|
13
|
+
# shellcheck source=../../lib/dot/ai-install.sh
|
|
14
|
+
# shellcheck disable=SC1091
|
|
15
|
+
source "$SCRIPT_DIR/../../lib/dot/ai-install.sh"
|
|
12
16
|
export DOT_COMMAND="apply"
|
|
13
17
|
|
|
14
|
-
# Temp file cleanup
|
|
18
|
+
# Temp file cleanup. `set +u` guards the array expansion: on bash 3.2
|
|
19
|
+
# (macOS) expanding an empty array under `set -u` is an "unbound
|
|
20
|
+
# variable" error, which would fire on every clean `dot sync`.
|
|
15
21
|
_TMPFILES=()
|
|
16
|
-
cleanup() {
|
|
22
|
+
cleanup() {
|
|
23
|
+
set +u
|
|
24
|
+
rm -f "${_TMPFILES[@]}" 2>/dev/null
|
|
25
|
+
set -u
|
|
26
|
+
}
|
|
17
27
|
trap cleanup EXIT
|
|
18
28
|
|
|
19
29
|
# Help flag
|
|
@@ -148,9 +158,9 @@ check_cmd() {
|
|
|
148
158
|
echo ""
|
|
149
159
|
ui_header "AI provider CLI checks (optional)"
|
|
150
160
|
|
|
151
|
-
# binary|mise_package|label
|
|
161
|
+
# binary|mise_package|label (claude uses the native installer, not mise)
|
|
152
162
|
_AI_PROVIDERS=(
|
|
153
|
-
"claude|
|
|
163
|
+
"claude|native|Claude Code"
|
|
154
164
|
"copilot|npm:@github/copilot|Copilot CLI"
|
|
155
165
|
"gemini|npm:@google/gemini-cli|Gemini CLI"
|
|
156
166
|
"sgpt|pipx:shell-gpt|Shell-GPT"
|
|
@@ -218,6 +228,10 @@ if [[ ${#_ai_missing[@]} -gt 0 ]] && [[ "${DOTFILES_NONINTERACTIVE:-0}" != "1" ]
|
|
|
218
228
|
echo ""
|
|
219
229
|
for _entry in "${_ai_to_install[@]}"; do
|
|
220
230
|
IFS='|' read -r _bin _pkg _label <<<"$_entry"
|
|
231
|
+
if [[ "$_bin" == "claude" ]]; then
|
|
232
|
+
install_claude_native "$_label"
|
|
233
|
+
continue
|
|
234
|
+
fi
|
|
221
235
|
if command -v gum &>/dev/null; then
|
|
222
236
|
if gum spin --spinner dot --title "Installing $_label ($_pkg)" -- \
|
|
223
237
|
mise use -g "$_pkg@latest" 2>&1; then
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# shellcheck disable=SC2034
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# heal-chezmoi.sh — Chezmoi drift and backup repair functions for heal.sh
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# shellcheck disable=SC2034
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# heal-system.sh — System-level repair functions for heal.sh
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# shellcheck disable=SC2034
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# heal-tools.sh — Tool installation helpers for heal.sh
|
package/scripts/ops/heal.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# shellcheck disable=SC2034
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# Dotfiles Heal Script - Auto-repair common dotfiles issues
|
package/scripts/ops/prewarm.sh
CHANGED
package/scripts/ops/release.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# =============================================================================
|
|
4
5
|
# Dotfiles Release Script
|
|
5
6
|
# Orchestrates a new release: version bump, changelog, tag, and push
|
package/scripts/ops/rollback.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# shellcheck disable=SC2034
|
|
4
5
|
# =============================================================================
|
|
5
6
|
# Dotfiles Rollback Script - Self-Healing Configuration Recovery
|
package/scripts/ops/setup.sh
CHANGED
package/scripts/ops/teleport.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Script: teleport.sh
|
|
4
5
|
# Description: Deploys dotfiles to a remote host ephemerally.
|
|
5
6
|
# Usage: ./teleport.sh user@hostname
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
#
|
|
4
5
|
# Verify that every "live" version reference matches the canonical
|
|
5
6
|
# version in .chezmoidata.toml. The intent is to catch drift between
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
#
|
|
4
5
|
# Fetch the current OpenSSF Scorecard result and refresh the
|
|
5
6
|
# per-check posture table in docs/security/SCORECARD.md.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Create compressed backup of home directory.
|
|
4
5
|
##
|
|
5
6
|
## Archives the home directory (excluding cache and trash) to a timestamped
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# Security Policy Enforcement Script
|
|
4
5
|
# This script enforces security policies across the dotfiles repository
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Configure system firewall with secure defaults.
|
|
4
5
|
##
|
|
5
6
|
## Enables firewall with deny-by-default policy and minimal exceptions.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Secure Configuration Management.
|
|
4
5
|
##
|
|
5
6
|
## Manages environment variables and secrets across local development.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Apply GNOME Theme — Apply Catppuccin themes to GNOME desktop.
|
|
4
5
|
##
|
|
5
6
|
## Configures GTK theme, icon theme, cursor theme, shell theme,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# extract-heic-frames.sh — extract per-frame PNGs from dynamic HEIC wallpapers.
|
|
4
5
|
#
|
|
5
6
|
# Apple's dynamic HEIC format packs two images (frame 0 = light, frame 1 =
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# extract-theme.py — Generate a terminal theme from wallpaper dominant colors.
|
|
4
5
|
#
|
|
5
6
|
# Uses K-Means clustering in CIELAB color space for perceptually accurate
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Catppuccin Theme Installer — Install Catppuccin themes for GNOME.
|
|
4
5
|
##
|
|
5
6
|
## Downloads and installs GTK themes, icon themes, cursor themes,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# merge-wallpaper.sh — Merge dark+light wallpapers into a single dynamic HEIC.
|
|
4
5
|
#
|
|
5
6
|
# Creates an Apple-compatible dynamic HEIC with appearance metadata so macOS
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
# rebuild-themes.sh — Discover wallpapers and generate themes.toml dynamically.
|
|
4
5
|
#
|
|
5
6
|
# Scans system wallpaper directories and ~/Pictures/Wallpapers/ for images,
|
|
@@ -12,11 +13,33 @@
|
|
|
12
13
|
# bash rebuild-themes.sh --list # List discovered wallpapers without rebuilding
|
|
13
14
|
set -euo pipefail
|
|
14
15
|
|
|
16
|
+
# This script relies on associative arrays (`declare -A`) and `wait -n`,
|
|
17
|
+
# both of which need bash >= 4. macOS ships /bin/bash 3.2, where it would
|
|
18
|
+
# otherwise fail with cryptic "invalid option" / "bad array subscript"
|
|
19
|
+
# errors mid-run. Re-exec under a newer bash when one is available
|
|
20
|
+
# (Homebrew, MacPorts, mise), and fail with a clear, actionable message
|
|
21
|
+
# otherwise rather than corrupting a half-built themes.toml.
|
|
22
|
+
if ((BASH_VERSINFO[0] < 4)); then
|
|
23
|
+
for _newer_bash in \
|
|
24
|
+
/opt/homebrew/bin/bash \
|
|
25
|
+
/usr/local/bin/bash \
|
|
26
|
+
"${HOMEBREW_PREFIX:-}/bin/bash" \
|
|
27
|
+
"$(command -v bash 2>/dev/null || true)"; do
|
|
28
|
+
if [[ -n "$_newer_bash" && -x "$_newer_bash" ]] &&
|
|
29
|
+
"$_newer_bash" -c '((BASH_VERSINFO[0] >= 4))' 2>/dev/null; then
|
|
30
|
+
exec "$_newer_bash" "$0" "$@"
|
|
31
|
+
fi
|
|
32
|
+
done
|
|
33
|
+
echo "Error: 'dot theme rebuild' needs bash >= 4 (macOS ships bash 3.2)." >&2
|
|
34
|
+
echo " Install a newer bash and retry: brew install bash" >&2
|
|
35
|
+
exit 1
|
|
36
|
+
fi
|
|
37
|
+
|
|
15
38
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
39
|
EXTRACT_SCRIPT="$SCRIPT_DIR/extract-theme.py"
|
|
17
40
|
DOTFILES_DIR="${HOME}/.dotfiles"
|
|
18
41
|
|
|
19
|
-
# Descend into the chezmoi source subdir when .chezmoiroot is present (
|
|
42
|
+
# Descend into the chezmoi source subdir when .chezmoiroot is present (post-reorg, chezmoi files under defaults/)
|
|
20
43
|
CHEZMOI_SRC="$DOTFILES_DIR"
|
|
21
44
|
if [[ -f "$DOTFILES_DIR/.chezmoiroot" ]]; then
|
|
22
45
|
_sub="$(head -1 "$DOTFILES_DIR/.chezmoiroot" | tr -d '[:space:]')"
|
|
@@ -266,7 +289,7 @@ if [[ $TOTAL_WORK -gt 0 ]]; then
|
|
|
266
289
|
fi
|
|
267
290
|
) &
|
|
268
291
|
|
|
269
|
-
# Limit parallel jobs
|
|
292
|
+
# Limit parallel jobs (bash >= 4 guaranteed by the guard at the top).
|
|
270
293
|
while [[ $(jobs -r | wc -l) -ge $JOBS ]]; do
|
|
271
294
|
wait -n 2>/dev/null || true
|
|
272
295
|
done
|
package/scripts/theme/switch.sh
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
## Theme Switcher — Switch between theme families and light/dark modes.
|
|
4
5
|
##
|
|
5
6
|
## Supports Tokyo Night, Catppuccin, Rose Pine, Kanagawa, and other
|
|
@@ -58,7 +59,7 @@ if [ -z "$SRC_DIR" ]; then
|
|
|
58
59
|
exit 1
|
|
59
60
|
fi
|
|
60
61
|
|
|
61
|
-
# Descend into the chezmoi source subdir when .chezmoiroot is present (
|
|
62
|
+
# Descend into the chezmoi source subdir when .chezmoiroot is present (post-reorg, chezmoi files under defaults/)
|
|
62
63
|
CHEZMOI_SRC="$SRC_DIR"
|
|
63
64
|
if [[ -f "$SRC_DIR/.chezmoiroot" ]]; then
|
|
64
65
|
_sub="$(head -1 "$SRC_DIR/.chezmoiroot" | tr -d '[:space:]')"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# Copyright (c) 2015-2026 Sebastien Rousseau
|
|
3
4
|
set -euo pipefail
|
|
4
5
|
|
|
5
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
@@ -14,7 +15,7 @@ WALLPAPER_DIR="${DOTFILES_WALLPAPER_DIR:-$HOME/Pictures/Wallpapers}"
|
|
|
14
15
|
CHEZMOI_CFG="${XDG_CONFIG_HOME:-$HOME/.config}/chezmoi/chezmoi.toml"
|
|
15
16
|
|
|
16
17
|
# Resolve dotfiles repo root, then descend into chezmoi source subdir if
|
|
17
|
-
# .chezmoiroot is present (
|
|
18
|
+
# .chezmoiroot is present (where chezmoi files live in defaults/)
|
|
18
19
|
_DOTFILES_ROOT="${HOME}/.dotfiles"
|
|
19
20
|
[[ ! -d "$_DOTFILES_ROOT" && -d "${HOME}/.local/share/chezmoi" ]] && _DOTFILES_ROOT="${HOME}/.local/share/chezmoi"
|
|
20
21
|
_CHEZMOI_SRC="$_DOTFILES_ROOT"
|
package/scripts/tools/cmatrix.sh
CHANGED