Pick window corners from Appearance > Window Corners (#14990)

* Expect Appearance before Toggle under Trigger

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Read the default workspace layout once for all the menu rows that ask

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Pick window corners from Appearance > Window Corners

Theme Corners leaves them to each theme. Sharp and Rounded override every
theme through a Hyprland toggle, with Rounded using Solitude's corners.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keep the corner choice when saving a new one fails, and test the load order

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
David Heinemeier HanssonandClaude Opus 5.5 authored and GitHub committed 2026-10-11 17:06:54 +09:00
1 parent 3882c27cfd
commit 4df545905d
7 files changed
+166 -5

No files matched your search

+9 -4
View File
@@ -194,8 +194,8 @@ assert(
const triggerItems = defaultItems.filter(item => item.parent === 'trigger')
assertEqual(
triggerItems[0].id,
'trigger.toggle',
'menu lists Toggle first under Trigger'
'trigger.appearance',
'menu lists Appearance first under Trigger'
)
assertEqual(
defaultById['trigger.emoji'].action,
@@ -412,9 +412,14 @@ assertDeepEqual(
['Top Bar', 'Bottom Bar', 'Left Bar', 'Right Bar'],
'menu names each position after the bar'
)
assertDeepEqual(
defaultItems.filter(item => item.parent === 'trigger.appearance.window-corners').map(item => [item.label, item.action]),
[['Theme Corners', 'omarchy-hyprland-corners theme'], ['Sharp Corners', 'omarchy-hyprland-corners sharp'], ['Rounded Corners', 'omarchy-hyprland-corners rounded']],
'menu picks window corners from Appearance > Window Corners'
)
const triggerIds = triggerItems.map(item => item.id)
const appearanceLabels = ['Animations', 'Menu Bar', 'Window Gaps', '1-Window Ratio', 'Workspace Layout', 'Herdr Theme Sync']
assertEqual(triggerIds.indexOf('trigger.appearance'), triggerIds.indexOf('trigger.toggle') + 1, 'menu places Appearance right after Toggle')
const appearanceLabels = ['Animations', 'Menu Bar', 'Window Gaps', 'Window Corners', '1-Window Ratio', 'Workspace Layout', 'Herdr Theme Sync']
assertEqual(triggerIds.indexOf('trigger.toggle'), triggerIds.indexOf('trigger.appearance') + 1, 'menu places Toggle right after Appearance')
assertDeepEqual(
defaultItems.filter(item => item.parent === 'trigger.appearance').map(item => item.label),
appearanceLabels,