Skip to content

Add WindhawkModSettings for frosted-acrylic-sheet#4768

Open
EvanYFWong wants to merge 5 commits into
ramensoftware:mainfrom
EvanYFWong:fix/settings-frosted-acrylic
Open

Add WindhawkModSettings for frosted-acrylic-sheet#4768
EvanYFWong wants to merge 5 commits into
ramensoftware:mainfrom
EvanYFWong:fix/settings-frosted-acrylic

Conversation

@EvanYFWong

Copy link
Copy Markdown

Summary
Add valid WindhawkModSettings block and embed style resources so CI validation passes and users can configure the mod.

Mod authorship

Changes

  • Add WindhawkModSettings block to mods/frosted-acrylic-sheet.wh.cpp exposing:
    • enableAcrylic (bool, default: true)
    • blurOpacity (number, default: 0.15, range 0.0–1.0)
    • taskbarFrameWidth (number, default: 1410)
    • taskbarHeight (number, default: 60)
    • iconSize (number, default: 40)
  • Keep embedded README and style constants in mods/frosted-acrylic-sheet.wh.cpp (styles sourced from EvanYFWong/FrostedAcrylicSheet).

Reason / Notes

CI validation previously failed because the WindhawkModSettings block was empty. This PR provides a valid YAML settings block so:

  • The repository validation no longer treats the settings block as an unexpected/empty marker.
  • Users can configure the mod from Windhawk's UI.
    This mod is a configuration wrapper for the existing Windows 11 Taskbar Styler; it does not replace that mod — it supplies ready-to-use style constants and control styles.

Testing

Key files

  • mods/frosted-acrylic-sheet.wh.cpp — mod definition, README, settings block and embedded styles

Checklist

  • I kept the required "## Mod authorship" section from the PR template.
  • Mod ID is unique (frosted-acrylic-sheet)
  • @github matches my GitHub account (EvanYFWong)
  • @include explorer.exe is present
  • License is set to MIT
  • README is clear and includes installation steps

@EvanYFWong

Copy link
Copy Markdown
Author

Hi @ramensoftware maintainers, this PR fixes CI validation by adding a valid WindhawkModSettings block (small change, checks passed). Could someone please review and merge when convenient?
Thank you!

@m417z

m417z commented Jul 13, 2026

Copy link
Copy Markdown
Member

Submission review

Note: This review was done by Claude, and then refined manually. Due to the amount of submissions, doing a fully manual review for each pull request is no longer feasible. Thank you for understanding.

Please address the following issues. The items in the collapsed sections are optional, so it's your call whether to address them.


The core problem is that this mod does not do anything, and its actual purpose is already served by an existing mod.

1. The mod has no functional code — it's a no-op. There are no hooks, no settings reads, and the two embedded strings (g_styleConstants at line 90 and g_controlStyles at line 102) are never referenced anywhere in the code. All five lifecycle callbacks (Wh_ModInit, Wh_ModAfterInit, Wh_ModSettingsChanged, Wh_ModBeforeUninit, Wh_ModUninit) only call Wh_Log. When a user enables this mod, it has zero effect on the taskbar. The visual result described in the README is produced entirely by the user manually pasting text into a different mod ("Windows 11 Taskbar Styler") — this mod contributes nothing at runtime. A Windhawk mod must actually do something when enabled; a wrapper that only carries instructions and unused string literals isn't a mod.

2. This is a theme for "Windows 11 Taskbar Styler," not a standalone mod. The existing windows-11-taskbar-styler mod is explicitly "Customize the taskbar with themes contributed by others or create your own." The frosted-acrylic look is precisely such a theme — and your own README already directs users to paste it into that mod. The right home for it is the Windows 11 taskbar styling guide / theme collection (the same channel your README points at for the start-menu equivalent), not a duplicate no-op mod in the catalog. Merging this as a separate mod fragments the catalog and delivers no functionality. Please contribute it as a theme instead of a mod.

3. Every declared setting is dead. enableAcrylic, blurOpacity, taskbarFrameWidth, taskbarHeight, and iconSize are declared in the ==WindhawkModSettings== block but never read anywhere (no Wh_GetIntSetting/Wh_GetStringSetting calls exist). Changing any of them does nothing. This is a direct consequence of #1 — the PR was made to "add a valid settings block so CI passes," but a settings block that no code reads is not meaningful configuration.

4. Non-English text in @description. The description ends with 磨砂亚克力板任务栏样式 appended to the English text. User-facing strings default to English; provide the Chinese variant via metadata localization (// @description:zh-CN ...) rather than mixing both languages in the primary field.

Optional improvements

Minor polish — and largely moot given the mod needs a functional rewrite (or conversion to a theme) anyway.

  • @compilerOptions -lruntimeobject is unused. The mod links runtimeobject but uses no WinRT/Ro* APIs (it includes only <windows.h> and <windhawk_utils.h>). Drop it.
  • $min / $max / $step are not recognized settings keys. No mod in the repo uses them and Windhawk doesn't act on them, so the range/step you specified for blurOpacity has no effect. Relatedly, blurOpacity: 0.15 is a fractional default, but Windhawk numeric settings are integers (read via Wh_GetIntSetting), so a value like 0.15 can't be read back as a float.
  • The five log-only lifecycle callbacks are just placeholders; they'd disappear in a real implementation or when the styles move to a theme.

Functionality notes

Observations about the style content itself — relevant if/when it's contributed as a theme.

  • The styles hard-code absolute pixel values — TaskbarFrameWidth=1410, SystemTray Width=270, and especially Margin=390,0,574,12 on the input-switcher — which assume a specific screen width and DPI. On other resolutions, multi-monitor setups, or non-100% scaling, the centered frame and these margins won't line up. Worth documenting the target resolution, or deriving widths adaptively (your README already mentions a "Set to 0 to use adaptive width" mode).

@EvanYFWong

EvanYFWong commented Jul 13, 2026 via email

Copy link
Copy Markdown
Author

@m417z

m417z commented Jul 13, 2026

Copy link
Copy Markdown
Member

@EvanYFWong

EvanYFWong commented Jul 13, 2026 via email

Copy link
Copy Markdown
Author

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