Google PixelのLinuxターミナルでGUIのデスクトップ環境を使いたい【Webtop】

# TL; DR

- PixelのLinuxターミナル上にDockerコンテナでwebtopを起動
- Android側のブラウザで開ける

![Screenshot_20250320-233330.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/82344e25-bd15-42de-ad62-d88a89f6a7e0.png)

# はじめに

Pixel上でLinuxターミナルが利用可能になりました。今後他のAndroidにも順次展開されるようです。

https://helentech.jp/news-62198/

Qiita上でも「○○を動かしてみた」という記事が複数投稿されています。先駆者に感謝。

https://qiita.com/rya_ryo12357/items/ee8479a92d4a1bfb36f3

https://qiita.com/shun_nishi/items/8cc2bcd34fb192dc215b

ところで、Linuxターミナルのアプリは現時点ではCLIしか用意されていません。そこで本記事では、GUIのデスクトップ環境を使う方法を紹介します。

# バージョン

- Android 15
- Pixel 9

# 構成

今回はデスクトップ環境としてWebtopのDockerコンテナを使用します。

https://docs.linuxserver.io/images/docker-webtop/

Webtopはブラウザ経由でアクセスして使用するデスクトップ環境です。Linux端末のアプリにCLIしかなくても、Android側のブラウザであればGUIが使えるという算段です。

構成は以下の通りです。
デスクトップでアクセスしているのはLinux端末が動いているVMそのものではなくコンテナです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/67452ec7-8ef4-482a-85b9-720b403286e6.png)

# 環境構築

では、実際にデスクトップ環境を動かしてみましょう。

## Androidの開発者向けオプションを有効化する

Linuxターミナルはまだ安定版ではなく、開発者向けにのみ提供されています。使うために開発者向けオプションを有効化します。

https://atmarkit.itmedia.co.jp/ait/articles/1602/19/news044.html

## Linuxターミナルをインストール

続いて、Linuxターミナルのアプリをインストールします。

https://helentech.jp/news-62198/

ターミナルを開くとこんな感じです。OSはDebian, CPUはARMです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/b75ac5aa-aa07-4018-a3df-5b8ca87249c2.png)

## Dockerのインストール

まずはいつものアップデートから。sudoのパスワードは不要でした。

```bash
sudo apt update
sudo apt upgrade
```

続いて、Dockerをインストールします。

https://docs.docker.com/engine/install/debian/#install-using-the-repository

必須ではありませんが、ユーザーをDockerグループに加えておきます。

```bash
sudo usermod -aG docker $USER && newgrp docker
```

# Webtopコンテナの起動

Webtopコンテナを起動します。公式サイトのコマンドをそのまま使用できました。

https://www.linuxserver.io/blog/2021-05-05-meet-webtops-a-linux-desktop-environment-in-your-browser

```bash
docker run -d \
  --name=webtop \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 3000:3000 \
  -v /path/to/data:/config \
  --shm-size="1gb" \
  --restart unless-stopped \
  ghcr.io/linuxserver/webtop
```

`3000` 番ポート開放の許可を求める通知が来るので許可します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/892ae857-b282-447f-9335-08beef0945dd.png)

これで、Android側（ホスト側）からコンテナへ接続可能になります。

# 触ってみる

Chromeで localhost:3000 にアクセスします。いよいよデスクトップ環境とのご対面です。
縦長の画面に合わせたレイアウトになっています。

![Screenshot_20250320-233330.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/82344e25-bd15-42de-ad62-d88a89f6a7e0.png)

タップやスワイプでのクリック、ドラッグ操作も問題なく行えます。

![Screenshot_20250320-233347.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/edcb463a-d680-4420-bdc8-4d52f9faf138.png)

キーボード入力も可能です。
左側の白い矢印のタブを開き、`キー` →一番左のキーボードのアイコンをタップするとスマホのキーボードが立ち上がります。

![Screenshot_20250322-101042.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/6ca62007-de70-44a4-bd00-50becae98094.png)

alpineベースのコンテナなので、 `apk add` で好きなアプリをインストールできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/d4fe7b68-d643-4d98-afd2-bf3f602ca8cc.png)

![Screenshot_20250322-101434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239887/2b8c557e-ad64-4b21-9e72-d8c8813e77ba.png)

# おわりに

以上、Linuxターミナル+Webtopで、Pixel上でLinuxのデスクトップ環境を使う方法の紹介でした。Linuxターミナルにはさらに活用できそうなポテンシャルを感じているので、皆さんも遊んでみてはいかがでしょうか？