Oculus Quest 2 ( Meta Quest 2 ) を Ubuntu Linux のディスプレイとして使用する

# 環境

- Oculus Quest 2 
  - 64M 
- 母艦
  - Ubuntu 22.04
  - AMD Ryzen 5 5600G CPU + 64G Memory
- 物理ディスプレイ
  - プライマリディスプレイ：FullHD 27in
  - セカンダリディスプレイ：4K 40in
- Immersed v1.9.90


# 背景

「USB ビデオアダプタを試す (Ubuntu 18.04 on X230 でトリプルディスプレイ)」
https://qiita.com/nanbuwks/items/924324fa51f73307c6c0

「ノートPCをディスプレイ代わりにしてマルチディスプレイを試す on Windows10」
https://qiita.com/nanbuwks/items/aed19202d51e4af82cde

「VNC をセカンドディスプレイとして使う on Ubuntu 18.04」
https://qiita.com/nanbuwks/items/d12a98c8d41630c31a55

など、今までマルチディスプレイの実現についていろいろ試してきました。
しかしながら 4K ディスプレイとなるとポータブル性が犠牲になってしまいます。ポータブルできるマルチディスプレイ環境ということで VR 環境を試してみました。


# Oculus Quest 2 ネイティブアプリでワーキングはムリ

ドキュメントを読むくらいはネイティブアプリでできるかな? と思いましたが、Kindle アプリは使用できないし、Kindle Cloud Reader はデフォルトブラウザでは対応せず。 Adobe Reader はローカルファイルが読めない、など馬鹿げた状況。

Firefox を使ってドキュメントを読むくらいしか方法が無い。

![org.mozilla.vrbrowser-20220713-150355.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2491df82-8912-2ac4-0977-f22bd9f3fead.jpeg)

苦労して不便なのを我慢する状況なので、まともにワーキングするなら PC のディスプレイとしてバーチャルデスクトップを使うのが正解。

# バーチャルデスクトップ環境


Oculus Quest 2 ( Meta Quest 2) 上で使えるバーチャルデスクトップアプリとして以下のものがあります。

- Immersed
- Virtual Desktop

Virtual Desktop は仮想画面が1つしか作れないようなので、Immersed  を使いました。

Immersed は、以下のように仮想世界中にディスプレイを複数枚配置できます。
レイアウトは自由。

![Immersed.quest-20220509-112126.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d9763f6b-17aa-cdb7-cc64-8f88eeca5dc9.jpeg)


# Immersed を Ubuntu で使う


MS-Windows では、5枚のディスプレイが仮想世界中で利用できます。そのディスプレイは物理ディスプレイのミラーもできるし、Immersed の中だけの仮想ディスプレイも使えます。Mac OSXでも同様のようです。

残念ながら Linux では Immersed の中だけの仮想ディスプレイ機能はなくて、物理ディスプレイのミラーしかできません。
Linux なのでウィンドウシステムを Hack すればどうにでもなるのですが、今のところは物理ディスプレイのミラーだけで使用しています。

Ubuntu 上で `./Immersed-x86_64.AppImage ` を実行すると、レシーバーが起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f93c9381-1632-3577-4bf8-332ec17a3064.png)

これを使って Oculus Quest 2 内で接続をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3e575681-a431-abcf-9c12-bd6a32512fbb.png)


もともとの Ubuntu マシンでは、 fakexrandr を使って 4k ディスプレイを以下のように6分割していますが、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/1be46f47-2b49-6ef5-2baa-7101c3c8f044.png)

Immersed では物理ディスプレイのとおりにミラーされました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/bb137a5d-9234-f1b7-77f1-d839379eae1a.png)


# 使い勝手

## 画面解像度

画面キャプチャーでは潰れてますが、実際にはもっとはっきりと見えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/4ce200c6-ab16-0f5e-ccf6-6d52a33734d5.png)

リアルディスプレイに比べると間引きやジャギーなども見えますが、FullHD や 4K ディスプレイにターミナルを表示して作業するのに支障はないレベルです。

## 大面積ディスプレイ

リアルディスプレイと同じ解像度でも、リアルディスプレイでは平面ディスプレイを眼の前に配置すると画面の端がみずらくなります。VR世界内に湾曲して表示することで画面の端が認識しやすくなります。また眼鏡などをつかわなくてもフォーカスが合うので視認性が高いです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/0498db5d-5694-3bc4-bc85-9591beefa375.png)

## スマホとのデスクトップ統合

Immersed の VR 画面内にスマホの画面を配置することができます。デスクトップ環境の一部として使えるようになり、スマホ対応が必要なシーンを便利に使うことができます。

## 寝ながら

ベッドで使うデスクトップ環境として使っています。これについては別の記事にまとめる予定です。

## モバイル環境

持ち出せる大画面として使っています。これについては別の記事にまとめる予定です。

→書きました!
「Linux でも Immersed で Virtual Dislay」
https://qiita.com/nanbuwks/items/59aee2473a1e56831c58

## テレビを見ながら

ディスプレイのレイアウトを自由にできるので、流し見しながら作業をしたりします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/1de020e8-3692-72b2-639c-c12d977064ce.png)

## テレカンファレンス

テレカンファレンスをすると、発表画面・発表ツール画面・Zoom画面・Youtube画面・資料画面・時計画面 などたくさんの画面が欲しくなります。それらの画面をわかりやすく配置できます。

カメラは物理カメラを使って、VRゴークルをかぶった姿を撮るようにしています。VRアバターを撮るVRWebカムが使えるそうですが、利用はしていません。



## ドキュメントを読む

めんどくさいドキュメントを読むときに、視界いっぱいにドキュメントを広げて高精細で読むのがお気に入りです。気分が高揚して集中する気になります。

![Immersed.quest-20230319-135536.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5a1d6f24-aacb-47e9-3fce-19b95f548309.jpeg)

# 使いこなしのコツ

## 入力デバイス

 Oculus コントローラをポインティングデバイスとしても使えますが効率の良いオペレーションとは程遠いです。


仮想世界中に仮想キーボードを設置もできますが、キーボードレイアウトなどに制限があります。

現在の制限の中ではまともに扱おうとすると、物理キーボード/マウスが必要となります。

仮想世界中に、物理世界を映し出す窓を設定でき、そこでキーボード・マウスを使うのが良いです。以下のキャプチャー画像では物理世界窓が黒く表示されていますが、ゴークル内では物理世界のキーボード・マウスが表示されています。

![Immersed.quest-20220510-131858.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/4cf4096b-38fc-3494-d7b1-87c62e4f1b5d.jpeg)


##  遅延

操作がワンテンポ遅れます。キーボード入力や、グラフィックデザイン的な作業を行っていると、遅延は作業能力に直結します。
まだ使っていませんが、WiFi-Direct を使うことができるらしいです。そういったものを活用するのがいいかもしれません。


## リアルディスプレイ

Immersed の対応のとして、Linux ではリアルディスプレイのミラーしか対応していませんが、安直にディスプレイを増やす方法として HDMI や VGA などの、ダミープラグなどを使ってもいいかもしれません。