Skip to content

Add: Desktop Icons Toggle ForK#4161

Open
KiivYx wants to merge 6 commits into
ramensoftware:mainfrom
KiivYx:main
Open

Add: Desktop Icons Toggle ForK#4161
KiivYx wants to merge 6 commits into
ramensoftware:mainfrom
KiivYx:main

Conversation

@KiivYx
Copy link
Copy Markdown

@KiivYx KiivYx commented May 24, 2026

Changelog

If this pull request updates an existing mod, describe the changes below:

  • Initial release of the mod.

Mod authorship

If this pull request introduces a new mod, please complete the section below.

This mod was created by:

    • The submitter, without AI assistance
    • The submitter, with AI assistance
    • Claude
    • ChatGPT
    • Gemini
    • Another AI (please specify):
    • Other (please specify):

Please select the options that best apply. Your selection does not affect the acceptance criteria, but it helps reviewers understand the context of the code and provide relevant feedback.

KiivYx added 2 commits May 24, 2026 03:53
It replicates the behavior of the Windows 'View -> Show desktop icons' option, but without using the context menu. It interacts directly with the desktop's SysListView32 window (just like the native function)."
It replicates the behavior of the Windows 'View -> Show desktop icons' option, but without using the context menu. It interacts directly with the desktop's SysListView32 window (just like the native function)."
@m417z
Copy link
Copy Markdown
Member

m417z commented May 24, 2026

Please use English for the main mod language. Other languages can be added using localization:
https://github.com/ramensoftware/windhawk/wiki/Creating-a-new-mod#mod-metadata-localization

Language change
@KiivYx
Copy link
Copy Markdown
Author

KiivYx commented May 24, 2026

@m417z Done. I've updated the file language to English so everyone can understand it.

Comment thread mods/desktop-icons-toggle-fork.wh.cpp Outdated
Comment thread mods/desktop-icons-toggle-fork.wh.cpp Outdated
Comment thread mods/desktop-icons-toggle-fork.wh.cpp Outdated
Implementation of windhawk.exe
@KiivYx
Copy link
Copy Markdown
Author

KiivYx commented May 24, 2026

@m417z After a lot of testing and refactoring, I have successfully removed the dependency on explorer.exe injection and migrated the entire mod to run as a standalone tool in a dedicated windhawk.exe process, exactly as requested.

I'm going to sleep now. ZZZZZ

@ciizerr
Copy link
Copy Markdown
Contributor

ciizerr commented May 24, 2026

The behavior of this mod appears to be similar to mod(pr) #4146 , though it uses a different shortcut.

@m417z
Copy link
Copy Markdown
Member

m417z commented May 24, 2026

Yes, it's similar. We also have "Keyboard Shortcut Actions" configuring a keyboard shortcut, and "Click on empty taskbar space" for taskbar empty space clicks, all can be configured to toggle desktop icons. With all these options, I'm not sure we need another similar mod. @KiivYx what do you think?

@KiivYx
Copy link
Copy Markdown
Author

KiivYx commented May 24, 2026

@ciizerr @m417z
Fair point — there's some functional overlap.
The main difference is architectural: unlike those mods, this one doesn't inject into explorer.exe at all. Following the earlier suggestion, I reworked it to run as a tool mod in a dedicated windhawk.exe process, so it never hooks or touches Explorer.
On top of that, it adds a persistent system tray icon: always visible, shows the current state at a glance (red mark when icons are hidden), left-click to toggle, right-click for a small menu — a visible control rather than a shortcut you have to know in advance. The keyboard shortcut isn't unique, so I'm happy to drop it if that's the concern.

Captura de pantalla 2026-05-24 183136 Captura de pantalla 2026-05-24 183607

That said, it's your call whether that's a meaningful enough difference to justify a separate mod. If you feel it's too close to what's already available, I completely understand and won't take it personally — just let me know which way you'd prefer, and thanks either way for maintaining all this.

KiivYx added 2 commits May 24, 2026 18:41
Change name desktop-icons-toggle-fork.wh.cpp to desktop-icons-toggle.wh.cpp
@ciizerr
Copy link
Copy Markdown
Contributor

ciizerr commented May 25, 2026

I think the overlap is mainly in the purpose (toggling desktop icons), but the way this mod works and shows the option to the user makes it different enough. Whether it should stay separate or be part of the existing mods is up to the maintainers, but I do appreciate the design choices you’ve added.

@Liset999
Copy link
Copy Markdown
Contributor

Hi there! I'm the author of ZenDesktop (#4146).
I really like your implementation, especially the system tray icon with status indication and the non-intrusive architecture that doesn't inject into explorer.exe!
Although they both toggle desktop icons, I feel they target slightly different users. ZenDesktop is for minimalists who prefer a completely invisible, double-click-on-desktop experience, while your mod is perfect for those who want visible controls, a status tray indicator, and a context menu.
Personally, I think having both as options would be great for the Windhawk community. Kudos on the neat work!

////////////////////////////////////////////////////////////////////////////////
// Windhawk tool mod implementation for mods which don't need to inject to other
// processes or hook other functions. Context:
// https://github.com/ramensoftware/windhawk/wiki/Mods-as-tools:-Running-mods-in-a-dedicated-process
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.

For the code below - keep it as the exact copy of the code in the wiki:
https://github.com/ramensoftware/windhawk/wiki/Mods-as-tools:-Running-mods-in-a-dedicated-process
Delete CreateToolProcessAsActiveUser, and adjust the rest of the code accordingly.

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.

4 participants