modify: Пн 06 апр 2026 09:15:57 MSK
This commit is contained in:
@@ -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 не может включить все существующие пакеты — некоторые из них слишком нишевые, сложные в сборке или имеют специфические лицензионные ограничения
|
||||
|
||||
Reference in New Issue
Block a user