lightroom-cc-on-linux
- title
- lightroom-cc-on-linux
- type
- toolbox
- summary
- Wine recipe running Adobe Lightroom CC on Linux, debugged and patched autonomously by Claude
- tags
- wine, linux, lightroom, adobe, ai-built
- language
- C
- license
- MIT (scripts/stubs); LGPL-2.1+ (patched wine DLLs)
- created
- 2026-05-21
- updated
- 2026-05-21
A reproducible recipe for running Adobe Lightroom CC (the cloud-syncing photo app, not Classic) on Linux via Wine 11.8 staging. As of 2026-05-16, the full Creative Cloud desktop app signs in, the Lightroom Edit module renders all panels (Light, Color, Effects, Detail, Optics, Geometry), and the Remove/Heal tool works including brush, mask, and apply.
What makes the project interesting beyond the recipe itself is that it was researched, debugged, patched, screenshot-verified, and documented entirely by Claude Opus 4.7 working autonomously via Claude Code. The human contributor (sander110419) set the goal โ get Lightroom working, then publish a reproducible recipe โ and answered occasional clarification questions. The agent did the rest.
The six non-obvious fixes
- DXVK dummy composition swapchain so WebView2 (Adobe's Electron UI shell) can render.
- Disable AdobeGrowthSDK.dll โ Adobe's A/B testing library calls the unimplemented
SetThreadpoolTimerExand crashes the entire CC process tree. - Patched
d2d1.dllregistering theCLSID_D2D1ColorManagementbuiltin effect Lightroom needs. Build instructions instubs/sources/. - Patched
mfplat.dllwith aMFCreateSampleCopierMFTforwarder so the Remove/Heal tool stops crashing. The DLL must be dropped into two locations โsystem32/and the Adobe-bundled copy atProgram Files/Adobe/Adobe Lightroom CC/mfplat.dll, because Adobe ships its own that preempts wine's. - Tiny stub DLLs for
NDFAPI.DLL,wkscli.dll,ext-ms-win-uiacore-l1-1-2.dll. - Lowercase symlinks for Adobe-bundled DLLs so wine's case-sensitive PE loader can find them.
The agent's working loop
The README documents how Claude actually worked:
- Read crash dumps, wine logs, Adobe binaries (with
winedump,objdump, raw PE parsing in Python). - Diff export tables across every relevant
mfplat.dll(wine builtin, Proton's, Adobe's bundled) against winegstreamer's delay-loaded imports, narrowing down to the single missing functionMFCreateSampleCopierMFT. - Patch the binary directly (
scripts/patch_mfplat.py): appended a new PE section with a fresh export directory containing all original exports plus a forwarder tomf.MFCreateSampleCopierMFT. - Verify by screenshotting with ImageMagick's
import, locating UI elements algorithmically with Pillow, driving the mouse viaxdotool, watching for either the Remove tool's popup or a crash dump in~/AppData/LocalLow/Adobe/CRLogs/. When clicks missed by a few pixels, the agent re-took the screenshot, re-ran detection, adjusted, retried. - Discover that the patched
system32/mfplat.dllwasn't loading because Windows DLL search order prefers the app directory and Adobe ships its own. Copied the patched DLL into Adobe's install directory, re-launched, screenshot-confirmed Remove tool now works. - Document what worked, save memory notes for the next session so the Adobe-bundled-DLL gotcha is a transferable lesson for other Adobe apps.
Method documentation
history_methodology.md (~1750 lines) is the chronological build history โ every step, dead end, diff, and screenshot-driven UI verification across multi-day debugging. Part I reconstructs earlier sessions (DXVK, SetThreadpoolTimerEx, D2D effect CLSID scan, three classes of missing-DLL fixes) from live journal docs, screenshots, and wineprefix forensics โ the earlier agents are gone but left enough records. Part II is the real-time account of the Remove/Heal fix and the publishing pipeline, written by the agent as it happened.
Quick start
git clone https://github.com/sander110419/lightroom-cc-on-linux.git
cd lightroom-cc-on-linux
./scripts/setup.sh # ~30 min, mostly downloads
# Then download ACCCx*.zip from Adobe, drop in installers/
./scripts/install-cc.sh
./scripts/install-lightroom.sh
./scripts/run-lightroom.sh
Prereqs: 64-bit Linux on kernel 6.x+, Wine 11.8 staging, winetricks 20240105+, Vulkan-capable GPU, ~10 GB free, mingw-w64, a valid Adobe Lightroom CC subscription.
Why this is interesting
Two things at once: the actual Lightroom-on-Linux recipe, and the artifact of an agent doing multi-day autonomous binary debugging end to end. The patched DLLs in stubs/binaries/ are the bit-for-bit copies the agent verified work โ md5s in GUIDE.md match the bytes in the repo. No LLM hand-waving made it into the actual binaries.
The piece sits next to 1password-agentic-refactoring (1Password's case for agent-built deterministic tools) and building-syntaqlite-ai (vibe coding vs. disciplined design with AI). All three point at the same shift โ the useful AI agent product is the agent + a verification harness, not the agent producing prose.
Credits
- PhialsBasement โ wine fork that fixes CC installer mshtml/msxml3 issues.
- Wine project for d2d1, mfplat, mf sources.
- Proton GE for the mfplat baseline.
- sander110419 โ set the goal, supplied the Adobe subscription, hosts the repo.
- Claude Opus 4.7 โ did the debugging, wrote the patches, ran screenshot-driven verification, authored every file.
Repo: github.com/sander110419/lightroom-cc-on-linux โ 138 stars, MIT