Repository navigation
Conversation
adamXbot
force-pushed
the
ui/arrow-key-menus
branch
from
November 8, 2026 05:24
72410d8 to
173ecfe
Compare
adamXbot
force-pushed
the
ui/sheet-groups
branch
3 times, most recently
from
November 8, 2026 06:04
9a72d60 to
05fc89a
Compare
When a theme ships both kinds of optional stylesheet, the install menu and try --info list them under "Tweaks" and "Colour schemes", numbered straight through. A sheet named theme-..., or after a palette such as nord or catppuccin-mocha, counts as a colour scheme. A theme with one kind keeps the single list, and picked sheets are still imported in the theme's order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The colour schemes' title says "pick one" when every pair of them measures as clashing. When someone keeps a clashing pair, the menu no longer names a --with list that install would refuse, and install no longer repeats the clash report the menu has already shown. The report now wraps between words to the terminal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Picking sheets that cancel each other out used to print the clash and ask for the whole list again. The menu now asks which one to keep, shows each sheet's main colours as a swatch and hex code, and defaults to the one that loads last. A set that all clashes is one question. --force still installs everything picked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adamXbot
force-pushed
the
ui/sheet-groups
branch
from
November 8, 2026 07:19
05fc89a to
5914cdd
Compare
This branch has not been deployed
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.
What it does
When a theme ships both kinds of optional stylesheet, the install menu and
try --infolist them in two groups: tweaks first, then colour schemes.theme-(ortheme_), or one of its words names a palette (nord,dracula,catppuccin-mocha,rose-pine…).1,25,all) work as before. ↑↓ move from one group into the next; ←→ stay inside a group.installuses before refusing a pair, not the names. All 20 of WhiteSur's colour schemes clash with each other this way.--withtakes the same names.Picking two that clash
The menu used to print the clash report and say "Pick one of each pair", then ask for the whole list again. That made it look as if you were choosing a colour, not a stylesheet. Now it asks which sheet to keep:
COLORTERM=truecolorgets the exact colour.allwith WhiteSur is one question, not 190 clash reports. A chain (a clashes with b, b with c, a and c compose) asks only about what actually clashes.installcarries on with the kept sheet instead of refusing.--force. In the menu,--forcestill installs everything picked. The menu shows the clash and names--with a,b --forceto repeat it.--with a,bon the command line. Unchanged: it shows the report, then refuses without--force.The clash report now wraps between words to fit the terminal, wherever it appears (
install,try,upgradeandtweaks). Before, it ran past the edge and the terminal broke it mid-word.Changes
inventory.is_colour_scheme(): the naming rule.cli._sheet_groups(): the menu's order and groups, the single-list fallback and the "pick one" measurement.cli._keep_one(): the keep question._choose_sheets()calls it unless--forceis set;cmd_installpasses--forcethrough.sheets.contested()andsheets.palettes(): what each clashing sheet sets that the others set differently, and its distinct colours.style.swatch(),style.colour_depth()andstyle.rgb(): the colour preview, at the depth the terminal supports. It is the one place fxcss shows a colour outside the 16 ANSI colours, and the hex code always shows the same information as text.style.column_groups()andstyle.group_spans(): titled grids numbered straight through.columnsandcolumn_rowsgainfirstanddigits; their defaults leave today's output unchanged.prompt.pick_many(): gains agroupsargument.Test plan
python3 -m unittest discover -s tests: 738 tests, 1 skipped (Python 3.14), also inside a pseudo-terminal. The new tests also pass on 3.9.tests/test_sheet_groups.pycovers:(Enter)placed just after them;InstallSheetConflictTestsupdated for the new flow. Every way out of the keep question (Enter, EOF, an unusable answer, a retry first) installs one sheet.--forcestill installs both.GroupedPickTestsintests/test_prompt.pycovers:installon a local WhiteSur checkout, with a throwaway profile: picking three colour schemes asks once and installs the one kept. Pickingalllists all 20 colour schemes, each with its own palette.fxcss install AdamXweb/WhiteSurFirefoxThemeMacOSwithout--withand pick from both groups.🤖 Generated with Claude Code