Add optional outbound connectivity probe with three-state status dot

This commit is contained in:
av
2026-07-18 15:47:39 +03:00
parent 74aa0ee384
commit fc83c57382
4 changed files with 195 additions and 38 deletions
+16 -3
View File
@@ -7,9 +7,14 @@ GNOME, используя встроенный **Clash API**.
**В панели (компактно):**
- монохромный индикатор-кружок — залит, когда API доступен и прокси жив; полый
(тускнее), когда API недоступен. Цвет берётся из цвета текста панели, поэтому
индикатор одинаково читается на тёмной и светлой теме;
- монохромный индикатор-кружок с тремя состояниями (цвет берётся из цвета текста
панели, поэтому индикатор одинаково читается на тёмной и светлой теме):
- **залитый круг** — сервис работает и через активный outbound есть связь;
- **сплошное кольцо** — сервис работает, но связи через outbound нет;
- **пунктирное кольцо (тусклое)** — сервис (Clash API) недоступен.
Различие «есть связь / нет связи» доступно только при включённой опции
«Connectivity check» (см. ниже) — иначе кружок просто залит, когда API отвечает;
- имя активного outbound (текущий узел Selector-группы);
- текущую скорость, например `↓2.4M ↑120k`.
@@ -71,6 +76,14 @@ gnome-extensions enable "$UUID"
показываются только те, что sing-box измерил сам. Ручной замер (пункт **Test latency**)
выполняется через `GET /proxies/{name}/delay` только по нажатию.
**Проверка связности (опция).** Если включить `check-connectivity` в настройках,
расширение раз в `connectivity-interval` секунд (по умолчанию 30) делает
`GET /proxies/{активный-узел}/delay` по адресу `connectivity-url`
(по умолчанию `https://www.gstatic.com/generate_204`). Успех → кружок залит и в меню
показывается задержка (`Active · N ms`); ошибка/таймаут → сплошное кольцо и
`No connectivity`. Это единственный режим, когда расширение шлёт трафик в фоне; по
умолчанию он выключен.
Сетевой слой (авторизация, разбор ответов, переключение outbound) проверен на живом
API sing-box 1.13.13.