diff --git a/.claude/skills/drive-extension/SKILL.md b/.claude/skills/drive-extension/SKILL.md index 4004242..988c35b 100644 --- a/.claude/skills/drive-extension/SKILL.md +++ b/.claude/skills/drive-extension/SKILL.md @@ -33,8 +33,7 @@ CLAUDE.md's list, and why, unless the task asks for exactly that: for anything that shows library content, and always for `docs/screenshots/`. A plain `start` (or `--clean`) has settings of its own too, but the user's real cache and watched marks. `status` says which a running one is (`data:` stand-in or your own). -- **The idle stop** is `NESTED_IDLE=` at `start` (default 600, `0` never). - The nested Wayland display is `library-menu-dev`. +- **The nested Wayland display** is `library-menu-dev`. - **`overview on` sets `OverviewActive` only if it is not already set**, so `do "overview on" "shot $S/x.png"` photographs an overview the extension opened (the button pressed from the desktop). diff --git a/scripts/dev.sh b/scripts/dev.sh index 181fd9f..ad1273e 100755 --- a/scripts/dev.sh +++ b/scripts/dev.sh @@ -213,9 +213,17 @@ wait_for_state() { return 1 } +# A link is made of src/'s entries as they were: made again, it has any added since. +refresh_link() { + [[ -L "$EXT_DIR/extension.js" ]] || return 0 + remove_installed + link_tree +} + cmd_reload() { require gnome-extensions compile_schemas + refresh_link info "Reloading $EXT_UUID..." gnome-extensions disable "$EXT_UUID" 2>/dev/null || true # The shell applies a disable asynchronously; an enable before it lands is a diff --git a/scripts/nested.sh b/scripts/nested.sh index f607fb5..e18e6a6 100755 --- a/scripts/nested.sh +++ b/scripts/nested.sh @@ -344,11 +344,14 @@ cmd_start() { kill_strays # A nested shell discovers UUIDs at its own startup, so the extension is - # installed first. --no-enable: the link alone, never an enable or a reload - # of the real shell. - if (( ! standin )) && [[ ! -e "$HOME/.local/share/gnome-shell/extensions/$EXT_UUID" ]]; then + # installed first, and a link is made again for any entry src/ gained since. + # --no-enable: the link alone, never an enable or a reload of the real shell. + local installed="$HOME/.local/share/gnome-shell/extensions/$EXT_UUID" + if (( ! standin )) && [[ ! -e "$installed" ]]; then warn "$EXT_UUID is not installed; linking it first (as 'make link', without enabling it here)." "$REPO_DIR/scripts/dev.sh" link --no-enable >/dev/null 2>&1 || true + elif [[ -L "$installed/extension.js" ]]; then + "$REPO_DIR/scripts/dev.sh" link --no-enable >/dev/null 2>&1 || true fi # A run that died without a 'stop' left its run directory behind, and in it