modify: Пн 06 апр 2026 09:15:57 MSK

This commit is contained in:
2026-04-06 11:43:32 +03:00
parent 3f1090d377
commit 7dda977baa

View File

@@ -187,6 +187,8 @@ adb reboot
или
- VNC: https://wiki.termux.com/wiki/Graphical_Environment
**Одномоментно может работать что-то одно: X11 или VNC**
```shell
# Установка XFCE4
pkg install xfce4 xfce4-goodies
@@ -220,50 +222,250 @@ termux-x11 :1 -legacy-drawing -xstartup "dbus-launch --exit-with-session xfce4-s
Вы должны увидеть рабочий стол XFCE
### Создание скрипта для быстрого запуска
#### Создание скрипта для быстрого запуска
Чтобы каждый раз не вводить длинную команду, создайте скрипт в Termux:
```shell
cat $PREFIX/bin/startx
cat > $PREFIX/bin/x11 << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
# 1. Жёстко останавливаем старые процессы сервера
pkill -9 termux-x11 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X1 2>/dev/null
case "$1" in
down)
echo "🛑 Останавливаем XFCE и Termux:X11..."
# 2. Небольшая пауза для освобождения ресурсов
sleep 1
# Убиваем XFCE сессию
pkill -f "xfce4-session" 2>/dev/null
pkill -f "dbus-launch.*xfce4" 2>/dev/null
# 3. Устанавливаем необходимую переменную окружения
export XDG_RUNTIME_DIR=${TMPDIR}
#export PULSE_SERVER=127.0.0.1
# Останавливаем X сервер
pkill -9 termux-x11 2>/dev/null
pkill -9 -f "com.termux.x11.Loader" 2>/dev/null
# 4. Запускаем сам X-сервер Termux с флагом для Kirin
termux-x11 :1 -legacy-drawing > /dev/null 2>&1 &
# Удаляем сокеты
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X1 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
# 5. Ждём, пока создастся сокет (индикатор, что сервер готов)
timeout=5
while [ ! -e /data/data/com.termux/files/usr/tmp/.X11-unix/X1 ] && [ $timeout -gt 0 ]; do
sleep 1
((timeout--))
done
# Закрываем окно Termux:X11 через Activity Manager
am force-stop com.termux.x11 2>/dev/null
# 6. Открываем графическое окно Termux:X11 на экране планшета
am start --user 0 -n com.termux.x11/.MainActivity > /dev/null 2>&1 &
echo "✅ Termux:X11 остановлен."
;;
# 7. Запускаем саму среду рабочего стола XFCE
env DISPLAY=:1 dbus-launch --exit-with-session xfce4-session > /dev/null 2>&1 &
up|"")
echo "🚀 Запускаем XFCE и Termux:X11..."
echo "✅ Готово! Терминал и X-сервер запущены, окно Termux:X11 открыто."
# Останавливаем всё, что могло остаться
pkill -9 termux-x11 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X1-lock 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
sleep 1
# Устанавливаем переменные окружения
export XDG_RUNTIME_DIR=${TMPDIR}
# Запускаем X сервер
termux-x11 :1 -legacy-drawing > /dev/null 2>&1 &
# Ждём создания сокета
timeout=5
while [ ! -e /data/data/com.termux/files/usr/tmp/.X11-unix/X1 ] && [ $timeout -gt 0 ]; do
sleep 1
((timeout--))
done
# Открываем окно Termux:X11
am start --user 0 -n com.termux.x11/.MainActivity > /dev/null 2>&1 &
# Запускаем XFCE
env DISPLAY=:1 dbus-launch --exit-with-session xfce4-session > /dev/null 2>&1 &
echo "✅ XFCE запущен в Termux:X11!"
;;
status)
echo "📊 Статус:"
if pgrep -f "termux-x11" > /dev/null; then
echo " Termux:X11: 🟢 запущен"
else
echo " Termux:X11: 🔴 остановлен"
fi
if pgrep -f "xfce4-session" > /dev/null; then
echo " XFCE: 🟢 запущен"
else
echo " XFCE: 🔴 остановлен"
fi
if [ -e /data/data/com.termux/files/usr/tmp/.X11-unix/X1 ]; then
echo " Сокет X11: 🟢 существует"
else
echo " Сокет X11: 🔴 отсутствует"
fi
;;
help|--help|-h)
echo "Использование: startx [команда]"
echo ""
echo "Команды:"
echo " up - запустить XFCE и Termux:X11 (по умолчанию)"
echo " down - остановить XFCE и Termux:X11, освободить ресурсы"
echo " status - показать статус сервисов"
echo " help - показать эту справку"
;;
*)
echo "❌ Неизвестная команда: $1"
echo "Используйте 'startx help' для списка команд"
exit 1
;;
esac
EOF
chmod +x $PREFIX/bin/x11
```
Теперь запуск одной командой:
Параметры скрипта:
- Запуск
```shell
startx
x11 up
# или просто
x11
```
- Остановка
```shell
x11 down
```
- Проверка статуса
```shell
x11 status
```
### Запуск XFCE4 через VNC
Альтернатива X11
#### Установка VNC сервера
```shell
# Установка TigerVNC сервера
pkg install tigervnc -y
```
#### Настройка пароля
```shell
# Установка пароля для подключения к VNC
vncpasswd
```
#### Создание конфигурационных файлов
```shell
mkdir -p ~/.vnc
cat > ~/.vnc/config << 'EOF'
# VNC конфиг
geometry=2456x1540
depth=24
localhost=0
alwaysshared=1
EOF
```
Примечание: 2456x1540 родное разрешение планшета за вычетом строки состояния Android
```shell
cat > ~/.vnc/xstartup << 'EOF'
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
EOF
chmod +x ~/.vnc/xstartup
```
#### Скрипт для запуска / остановки VNC
```shell
cat > $PREFIX/bin/vnc << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
case "$1" in
up|start)
echo "🚀 Запуск VNC на дисплее :1..."
vncserver :1 -geometry 1920x1200 -depth 24 -localhost no
echo "✅ VNC запущен на порту 5901"
;;
down|stop)
echo "🛑 Полная остановка VNC..."
# Убиваем процессы VNC
vncserver -kill :1 2>/dev/null
vncserver -kill :2 2>/dev/null
pkill -9 Xvnc 2>/dev/null
# Удаляем блокировки (ВСЕ возможные пути)
rm -f /data/data/com.termux/files/usr/tmp/.X1-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X2-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X1 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X2 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
rm -f /tmp/.X1-lock 2>/dev/null
rm -f /tmp/.X2-lock 2>/dev/null
rm -rf /tmp/.X11-unix/ 2>/dev/null
# Удаляем PID файлы
rm -f ~/.vnc/*.pid 2>/dev/null
echo "✅ VNC полностью остановлен, все блокировки удалены"
;;
status)
echo "📊 Статус VNC:"
vncserver -list
;;
restart)
echo "🔄 Перезапуск VNC..."
$0 down
sleep 2
$0 up
;;
*)
echo "Использование: vnc [up|down|restart|status]"
echo ""
echo " up - запустить VNC"
echo " down - полностью остановить VNC (с очисткой)"
echo " restart - перезапустить VNC"
echo " status - показать статус"
;;
esac
EOF
chmod +x $PREFIX/bin/vnc
```
#### Подключение к VNC с планшета
https://wiki.termux.dev/wiki/Graphical_Environment
Как рекомендует официальная документация - установить клиент [VNC Viewer](https://play.google.com/store/apps/details?id=com.realvnc.viewer.android) (developed by RealVNC Limited)
Создать новое подключение
Адрес: 127.0.0.1:5901
Качество (Picture quality): High
Указать пароль
## TUR (Termux User Repository)
TUR — это пользовательский репозиторий Termux, созданный по аналогии с AUR в Arch Linux. Он существует, потому что официальный репозиторий Termux не может включить все существующие пакеты — некоторые из них слишком нишевые, сложные в сборке или имеют специфические лицензионные ограничения