From 879013782f3211dde139bed86806cd67a8e0716d Mon Sep 17 00:00:00 2001 From: boyko_vn Date: Fri, 14 Aug 2026 01:24:45 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B2=20=D1=82=D1=80=D0=B5=D0=B5=20=D0=B2=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=BE=20=D0=BD=D0=B0=D1=80=D0=B8=D1=81=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BA=D1=80=D1=83=D0=B6=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit make_icon() грузит PNG из icons/ по состоянию (серый/жёлтый/зелёный — цвета прежние) и кэширует. Если файла нет или он битый — прежняя отрисовка кружка. В .gitignore исключение для icons/*.png, иначе иконки не попадали в репозиторий под общим правилом *.png. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index 5dd860e..e2c6510 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,31 @@ 5. Положить секреты в keyring: `bash init.sh `. 6. Запуск: `python launch_vpn_gui.py` (запросит права администратора). +Ярлык без окна консоли — `launch_vpn.bat`: ищет `pythonw.exe` сначала в `.venv` проекта, затем в PATH, затем через `pyw.exe -3`. + +## Автозапуск при входе в систему + +Через Планировщик заданий, а не папку «Автозагрузка»: оттуда процесс стартует непривилегированным, и `ensure_admin()` дёргает UAC-окно при каждом входе. Задача с «Запускать с наивысшими правами» отдаёт админский токен сразу — промпта нет. + +Регистрация (один раз, нужен админ): + +``` +schtasks /create /tn VPN-TOTP-Tray /xml vpn_tray_task.xml /f +``` + +`vpn_tray_task.xml` лежит в корне репозитория (в UTF-16 — этого требует `schtasks /xml`). Пути к `launch_vpn.bat` и имя пользователя в нём захардкожены абсолютными — при переносе проекта или на другой машине правь ``, `` и оба ``. + +Управление: + +``` +schtasks /query /tn VPN-TOTP-Tray /v /fo list # статус +schtasks /run /tn VPN-TOTP-Tray # запустить сейчас +schtasks /change /tn VPN-TOTP-Tray /disable # временно выключить автозапуск +schtasks /delete /tn VPN-TOTP-Tray /f # снести (нужен админ) +``` + +Или через GUI: `taskschd.msc` → Библиотека планировщика → `VPN-TOTP-Tray`. + ## Индикатор в трее - 🔘 серый — openvpn не запущен; @@ -17,6 +42,8 @@ Проверку связи можно отключить (`"ping_check_enabled": false`) — тогда только серый/зелёный. +Картинки берутся из `icons/` (`v-gray-256.png`, `v-yellow-256.png`, `v-green-256.png`). Если файла нет — рисуется кружок того же цвета. + ## Настройки (`vpn_config.json`) Правятся вручную или через пункт меню «Открыть настройки»; перечитываются на лету.