diff --git a/internal/ui/model/skills.go b/internal/ui/model/skills.go index d48b144f1ee7ba8be59d9c07c7192aaec3ad76ab..549fbc7588e190a7a0253680c31a627eac3c657a 100644 --- a/internal/ui/model/skills.go +++ b/internal/ui/model/skills.go @@ -58,6 +58,15 @@ func (m *UI) skillStatusItems() []skillStatusItem { var items []skillStatusItem stateNames := make(map[string]struct{}, len(m.skillStates)) + disabledSet := make(map[string]bool) + if m.com != nil && m.com.Workspace != nil { + if cfg := m.com.Config(); cfg != nil { + for _, name := range cfg.Options.DisabledSkills { + disabledSet[name] = true + } + } + } + states := slices.Clone(m.skillStates) slices.SortStableFunc(states, func(a, b *skills.SkillState) int { return strings.Compare(a.Path, b.Path) @@ -67,6 +76,9 @@ func (m *UI) skillStatusItems() []skillStatusItem { if name == "" { name = filepath.Base(filepath.Dir(state.Path)) } + if disabledSet[name] { + continue + } stateNames[name] = struct{}{} icon := t.Resource.OnlineIcon.String() if state.State == skills.StateError { @@ -87,6 +99,9 @@ func (m *UI) skillStatusItems() []skillStatusItem { if _, ok := stateNames[skill.Name]; ok { continue } + if disabledSet[skill.Name] { + continue + } items = append(items, skillStatusItem{ icon: t.Resource.OnlineIcon.String(), name: skill.Name,