メインコンテンツへスキップ

Termuxにグラフィカルデスクトップ環境と音声出力をインストールする方法

·
カテゴリー スマートフォン Termuxチュートリアル
タグ X Window VNC
目次

注意:Termuxのファイルシステムは一般的なLinuxと違いがあり、パッケージ数も少ないため、私はLinux prootコンテナを入れてからデスクトップ環境を動かすことが多いです。速度は遅くなりますが、使い勝手はよくなります。

Termuxは標準ではテキストだけの画面です。ユーザーが自分でデスクトップ環境(desktop environment)をインストールし、VNCまたはTermux X11で接続すれば、デスクトップPCに近い使用感を得られます。

現在、Termuxのパッケージリポジトリにあるデスクトップ環境は、XFCE、LXQT、MATE、OpenBox、i3wm、Westonなどです。

またTermuxはAndroid GELSで音声を出力できるので、PulseAudioサーバーを動かせば、デスクトップ環境から音声を出せます。

この記事では、XFCEデスクトップのインストールとPulseAudioサーバーの設定方法を紹介します。

TermuxでXFCEデスクトップ環境とデスクトップ版Firefoxブラウザを実行

1. 事前準備
#

デスクトップ環境を動かすなら、スマートフォンのRAMは少なくとも6GB以上を推奨します。

先にTermuxをインストールし、Termuxがバックグラウンドでシステムに終了されないよう、Phantom Process Killingを無効化しておいてください。

2. XFCEデスクトップ環境をインストール
#

Termuxで利用できるデスクトップ環境は多くありません。軽量で機能も少なすぎないXFCEを選ぶのが無難です。

XFCE4、Firefoxブラウザ、VIMエディタをインストールします。

pkg install x11-repo

pkg install xfce xfce4-goodies pulseaudio pavucontrol vim firefox

3. グラフィカル画面へ接続
#

次のどちらかを選びます。両方を共存させることもできます。VNCより性能がよいのでTermux X11を推奨しますが、リモート接続にはあまり向きません。

Termux X11
#

  1. Termux X11virglrendererを設定します。

  2. 後でデスクトップ環境を起動しやすいように、スクリプトを追加します。

vim ~/startxfce4.sh
  1. 次の内容を入力します。
#!/bin/bash

# GPUアクセラレーションを起動
virgl_test_server_android &

# 音声サーバーを起動
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# デスクトップ環境を起動
termux-x11 :0 -xstartup "dbus-launch --exit-with-session xfce4-session" &
  1. 実行権限を付与します。
chmod +x ~/startxfce4.sh
  1. Termuxを終了します。
exit
  1. Termux X11アプリを起動します。

  2. Termuxに戻ってデスクトップ環境を起動すると、Termux X11アプリの画面にXFCE4デスクトップが表示されます。

./startxfce4.sh

VNCサーバー
#

  1. スマートフォンにAVNCクライアントをインストールします。

  2. TigerVNCのパッケージをインストールします。執筆時点のバージョンは1.13.0です。

pkg install tigervnc
  1. VNCサーバーのパスワードを設定します。
vncpasswd
  1. VNCサーバー起動後に実行するプログラムを追加します。~/.vnc/xstartupを編集します。
mkdir ~/.vnc/

vim ~/.vnc/xstartup
  1. 次の内容を入力します。
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADRESS

# PulseAudio音声サーバーを起動。音声はTermuxから出力される
pulseaudio --start --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# デスクトップ環境を実行。ここではXFCE
exec startxfce4
  1. xstartupに実行権限を付与します。
chmod +x ~/.vnc/xstartup
  1. VNCサーバーの設定ファイルを定義します。~/.vnc/tigervnc.confを編集します。
vim ~/.vnc/tigervnc.conf
  1. 次の内容を入力します。
# 現在のセッションはXFCE
$session="xfce-session";
# 解像度。高いほど帯域幅を多く使う
$geometry="1920x1080";
# ビット深度。値は8/16/24/32で、数字が大きいほど画質はよいが帯域幅を消費する
$depth="32";
# 外部ネットワークから接続できるようにする
$localhost="no";
  1. Termuxでtigervncserverまたはvncserverコマンドを入力し、VNCサーバーを起動します。画面に出力されるポート番号を確認します。通常は1から始まります。VNCサーバーのポートは5900から数えるため、この場合のポートは5901です。

  2. AVNCアプリを開き、ホスト接続を追加します。アドレスにlocalhost、ポートに5901を入力します。

4. デスクトップ環境をワンタップで起動するスクリプト
#

デスクトップ環境を起動するたびにコマンドを打つのは面倒です。Termux Widgetのホーム画面ショートカットを使い、Termux + Termux X11 + virglserverの起動処理をワンタップで実行し、デスクトップ環境を自動起動します。

  1. Termux Widgetをインストールします。

  2. システム設定を開き、Termuxに「他のアプリの上に重ねて表示を許可」権限を与えます。

  3. Termuxを開き直し、次のコマンドでショートカットを作成します。

mkdir .shortcuts

vim .shortcuts/start_xfce.sh
  1. 次の内容を入力します。
#!/bin/bash

# 古いプロセスをすべて終了
killall -9 termux-x11 pulseaudio virgl_test_server_android termux-wake-lock

# Termux X11を起動
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity
XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :0 -ac &
sleep 3

# PulseAudioを起動
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# GPUアクセラレーション付きのvirglserverを起動
virgl_test_server_android &

# XFCE4デスクトップ環境を起動
export DISPLAY=:0
export PULSE_SERVER=tcp:127.0.0.1
dbus-launch --exit-with-session startxfce4 &
  1. 実行権限を付与します。
chmod +x .shortcuts/start_xfce.sh
  1. スマートフォンのホーム画面に移動し、ウィジェットを追加してTermux Widgetを選択します。先ほど作成したショートカットが一覧に表示されます。

  2. ボタンをタップすると、Termuxが自動で開き、デスクトップにログインします。

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。