Skip to content

Put "Convert with Filee" in the Windows 11 top-level menu - #15

Merged
KnifeLemon merged 2 commits into
mainfrom
pr/15-win11-context-menu
Sep 30, 2026
Merged

KnifeLemon merged 2 commits into
mainfrom
pr/15-win11-context-menu

Conversation

@KnifeLemon

Copy link
Copy Markdown
Owner

A small native IExplorerCommand DLL (built with a pinned Zig toolchain) and an unsigned sparse package. Adding it to the main menu is opt-in from Settings → General and needs one administrator prompt (Windows allows unsigned packages with executable content only for all users); switching the entry off and on afterwards is instant. Windows 10 keeps the classic menu entry.

🤖 Generated with Claude Code

KnifeLemon and others added 2 commits October 1, 2026 07:51
Windows 11 only shows the classic HKCU shell verb under "Show more
options". The top-level menu needs a packaged IExplorerCommand, so this
adds a tiny native COM server (src/Filee.ExplorerMenu, plain C without a
C runtime, built with a pinned Zig toolchain because neither MSVC nor the
Windows SDK is available) and an unsigned sparse MSIX whose external
location is the install folder (packed with Windows' own packaging API).

Windows refuses to register an unsigned package with executable content
per user (0x80073D2B); it must be added with administrator rights. The
entry is therefore opt-in: Settings > General offers "Add to the main
menu" on Windows 11 x64, which runs Add-AppxPackage -AllowUnsigned
through one UAC prompt. The manifest version is independent of the app
version, so updates need no new prompt, and the DLL only shows the entry
while the app's title file exists, so the existing setting still turns
it on and off without re-registering. While the package is registered
the classic verb is removed to avoid a duplicate under "Show more
options"; otherwise (Windows 10, declined prompt, failure) the classic
verb and Send To stay as before.

Invoke starts Filee.exe --convert next to the DLL; selections too long
for a command line go through a temp list file (--convert-list), which
the app deletes after reading. Uninstall removes the package. CI and the
release workflow build the DLL and package; tests cover the manifest,
registration scripts, the list hand-over and the DLL loaded in-process.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	.github/workflows/ci.yml
@KnifeLemon KnifeLemon added the feature New features label Sep 30, 2026
@KnifeLemon
KnifeLemon merged commit 4f04dc2 into main Sep 30, 2026
1 check failed
@KnifeLemon
KnifeLemon deleted the pr/15-win11-context-menu branch September 30, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant