Choose clips by clicking the row, not a checkbox - #23
Merged
Merged
Conversation
The appx block held placeholders, and one of them could not even be built: identityName forbids underscores, so `npm run package:store` failed at the last step with the config as checked in. The values now come from the Partner Center reservation. "Spool" was taken, so the reserved name — which the Store requires the package's display name to match — is "Spool Clipboard". The app itself still calls itself Spool; the longer name is a Store handle, not a rebrand. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The checkbox was the wrong control. Every list on the desktop already teaches how to choose things in it — click for one, Ctrl-click to add or drop one, Shift-click for a run — and a column of boxes asked the user to learn a second grammar for the same act, and to aim at a small target to do it. The row is now the control, and a chosen row is lit rather than ticked. Nothing is lit when nothing is chosen. The boxes had shown every clip ticked in that state, because an empty selection means every clip; but a lit row says a choice has been made, and lighting them all would say so when none has. So the list is neutral until it is narrowed, and then the clips left out recede rather than vanish — they are still in the spool, just not in play. The model underneath is unchanged. `only` and `range` join `toggle` as the three ways a click can change the set; the session keeps the anchor a Shift-click runs from, and forgets it wherever it forgets the selection, so the two cannot disagree. Clicking the one chosen clip again clears, as does Escape and a line under the list, all meaning the same thing: back to all. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Selection by row
The compact window's clip list chose clips with a checkbox column. The row itself is now the control, with the gestures every desktop list already uses:
Chosen rows are lit and the rest recede. Nothing is lit when nothing is chosen, because an empty selection means every clip and lighting every row would say a choice had been made.
core/selection.tsgainsonlyandrangebesidetoggle; the session tracks the Shift anchor and drops it wherever it drops the selection. One IPC call (selectClip(id, gesture)) replacestoggleClipSelected. Rows are alistboxand keyboard-selectable.Store identity
Separate commit:
electron-builder.ymlgets the Partner Center identity (WillKotheimer.SpoolClipboard, publisher CN, display name "Spool Clipboard"). The placeholders it replaces could not be built —identityNameforbids underscores.Verified in the dev build by hand. 371 tests, lint, typecheck, and the zero-network gate pass.
🤖 Generated with Claude Code