Skip to content

fix: idempotent _link prevents duplicate plugins + remove NIcon - #121

Merged
VictorGSchneider merged 1 commit into
mainfrom
claude/cool-clarke-AUFdY
May 31, 2026
Merged

fix: idempotent _link prevents duplicate plugins + remove NIcon#121
VictorGSchneider merged 1 commit into
mainfrom
claude/cool-clarke-AUFdY

Conversation

@VictorGSchneider

Copy link
Copy Markdown
Owner

Problema

Duas regressões introduzidas pela rodada de install.sh + PR #118:

1. Stoa Memento Mori duplicado (×N) no Desktop Widgets

A função _link em install.sh não era idempotente: toda re-execução fazia mv do symlink existente para .bak.TIMESTAMP e criava um novo. O diretório .bak.* continuava apontando para o mesmo plugin, e o Noctalia escaneava a pasta plugins/ e carregava todas as entradas — incluindo os backups — como instâncias separadas do mesmo plugin. Resultado: N cópias de "Stoa Memento Mori" no picker.

Fix: antes de fazer backup, verifica se o symlink já aponta para o source correto. Se sim, retorna imediatamente — sem backup, sem re-link.

2. Bar widgets do doctor e drive sumiam após install.sh

stoa-doctor-pill/Panel.qml usava NIcon, que não existe no qs.Widgets do Noctalia. Se o Noctalia valida os entry points no registro do plugin, um erro de QML faz o plugin inteiro falhar — derrubando o bar widget junto.

Fix: removido NIcon; as linhas de ação ficam só com NText.

Resumo das mudanças

  • install.sh: _link agora é idempotente (skip se symlink já está correto)
  • stoa-doctor-pill/Panel.qml: removido NIcon e campo icon do model

Para limpar os .bak.* existentes

rm ~/.config/noctalia/plugins/*.bak.*

Reinicie o Noctalia depois.

https://claude.ai/code/session_01JH7MsJFvce1eEde8DJiCfe


Generated by Claude Code

- install.sh _link: skip re-link when symlink already points to the
  correct source — prevents .bak.* accumulation that caused Noctalia
  to scan the same plugin directory multiple times, producing duplicate
  desktop-widget entries (Stoa Memento Mori ×N)
- stoa-doctor-pill Panel.qml: remove NIcon (component does not exist in
  qs.Widgets) which caused the plugin to fail to register, making the
  bar widget disappear after install

https://claude.ai/code/session_01JH7MsJFvce1eEde8DJiCfe
@VictorGSchneider
VictorGSchneider merged commit 68c3667 into main May 31, 2026
1 check passed
@VictorGSchneider
VictorGSchneider deleted the claude/cool-clarke-AUFdY branch May 31, 2026 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants