Merge wiki additions into vault files

- wireguard-vpn: add Related notes section
- tv-luna-send: add Common Luna URIs table
- htpc-magic4pc: add WebOS app build/deploy, auto-launch, back key sections
- watchlist-automation: new file (full pipeline overview, migrated from wiki)
- watchlist-discover: update cron jobs (migrated to Kraken 2026-05-27)
This commit is contained in:
Alexey Martemyanov
2026-05-29 15:36:34 +06:00
parent 2ccb7e0a4a
commit 9ba2688a13
5 changed files with 244 additions and 3 deletions
+72
View File
@@ -92,6 +92,78 @@ TV шлёт координаты в пространстве 0–1920 × 0–108
- **Бинарь слетает** после `rpm-ostree upgrade` → пересобрать и скопировать.
- **Display switching** — при смене между `:0` и `:1` xdotool перезапускается. Если переключение происходит часто (мигающие окна) — возможны краткие потери мыши.
## WebOS TV App — сборка и деплой
TV-часть — React/Enact WebOS приложение + Node.js сервис, упакованные в IPK. Исходники: `~/Developer/magic4pc/webos/`.
### Сборка
```bash
cd ~/Developer/magic4pc/webos
NODE_OPTIONS=--openssl-legacy-provider npm run build
```
**Питфолл:** `--openssl-legacy-provider` обязателен — старый webpack несовместим с Node.js 25+.
### Упаковка IPK
```bash
/Users/admin/webOS_TV_SDK/CLI/bin/ares-package dist/ service/ --outdir .
```
**Питфолл:** нужны оба аргумента `dist/` и `service/` — без `service/` Node.js сервис не попадает в IPK.
**Питфолл:** `npm run package` = `ares-package -n` (unsigned) — TV отклоняет неподписанные пакеты. Использовать SDK-команду напрямую.
### Деплой (deploy.sh)
```bash
cd ~/Developer/magic4pc/webos && ./deploy.sh
```
Скрипт: build → package → scp → close → remove → install → launch.
Для install (subscribe mode) — прямой `ssh+script` с polling на `"state":"installed"`.
**Питфолл:** `ares-install` / `ares-launch` ненадёжны — не ждут завершения. Использовать `luna-send dev/install` через script-враппер.
Версия в UI отображается как `1.1.0 (YYYY-MM-DD HH:MM)` — инжектируется webpack через `process.env.BUILD_DATE`.
## Auto-launch при включении / пробуждении TV
Magic4pc запускает настроенное приложение при включении или пробуждении TV.
| Файл | Расположение | Назначение |
|------|-------------|-----------|
| `magic4pc-settings` | PERSISTENT_DIR | ID выбранного приложения |
| `magic4pc-last-app` | PERSISTENT_DIR | Последнее активное приложение |
| `magic4pc-run-state` | `/tmp/` | `running` после первого запуска |
`PERSISTENT_DIR = /media/developer/apps/usr/palm/services/me.wouterdek.magic4pc.service`
Логика:
- **Boot/wake:** `/tmp` очищается → нет `run-state``freshStart=true` → запускает настроенное приложение
- **Ручной запуск:** `run-state=running` уже есть → auto-launch пропускается
`init.d` скрипт на TV (`/var/lib/webosbrew/init.d/magic4pc`) удаляет `run-state` при suspend — wake снова тригерит fresh launch. Редактировать только в репо (`tv-scripts/init.d-magic4pc.sh`), не напрямую на TV.
## WebOS Back Key + системная клавиатура
Когда системная клавиатура открыта, **первый Back** поглощается OS (закрывает клавиатуру) — `keydown` и `onButtonDown` **не стреляют**. Второй Back приходит нормально.
Фикс в `MainPanel.js` (флаг `_kbWasOpen`):
```js
// Input.onActivate:
this._kbWasOpen = true;
// onButtonDown на Back:
if (this.state.wolMacActive || this._kbWasOpen) {
this._kbWasOpen = false;
return; // подавить закрытие панели
}
```
Подходы, которые не работают: `Popup.noAutoDismiss`, timeout-эвристика, polling `document.activeElement` (клавиатура — системный оверлей, фокус не переходит на INPUT).
## Деплой и sudoers
На HTPC настроен sudo без пароля для systemctl: