Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InDesign Thread Fix (ID_Thread_Fix)

InDesign Thread Fix Banner



Safe and lightweight CPU 100% thread fix utility and launcher for Adobe InDesign (2020 – 2026+)

Download ID_Thread_Fix.exe Direct Download from Repo


Release License: MIT Platform Compatibility Language

( 🇬🇧 English | 🇷🇺 Русский )


🇬🇧 English

Overview

InDesign Thread Fix (ID_Thread_Fix) is a specialized, lightweight Windows utility that resolves the infamous high-CPU bug in Adobe InDesign (versions CC 2020 through 2026+), where runaway background worker threads get stuck in 100% CPU infinite loops.

This bug commonly occurs due to stalled CEP extension panels, Creative Cloud library synchronizers, or font caching routines. The symptom is unmistakable: even when InDesign is completely idle, one or more CPU cores stay pegged at 100%, causing laptop fans to spin at maximum speed, battery drain, thermal throttling, and subtle UI stuttering.

ID_Thread_Fix monitors, isolates, and terminates only the runaway background threads while protecting the main UI thread and primary process thread.


📥 Download Prebuilt Executable

No installation required. Single portable .exe file (328 KB).


Key Features

  • 🛡️ 100% Crash-Proof via Thread Suspension (SuspendThread): Instead of hazardous termination (TerminateThread), rogue threads are safely frozen via SuspendThread. This instantly drops CPU load from 23–25% to 0% idle and quiets fans without corrupting memory, abandoning critical sections, or causing access violations.
  • ⏱️ Automatic Startup Grace Period (25s): Waits for InDesign's main window to appear, then gives an extra 25 seconds for font table compilation, the Torq layout engine, and CEP/UXP panels to complete initial loading before scanning.
  • 🔒 Main UI & Primary Thread Protection: Strictly protects InDesign's main UI thread (MainWindowHandle) and primary process thread (Threads[0]).
  • 🔬 Accurate Differential CPU Sampling: Measures processor time across a 2.0-second window. Any thread consuming $\ge 60%$ of a core in idle is identified, isolated, and suspended.
  • 🚀 Universal Launcher Wrapper: Acts as a drop-in replacement for InDesign desktop/taskbar shortcuts. Transparently passes opened .indd documents and CLI arguments, waits for startup, and stabilizes CPU load automatically.
  • ⚡ One-Shot Fix Mode (--fix-only): Instantly attaches to an already-running, lagging InDesign instance and frees the CPU in seconds without restarting.
  • 🔄 Background Daemon Mode (--monitor): Can run in the background (or via Task Scheduler) to periodically check and suspend runaway threads every $N$ minutes.
  • 📂 Guaranteed Log Persistence: Automatically writes diagnostic logs to %LOCALAPPDATA%\ID_Thread_Fix\indesign_fix.log, ensuring write access even when running from protected locations like Program Files.
  • 🪶 Zero Dependencies & Portable: Single standalone .exe (328 KB) with native .NET Framework support built into every Windows 10/11 system.

How It Works

flowchart TD
    A(["🚀 Start ID_Thread_Fix"]) --> B{"Is InDesign<br/>running?"}
    B -- No --> C["Find InDesign.exe<br/>(Registry / Disk)"]
    C --> D["Launch InDesign<br/>+ Forward Args"]
    D --> E["Wait for Main Window<br/>+ 25s Startup Grace Period"]
    B -- Yes --> F["Attach to<br/>InDesign Process"]
    E --> F
    F --> G["Protect Critical Threads<br/>(Main UI & Primary Process)"]
    G --> H["Sample All Threads<br/>(2.0s Differential Window)"]
    H --> I{"Rogue Thread Found?<br/>(CPU &ge; 60%)"}
    I -- No --> J["✅ All Threads Healthy<br/>(Normal CPU)"]
    I -- Yes --> K["❄️ Suspend Rogue Thread<br/>via Win32 SuspendThread"]
    K --> L["🎯 CPU Load Drops to 0%<br/>(Fans Quiet, Zero Crash Risk)"]
Loading

Usage

1. Direct Launcher (Recommended)

Replace your desktop or taskbar shortcut with ID_Thread_Fix.exe. When clicked, it will start InDesign, pass any opened .indd files, and automatically normalize CPU usage after startup:

ID_Thread_Fix.exe "C:\Projects\AnnualReport.indd"

2. Fix Currently Running InDesign

If InDesign is already open and your CPU fan is spinning:

ID_Thread_Fix.exe --fix-only

3. Continuous Background Monitor

Run as a lightweight monitor checking every 10 minutes:

ID_Thread_Fix.exe --monitor 10

Command-Line Arguments

Option Short Description
--fix-only -f Scan and fix running InDesign instances without launching InDesign if closed.
--monitor [min] -m Run as continuous background daemon checking every [min] minutes (default: 5).
--threshold <percent> CPU usage percentage of a core to trigger suspension (default: 60).
--startup-wait <sec> Seconds to wait after window loads before scanning (default: 25).
--verbose -v Display detailed diagnostic information and thread metrics.
--silent -s Run in silent mode without console output.
--log <path> Custom path for log file (default: %LOCALAPPDATA%\ID_Thread_Fix\indesign_fix.log).
--help -h Show help message with all available options.
--version Show program version.

Building from Source

You can build ID_Thread_Fix in two ways:

Option A: Quick Build (Native Windows .NET Framework)

No SDKs required! Runs using the built-in Windows C# compiler:

build.bat

Option B: .NET SDK Build

dotnet build -c Release

The resulting executable will be placed in the dist/ directory.


Compatibility

  • OS: Windows 10, Windows 11, Windows 8.1, Windows 7 (x64 / x86 / ARM64).
  • Adobe InDesign: CC 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026+.

🛠️ Other Projects

Free Adobe Automation Tools

  • Collection of free scripts and automation tools for Adobe Creative Cloud applications.

AI Dimension

  • Advanced technical dimensioning, bounds, and leader line extension panel for Adobe Illustrator.

ID Dimension

  • Professional technical dimensioning script and palette for Adobe InDesign.

ComfyUI Photoshop Plugin (PH-CU-S)

  • A powerful Photoshop plugin powered by ComfyUI, providing direct integration with local generative models.

🇷🇺 Русский

Описание

InDesign Thread Fix (ID_Thread_Fix) — специализированная утилита для Windows, устраняющая известную проблему высокой загрузки процессора в Adobe InDesign (версий 2020–2026+), при которой фоновые потоки зацикливаются и загружают ядро CPU на 100%.

Эта проблема часто возникает из-за зависших фоновых процессов расширений CEP, синхронизации библиотек Creative Cloud или построения кэша шрифтов. Симптом очевиден: даже в режиме полного простоя InDesign одно или несколько ядер процессора загружены на 100%, кулеры ноутбука/ПК работают на максимуме, батарея быстро разряжается, а интерфейс начинает подтормаживать.

ID_Thread_Fix находит, изолирует и завершает только зацикленные фоновые потоки, целенаправленно исключая из завершения главный UI-поток и первичный процесс InDesign.


📥 Скачать готовый файл

Не требует установки. Один портативный файл .exe (328 КБ).


Основные возможности

  • 🛡️ 100% защита от падений через заморозку потоков (SuspendThread): Вместо рискованного уничтожения (TerminateThread), зацикленный поток безопасно приостанавливается через Win32 API SuspendThread. Загрузка процессора мгновенно падает с 23–25% до 0% в простое, кулеры замолкают, а критические секции и память ntdll.dll остаются абсолютно целыми.
  • ⏱️ Автоматическая пауза стабилизации старта (25 сек): Дожидается появления главного окна InDesign и выдерживает 25 секунд на полную загрузку шрифтов, движка Torq и панелей CEP/UXP перед началом сканирования.
  • 🔒 Строгая защита интерфейса и процесса: Главный UI-поток интерфейса (MainWindowHandle) и первичный поток процесса (Threads[0]) надежно защищены от приостановки.
  • 🔬 Точный замер нагрузки (сэмплирование 2.0 сек): Измеряет точную дельту времени процессора каждого потока. Потоки с нагрузкой $\ge 60%$ одного ядра изолируются и замораживаются.
  • 🚀 Универсальный лаунчер: Заменяет стандартный ярлык InDesign. Корректно пробрасывает все аргументы и файлы .indd, дожидается запуска программы и автоматически нормализует загрузку CPU.
  • ⚡ Мгновенный фикс (--fix-only): Подключается к уже открытому InDesign и мгновенно снимает зависшую нагрузку без перезапуска программы.
  • 🔄 Фоновый мониторинг (--monitor): Работает в фоне и периодически проверяет и замораживает зацикленные потоки каждые $N$ минут.
  • 📂 Гарантированная запись логов: Логи пишутся в %LOCALAPPDATA%\ID_Thread_Fix\indesign_fix.log — они сохраняются всегда, даже если утилита запущена из защищенной папки Program Files.
  • 🪶 Без зависимостей и установки: Легковесный бинарник (328 КБ), работающий на любой Windows 10/11 без установки стороннего ПО.

Схема работы

flowchart TD
    A(["🚀 Запуск ID_Thread_Fix"]) --> B{"InDesign уже<br/>запущен?"}
    B -- Нет --> C["Поиск InDesign.exe<br/>(Реестр / Диск)"]
    C --> D["Запуск InDesign<br/>+ Проброс аргументов"]
    D --> E["Ожидание окна UI<br/>+ 25с на инициализацию"]
    B -- Да --> F["Подключение к процессу<br/>InDesign (PID)"]
    E --> F
    F --> G["Защита критических потоков<br/>(Главный UI и Первичный процесс)"]
    G --> H["Замер нагрузки всех потоков<br/>(Интервал 2.0с, порог &ge; 60%)"]
    H --> I{"Найден зацикленный поток?"}
    I -- Нет --> J["✅ Все потоки в норме<br/>(Штатная нагрузка)"]
    I -- Да --> K["❄️ Заморозка потока<br/>через Win32 SuspendThread"]
    K --> L["🎯 Нагрузка на CPU падает до 0%<br/>(Кулеры тихие, риск падения 0%)"]
Loading

Варианты использования

1. Запуск вместо ярлыка InDesign (Рекомендуется)

Замените ярлык InDesign на рабочем столе или панели задач на ID_Thread_Fix.exe. При запуске утилита откроет InDesign (включая переданные .indd файлы) и сразу после старта устранит зависшие потоки:

ID_Thread_Fix.exe "C:\Projects\Brochure.indd"

2. Быстрое исправление уже запущенного InDesign

Если InDesign уже открыт и сильно шумит кулер:

ID_Thread_Fix.exe --fix-only

3. Мониторинг в фоновом режиме

Периодическая проверка каждые 10 минут:

ID_Thread_Fix.exe --monitor 10

Параметры командной строки

Опция Сокращение Описание
--fix-only -f Сканировать и исправить запущенный InDesign без его открытия, если он закрыт.
--monitor [мин] -m Работать как фоновый демон с интервалом проверки [мин] минут (по умолчанию: 5).
--threshold <%> Порог нагрузки CPU ядра для срабатывания (по умолчанию: 60).
--startup-wait <сек> Время ожидания стабилизации запуска перед сканированием (по умолчанию: 25).
--verbose -v Выводить подробную диагностику и метрики потоков.
--silent -s Тихий режим работы без вывода в консоль.
--log <путь> Путь для записи логов (по умолчанию: %LOCALAPPDATA%\ID_Thread_Fix\indesign_fix.log).
--help -h Показать справку по всем параметрам.
--version Показать версию программы.

Сборка из исходников

Вариант 1: Быстрая сборка (Встроенный компилятор Windows)

Не требует установки SDK, собирается за 0.2 секунды:

build.bat

Вариант 2: Сборка через .NET SDK

dotnet build -c Release

Готовый исполняемый файл будет помещен в папку dist/.

🛠️ Мои проекты

Free Adobe Automation Tools

  • Каталог бесплатных скриптов и инструментов автоматизации для программ Adobe.

AI Dimension

  • Аналогичное расширение для простановки размеров и выносок в Adobe Illustrator.

ID Dimension

  • Профессиональный инструмент и палитра для простановки размеров в Adobe InDesign.

ComfyUI Photoshop Plugin (PH-CU-S)

  • Мощный плагин для Photoshop на базе ComfyUI, обеспечивающий прямую интеграцию с локальными генеративными моделями.

Лицензия

Проект распространяется под открытой лицензией MIT. Copyright © 2026 SaidAuita.

About

Safe and lightweight CPU 100% thread fix utility and launcher for Adobe InDesign (2020–2026+)

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages