Change:
override async run(accessor: ServicesAccessor): Promise<void> { const audioCueService = accessor.get(IAudioCueService); <del> const quickPickService = accessor.get(IQuickInputService); const preferencesService = accessor.get(IPreferencesService); </del> <ins> const quickInputService = accessor.get(IQuickInputService); const configurationService = accessor.get(IConfigurationService); </ins> const accessibilityService = accessor.get(IAccessibilityService); <ins> const userGestureCues = [AudioCue.save, AudioCue.format]; </ins> const items: (IQuickPickItem & { audioCue: AudioCue })[] = AudioCue.allAudioCues.map((cue, idx) => ({ <del> label: accessibilityService.isScreenReaderOptimized() ? `${cue.name}${audioCueService.isCueEnabled(cue) ? '' : ' (' + localize('disabled', "Disabled") + ')'}` : `${audioCueService.isCueEnabled(cue) ? '$(check)' : '     '} ${cue.name}`, </del> <ins> label: userGestureCues.includes(cue) ? `${cue.name} (${configurationService.getValue(cue.settingsKey)})` : cue.name, </ins> audioCue: cue, <del> buttons: [{ </del> <ins> buttons: userGestureCues.includes(cue) ? [{ </ins> iconClass: ThemeIcon.asClassName(Codicon.settingsGear), tooltip: localize('audioCues.help.settings', 'Enable/Disable Audio Cue'), <del> }], </del> <ins> alwaysVisible: true }] : [] </ins> })); <del> const quickPick = quickPickService.pick<IQuickPickItem & { audioCue: AudioCue }>( items, { activeItem: items[0], onDidFocus: (item) => { audioCueService.playSound(item.audioCue.sound.getSound(true), true); }, onDidTriggerItemButton: (context) => { preferencesService.openSettings({ query: context.item.audioCue.settingsKey }); }, placeHolder: localize('audioCues.help.placeholder', 'Select an audio cue to play'), </del> <ins> const qp = quickInputService.createQuickPick<IQuickPickItem & { audioCue: AudioCue }>(); qp.items = items; qp.selectedItems = items.filter(i => audioCueService.isCueEnabled(i.audioCue)); qp.onDidAccept(() => { const enabledCues = qp.selectedItems.map(i => i.audioCue); const disabledCues = AudioCue.allAudioCues.filter(cue => !enabledCues.includes(cue)); for (const cue of enabledCues) { if (!userGestureCues.includes(cue)) { configurationService.updateValue(cue.settingsKey, accessibilityService.isScreenReaderOptimized() ? 'auto' : 'on'); } </ins> } <del> ); await quickPick; </del> <ins> for (const cue of disabledCues) { if (userGestureCues.includes(cue)) { configurationService.updateValue(cue.settingsKey, 'never'); } else { configurationService.updateValue(cue.settingsKey, 'off'); } } qp.hide(); }); qp.onDidChangeActive(() => { audioCueService.playSound(qp.activeItems[0].audioCue.sound.getSound(true), true); }); qp.placeholder = localize('audioCues.help.placeholder', 'Select an audio cue to play and configure'); qp.canSelectMany = true; await qp.show(); </ins> } }

Discussion:
When using the command, Roberto did not know there was a configure action available. He said: It works, but in all my time using the editor, it never occurred to me to try using the tab key in that list. I always assumed it was read only. Originally posted by in
also this discoverability issue. Additionally, he found that has to be pressed twice to reach the settings gear when running .
He suggested we use checkboxes instead and combine with .
Need to assess which other actions we need to fix
I think it is possible using the quick pick api to render checkboxes for this. Let me un-assign Tyler and in case you need help with the API feel free to reach out to me and we can find the right usage.