# Отдельный запуск ChatGPT через прокси ## Проблема Linux-приложение ChatGPT не применяет обычные proxy-переменные ко всему Chromium-трафику и при штатном запуске выходит в интернет напрямую. Правка файлов Debian-пакета недолговечна: обновление приложения их заменит. ## Цели - Дать отдельный и явно названный ярлык `ChatGPT Proxy`. - Использовать активные настройки и проверку доступности `proxy-client`. - Не допускать тихого запуска напрямую при ошибке прокси. - Сохранить штатный ярлык `ChatGPT` для прямого запуска. - Переживать обновления Debian-пакета ChatGPT. ## Не входит в задачу - Изменение системного прокси GNOME. - Перенаправление трафика других приложений. - Изменение файлов в `/usr/lib/chatgpt` и `/usr/share/applications`. - Автоматический запуск или переключение прокси. ## Рассмотренные варианты - Подменить штатный пользовательский ярлык. Удобно для обязательного прокси, но стирает различие между прямым и проксированным запуском. - Добавить отдельный пользовательский ярлык. Оба режима видны явно, а файлы приложения остаются нетронутыми. - Включить системный прокси GNOME. Решение переживает обновления, но меняет поведение всех приложений рабочего стола. - Перенаправлять трафик на сетевом уровне. Это даёт более жёсткую изоляцию, но заметно усложняет личную конфигурацию. - Оставить всё как есть. Тогда пользователь должен каждый раз помнить о прямом соединении ChatGPT. ## Решение В dotfiles хранится отдельный пользовательский ярлык `ChatGPT Proxy` и его запускатель. Штатный `ChatGPT` остаётся прямым аналогично паре `codex` и `pcodex`. Запускатель получает окружение от `proxy-client`, а для сетевого слоя Chromium добавляет явные параметры сервера и списка обхода. Если прокси недоступен, ChatGPT не запускается, а GNOME показывает уведомление с причиной и командой для диагностики. Если ChatGPT уже работает через тот же прокси, повторный запуск передаёт ему запрос: Electron поднимает существующее окно. Если работает прямой экземпляр или экземпляр с другими настройками прокси, запуск отклоняется. Уведомление предлагает полностью завершить ChatGPT через системный лоток. Встроенный перезапуск для обновления сохраняет режим, в котором приложение было открыто. Ярлык и запускатель устанавливаются в пользовательские каталоги через Stow. Они не заменяют одноимённые файлы Debian-пакета, поэтому обновление ChatGPT их не затрагивает. ## Отклонённые решения - Подмена штатного ярлыка отклонена: отдельное имя лучше показывает выбранный режим и не скрывает возможность прямого запуска. - Системный прокси отклонён из-за слишком широкой области действия. - Сетевое перенаправление отложено как избыточное для одного приложения. - Переход на прямое соединение при ошибке запрещён: имя `ChatGPT Proxy` должно быть гарантией, а не пожеланием. ## Риски и защита - Уже работающий прямой процесс не примет новые параметры. Запускатель отличает его от экземпляра с теми же параметрами прокси и отказывает только при конфликте режимов. - Одних proxy-переменных может быть недостаточно для Chromium. Запускатель передаёт параметры прокси явно и одновременно сохраняет окружение для дочерних процессов. - Ошибка графического запуска может остаться незаметной. Причина выводится в stderr и дублируется уведомлением GNOME. - Формат списка обхода отличается у `NO_PROXY` и Chromium. Запускатель явно преобразует список перед запуском приложения. ## Проверка - При доступном прокси ChatGPT получает proxy-переменные и параметры Chromium. - Адреса из `NO_PROXY` попадают в список обхода Chromium. - При недоступном прокси приложение не запускается и появляется уведомление. - При повторном прокси-запуске поднимается окно уже работающего проксированного экземпляра. - При работающем прямом экземпляре появляется уведомление с инструкцией завершить его через системный лоток. - Штатный системный ярлык не меняется. - Повторное применение dotfiles восстанавливает пользовательский ярлык после обновления Debian-пакета.