Skip to content

Add Universal App Icon Changer#3988

Open
parwin889-ui wants to merge 1 commit into
ramensoftware:mainfrom
parwin889-ui:main
Open

Add Universal App Icon Changer#3988
parwin889-ui wants to merge 1 commit into
ramensoftware:mainfrom
parwin889-ui:main

Conversation

@parwin889-ui
Copy link
Copy Markdown

This file implements a Windhawk mod that allows users to change the runtime icons of selected applications, including window title bar, taskbar, and Alt+Tab icons.

Features:

  • Configurable process-to-icon rules
  • Supports .ico icon files
  • Supports icon extraction from .exe, .dll, and .icl files
  • Applies icons to title bar, taskbar, and Alt+Tab
  • Does not permanently modify executable files
  • Users can edit icon rules from Windhawk settings without recompiling

Changelog

Initial release.

Mod authorship

If the submission is a new mod, please fill the form below.

This mod was created by:

  • Manually by the submitter (with or without AI assistance)
  • Claude
  • ChatGPT
  • Gemini
  • Another AI (please specify):
  • Other (please specify):

Please select the appropriate option. Your selection will not affect acceptance criteria, but will help reviewers understand the context of the code and provide relevant feedback.

This file implements a Windhawk mod that allows users to change the runtime icons of selected applications, including window title bar, taskbar, and Alt+Tab icons. It includes settings for icon size, application rules, and hooks for applying icons to windows.
@parwin889-ui
Copy link
Copy Markdown
Author

I tested the mod locally with notepad.exe, explorer.exe, and chrome.exe. The mod compiles successfully and users can configure icon rules from Windhawk settings without recompiling. Please let me know if any changes are needed.

Comment on lines +10 to +12
// @exclude WindhawkUI.exe
// @exclude WindhawkEngine.exe
// @exclude WindhawkCompiler.exe
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are made-up process names.

Suggested change
// @exclude WindhawkUI.exe
// @exclude WindhawkEngine.exe
// @exclude WindhawkCompiler.exe

// @exclude svchost.exe
// @exclude conhost.exe
// @license MIT
// @compilerOptions -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -luser32 -lshell32
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is likely unnecessary.

Suggested change
// @compilerOptions -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -luser32 -lshell32

$description: Recommended. Apply only to top-level windows.

- ChangeClassIcon: true
$name: Change class icon
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is it necessary to also change the class icon? Is it intentional, or just whatever AI did?


- DefaultIconPath: ""
$name: Default icon path
$description: Optional. If set, unmatched processes will use this icon. Leave empty for safer behavior.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this option change the icon of all windows on the system? That doesn't seem very useful.

return;
}

EnumWindows(EnumWindowsProc, 0);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's quite inefficient. It means that every program will constantly enumerate all windows. Consider improving it.

@Sand216
Copy link
Copy Markdown

Sand216 commented May 5, 2026

What’s the difference from Resource Redirect?

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.

3 participants