# HTPC — Доступ и управление ## SSH ```bash ssh -i ~/.ssh/id_rsa bazzite@192.168.1.86 ``` Пароль sudo: `bazzite` ## Go (на HTPC) Go установлен в `/usr/local/go/bin/go` (не в PATH по умолчанию). Сборка: `cd ~/magic4pc && /usr/local/go/bin/go build -o magic4pc_new .` ## Git workflow (magic4pc) - Mac: `~/Developer/magic4pc_altclient`, бранч `bazzite-linux` - Remote `linux` → `ssh://bazzite@192.168.1.86/var/home/bazzite/magic4pc.git` (bare repo) - Worktree на HTPC: `/home/bazzite/magic4pc` - Remote `origin` → `https://github.com/mallexxx/magic4pc_altclient.git` Деплой: ```bash # На Mac: git push linux bazzite-linux # На HTPC: cd ~/magic4pc && git pull && /usr/local/go/bin/go build -o magic4pc_new . sudo systemctl stop magic4pc sudo rm /usr/local/bin/magic4pc sudo cp magic4pc_new /usr/local/bin/magic4pc sudo systemctl start magic4pc ``` > ⚠️ Нельзя `cp` поверх работающего бинаря — "Text file busy". Всегда сначала `stop` → `rm` → `cp` → `start`. ## systemd сервис Файл: `/etc/systemd/system/magic4pc.service` ```ini [Unit] Description=Magic Remote client for LG TV After=network.target [Service] User=bazzite Group=bazzite ExecStart=/usr/local/bin/magic4pc-run.sh Restart=always RestartSec=5 StartLimitIntervalSec=0 [Install] WantedBy=multi-user.target ``` `StartLimitIntervalSec=0` — без лимита рестартов (иначе при crash-loop убивается). ## Run script `/usr/local/bin/magic4pc-run.sh` — ждёт X display, делает `xhost +local:`, запускает бинарь. ## ydotoold User-юнит: `~/.config/systemd/user/ydotoold.service` Socket: `/run/user/1000/.ydotool_socket` Управление: `systemctl --user status ydotoold` ## Логи ```bash journalctl -u magic4pc -n 50 --no-pager journalctl -u magic4pc -f # live ```