Skip to content

feat: polish library and settings with window size presets - #746

Open
MohamedElGhandour wants to merge 1 commit into
metalsharp:mainfrom
MohamedElGhandour:codex/ui-polish
Open

MohamedElGhandour wants to merge 1 commit into
metalsharp:mainfrom
MohamedElGhandour:codex/ui-polish

Conversation

@MohamedElGhandour

@MohamedElGhandour MohamedElGhandour commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Library controls become cramped or disproportionately small on large displays, and Settings mixes unrelated options in a long grid. This gives the library a shared responsive layout, groups Settings into focused categories, and adds saved window-size presets that keep desktop space visible.

Changes

  • Replace tiny text/Unicode control glyphs with bundled SVG icons for search, play, edit, dropdowns, carousel navigation, downloads, Settings gears, and close buttons, with consistent sizing and alignment.
  • Stack the hero and carousel with explicit height budgets; scale controls, SVG icons, typography, and collection columns for Full HD, 2K, and 4K displays.
  • Organize Settings into General, Integrations, Storage, Updates, and Advanced, with compact tabs, larger controls, and preserved actions and confirmations.
  • Add Automatic, Compact, Full HD, 2K, and Large (4K) window presets. Apply changes immediately, fit smaller displays, and store the selection with existing UI preferences.
  • Add explicit offline preview dimensions and regression coverage for layout bounds, preset sizing/serialization, category mapping, and language-menu placement.

PR Readiness (MANDATORY)

  • Real-game launch test: N/A for this presentation/window-preference change; game launch callbacks, runtime routing, and compatibility rules are unchanged.
  • No hardcoded paths, secrets, or absolute user-home paths introduced.
  • Config/rules TOML validation: N/A; unchanged.
  • Version metadata: N/A; no version bump.
  • Bottle/runtime migration and launch behavior preserved; no migration changes.
  • User-facing behavior documented in docs/development.md.
  • Regression tests added for the new geometry and state decisions.

Local toolchain

  • GPUI formatting, build, and tests: 110 passed, 2 existing tests ignored.
  • Regular and FEX C backend suites: both make test commands passed.
  • Packaged native preview: binary hash recorded and deep/strict ad-hoc signature verification passed.
  • Diff/pre-commit checks passed; no new dependencies or repository-root files.
  • C++/Obj-C compilation, clang-format, CTest, shell/rule/release-workflow checks: N/A; those sources and tooling are unchanged.

Test notes

Native macOS GPUI preview on a 3840 × 2160 logical display:

Check Observed
Automatic / Large 2800 × 1700 content, normal window with desktop margins
Compact / Full HD / 2K 1360 × 860 / 1920 × 1080 / 2560 × 1440 content in the same window
Settings navigation All categories reachable; category switches close the language picker and preserve independent scrolling
Minimum 720 × 540 viewport Compact tabs and scrolling work; language picker opens upward near the bottom edge

These previews use sample artwork and do not access production credentials or write preferences. Serialization and fallback are covered by tests; production preference persistence was not exercised against the user's profile. No real-game run is claimed for this UI commit.

The C suites skipped archive-based runtime simulation and Wine facade integration because the worktree lacks the runtime archives / MetalSharp Wine app. Existing fullscreen-to-windowed transition handling was not manually exercised.

Risk

Changes are confined to the native UI and its existing preferences file. Window sizes use logical points and fit within display bounds, with a 720 × 540 minimum. Invalid or missing stored presets fall back to Automatic. Reverting this commit restores the previous UI; no game data or runtime rollback is needed.

UI previews

Native offline previews with sample games. Large (4K) uses a 2800 × 1700 content window and leaves desktop space visible.

Library and carousel

New library hero, carousel, larger controls, and SVG icons

Collection

Responsive game collection grid

Settings and window-size presets

Settings category sidebar and window-size presets

SVG icons — close-up

Text glyphs were replaced by scalable vector assets; this native-size crop shows Play, edit, dropdown, and Settings controls.

Close-up of the new SVG Play, edit, dropdown, and Settings icons

@aaf2tbz

aaf2tbz commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

I like this! Thanks! I can review all your work tonight, thanks for your contributions.

@aaf2tbz

aaf2tbz commented Oct 31, 2026 •

Copy link
Copy Markdown
Collaborator

If youre okay with fixing the one failing Ci, and applying the suggested edit, I will merge this!

| play | art editor | graphics selection | settings, on the hero art, should stay centered per desktop size / resolution.

(Left centered, on the hero image surface)

And verify behavior is unchanged in the uninstalled portion by syncing a steam api key and ensuring that uninstalled game cards are also correctly presented.

-- If you want me to cover these final changes let me know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants