これ、スマートフォンの上のDebianでMateデスクトップが動いてる様子です。正確にはTermux上のdebianに自分に対してアクセスしています。カミさんもこれパソコンじゃないんだねと言っておりました。
これを安定構築するにあたって色々と問題に出くわしました。グラフィックが正しく表示されなかったりしたりしたのでそのあたりの問題も依存の関係だったりで3日くらいかかりましたがおそらくこれが最適解であろう方法を今回紹介します。今回はXRDP接続は出来てません。おそらくデーモンが働いてないせいだと思います。Termux上でデーモンを動かすことはほぼ不可能と思っておいていいかと思いますので、それを踏まえた上で再現する方法を紹介することにします。
まず必要なアプリ
1:VNC Viewer
2:F-Droid
3:F-DroidでダウンロードしたTermux
以上です。事前にPlayストアからF-Droidを落としておいてください。そこからF-Droid上でTermuxをダウンロードしてください。
ではここからTermux上のコマンド及び操作方法を説明していきます。
まず自分自身をupdateします。
>pkg update -y
なにか聞かれたらとりあえずNで大丈夫です。(デフォルトではNのようです)
その後自分がスリープしないようにtermuxを細工します。これをやるのとやらないのとでは雲泥の速度差が出ます。
>termux-wake-lock
その後とりあえずsshを入れておきます。(リモートでやるとき用に使う用)
>pkg install openssh -y
このタイミングでパスワードを設定しましょう。
>passwd
ここでAndroid端末ストレージにアクセスできるように念の為細工をします。
>termux-setup-storage
その後Debianを入れる前にprootとproot-distroを入れてdebianを入れられる環境を作ります。
pkg install proot proot-distro -y
いよいよdebianをインストールしていきます。今は11(bullseye)が入ります。
>proot-distro install debian
入れたらこのタイミングでsshを立ち上げておくと便利です。がのちほど注意事項があるのですがそこは今は割愛します。
>sshd
ここでdebianを起動します。
>proot-distro login debian
ログインしたら最初にdebianを最新まであげちゃいましょう。
>apt update && apt upgrade -y
アップグレードが終わったらnanoエディターと確認用のneofetchを入れておきます。
>apt install neofetch nano -y
ここで時間がかかる作業なので必ずスマホ上で実施します。つまり大容量作業であるmate環境とvncサーバーを入れます。今回はvncはtigervncを使います。が、task-mate-desktopでインストールはしません。何故ならこれで入れてしまうと描画がおかしくなることがあるからです。原因は究明しきってません。(原因判明しました。端末のダークモードをOFFにしてください。それでもダメなら端末を再起動してみてください)
>apt install task-mate-desktop tigervnc-standalone-server -y
気長に待ちましょう。
途中でキーボードのレイアウトが聞かれるので22を押してotherにして56の日本語キーボードを選び、だいたい合うOADG 109Aの6を選んでおきましょう。
終わったら時間設定と言語設定をします。まず時間から。
>dpkg-reconfigure tzdata
Asiaの中にtokyoとあるんでtokyoを選びます。
次に言語環境を日本語化します。
localesが入ってないのでlocalesを入れます。
>apt install locales
そしたらlocalesを設定していきます。
>dpkg-reconfigure locales
スペースで【ja_JP.UTF-8 UTF-8】を選びます。スペースでチェック。次はja_JP.UTF-8を選んでおきましょう。
一度コンソールを抜けます。
>exit
再度debianにログインします。
>proot-distro login debian
一度apt updateを走らせてみましょう。日本語化できてると思います、そしたらこのタイミングでnoto fontsを入れてしまいます。
>apt install fonts-noto -y
ここからユーザー追加作業を行います。rootだと音が出ないためです。
>adduser <好きなユーザ名>
作ったユーザーに実行権限を与えます。
>echo "<好きなユーザ名> ALL=(ALL:ALL) ALL" > /etc/sudoers
では作ったユーザーでログインしましょう。
>su <好きなユーザー名>
ここで一度vncserverを起動します。
>vncserver
するとパスワードを聞いてくるので好きなパスワードを入れます。終わったら一度開いてるvncserverを閉じるコマンドをします。view-onlyはnで。
>vncserver -kill :1
そしたら次はちゃんとmateがロードされるようにファイルを作ります。
>nano ~/.vnc/xstartup
中身は
mate-session
以上だけです。上書きして保存しましょう。
次に作ったファイルに実行権限を与えましょう。
>chmod +x ~/.vnc/xstartup
ようやくmateデスクトップを拝むときが来ました。次を実行します。
>vncserver
AndroidアプリのVNC Viewerで自分自身に繋ぎます。localhost:5901、パスワードは自分が先程設定したものを使います。Picture qualityはmediumがいいでしょう。
お疲れ様でした。とりあえずこれでDebianデスクトップが表示されるはずです。
あとは外観の設定でフォントをnoto fontにしましょう。
システム>設定>ルックフィール>外観
フォントはNoto Sans CJK JP Regular、ウィンドウのタイトルのみBoldを選びます。固定幅はNoto Sans Mono CJK JPです。
ここから先は各自お好みになるのですがvncserverの起動時の解像度を任意のものに変えます。僕の場合こうします。
>vncserver :1 -geometry 2300x1080 -depth 24
んでまぁいちいちこうやってコマンド打つのは面倒だしkillするのもいちいち色々面倒なんでvnc、vnckillって打ったら勝手にこうなるように細工します。
>nano ~/.bashrc
下記を追記
>alias vnc='vncserver :1 -geometry 2300x1080 -depth 24'
>alias vnckill='vncserver -kill -clean'
設定を反映させるため次のコマンドを実施します。
>source ~/.bashrc
お疲れ様でした。あとはvncで起動し、ログアウトで終了させなければvnckillで終了させましょう。
あとはmateをお好みでカスタマイズします。
僕は一番下のツールバーを消し、plankとmate-tweakをインストールしスキンを変更、壁紙とテーマとアイコンをfirefoxで入手するなりして好きに変更しましょう。
長々となりましたがまぁこんな感じです。それでは良きスマホライフを!
追記:グラフィックがおかしくなったら一度スマホを再起動・それでもダメだったら端末の電源をオフにしてオンしてみてください。あと端末のダークモードは切ってください。
なお筆者は字が小さすぎるので150%の大きさに変えてます。
ちなみにrootでも一応動きはしますが音を出すにはrootでは出せないので注意しましょう。音の出し方はまた後日に。