Files
tglock/Cargo.toml
T
Никита Sonic b06272437c fix(gui): просить программный рендер, чтобы окно создавалось без 3D (#28)
Интерфейс построен на системном WebView, а тот без 3D-ускорения окно не
создаёт. Отсюда весь класс жалоб: не стартует в виртуалке, не стартует с
дефолтным драйвером Microsoft, не стартует без монитора. Диагноз в #17 дал
@de4me: в VirtualBox приложение запускается только после включения галочки
«Включить ускорение 3D».

Перед стартом Tauri TGLock теперь сам запрашивает программный рендер:
- Windows: WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS с --disable-gpu
  и --disable-gpu-compositing;
- Linux: WEBKIT_DISABLE_COMPOSITING_MODE и WEBKIT_DISABLE_DMABUF_RENDERER;
- macOS: не требуется, WebKit сам уходит в программный рендер.

Для панели со статусом программный рендер не стоит ничего заметного, поэтому
он выбран значением по умолчанию, а не аварийным режимом. Уже заданные
оператором переменные не перезаписываются, TGLOCK_FORCE_GPU=1 отключает
механизм целиком.

Логика вынесена в чистую функцию software_rendering_vars и покрыта четырьмя
тестами: значение по умолчанию, отключение через TGLOCK_FORCE_GPU, уважение
чужой переменной и правильный набор ключей на каждой платформе.

Версия поднята до 2.0.0-beta.2 в Cargo.toml, package.json и tauri.conf.json:
нужен тег, чтобы в релиз попали и tglock-cli, и этот фикс.

README получил отдельный вопрос в FAQ про «окно не появляется»,
ARCHITECTURE_V2.md — обновлённый пункт в Current limitations.

Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
2026-07-30 13:40:04 +03:00

56 lines
1.2 KiB
TOML

[package]
name = "tglock"
version = "2.0.0-beta.2"
edition = "2021"
rust-version = "1.88"
description = "Telegram unblock via local WebSocket tunnel"
license = "MIT"
autobins = false
[features]
default = ["gui"]
# The desktop GUI. Turning it off drops Tauri, the system WebView and the
# frontend bundle from the build, which is what makes headless servers and
# machines without a GPU or monitor able to build and run TGLock at all.
gui = ["dep:tauri", "dep:tauri-build", "dep:open"]
[lib]
name = "tglock"
path = "src/lib.rs"
[[bin]]
name = "tglock"
path = "src/main.rs"
required-features = ["gui"]
[[bin]]
name = "tglock-cli"
path = "src/bin/cli.rs"
[dependencies]
tauri = { version = "2", features = [], optional = true }
open = { version = "5", optional = true }
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = [
"rt-multi-thread",
"net",
"io-util",
"time",
"macros",
"sync",
"signal",
] }
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
native-tls = "0.2"
futures-util = "0.3"
aes = "0.8"
ctr = "0.9"
cipher = "0.4"
sha2 = "0.10"
rand = "0.8"
[build-dependencies]
tauri-build = { version = "2", features = [], optional = true }