Like many of you, I’ve been wanting to use TouchDesigner on Linux for a long time. So I made a fully automated installer and environment manager that handles everything in a single command.
It delivers a true native experience with multi-version management, built-in maintenance tools, Wayland optimizations, and automated system fixes.
Multi-Version Support: Install and run multiple TD versions side-by-side.
Auto .toe Font Patching: Automatically detects and fixes missing UI fonts on launch using native toeexpand and toecollapse utilities under the hood (with automatic 30-day backups).
Lifecycle Menus: Rerunning the script lets you easily Update (components, winetricks, DXVK) or Uninstall cleanly.
Wayland Optimizations: Includes dedicated stability workarounds (like the use of XWayland) to bypass UI bugs on modern desktops.
Diagnostic Tool: Run td-install --diagnose to check GPU, Vulkan and Wine status in one command.
Desktop Integration: Automatically generates application icons and clean file associations for your .toe / .tox files:
The glitch in the transport panel is a font rendering issue. Just drag and drop the .tox from the repo into your session to fix the UI. In the next update (v1.1.0 release on GitHub), the script will auto-install this fix into your Palette (My Components)
Also, could you paste the exact warning from the textport? I’ll check if a specific font is missing.
[EDITED] - This issue is automatically fixed since v1.2
Ok thanks for sharing the message.
This error is usually a non-blocking Wine fallback. If the UI looks correct after applying wine_ui_fixes.tox, it can be safely ignored.
I also just pushed v1.1.0, which improves the current font and UI fix workflow (including the font-fix desktop entry) to make this Linux/Wine issue more reliable.
You can re-run the install script without uninstalling your current TouchDesigner version, then:
Open Palette > My Components
Refresh Folder
Drag wine_ui_fixes.tox into your network
Click Enable / Fix Now, and voila !
You can either use the font-fix desktop entry, or use the default one and set your own default startup .toe project.
I would like to understand the trick with patching the ids-DLLs. Could you explain why setting the operating system version to zero is supposed to help (maybe even: why the same fix applied manually does not do anything)?
Hi. You’re looking at the right area, but the field being zeroed is AddressOfEntryPoint, not majorOperatingSystemVersion.
In the PE header, e_lfanew + 40 (after signature + COFF header + 16 bytes into the optional header) is the entry point. Zeroing it tells the loader this DLL has no DllMain to call, so Wine skips it entirely when the DLL loads at startup. The DLL’s actual functions (used when an IDS camera is connected) still work fine though.
The reason your manual patch didn’t work is probably that you patched e_lfanew + 48 (where majorOperatingSystemVersion lives) instead.
Please check your hex editor: the 4 bytes at e_lfanew + 40 should be 00 00 00 00.