実験 | Ubuntuディスプレイ解像度を"1x1"に設定してみたい

Ubuntuディスプレイの解像度を、最小の"1x1"に設定できるのか、検証してみました。



Introduction

以前、Ubuntuディスプレイ解像度を1920x1080に設定した時のこと、xrandrコマンドを実行すると大変面白そうな記述に出会いました。

$ xrandr
Screen 0: minimum 1 x 1, current 800 x 600, maximum 8192 x 8192
~

ここで、解像度maximum 8192 x 8192はまだわかります。 しかし、minimum 1 x 1とは一体どういうことでしょうか。

これは是非とも試してみたいです。

ディスプレイ解像度を変更するやり方は、過去の記事で既に把握しています。

www.bioerrorlog.work

さっそく、本当にディスプレイ解像度を1x1に設定できるのか、試してみます。


※注意※
操作不能になっても構わない仮想環境で試しました。 PCに直接インストールしているOSでは試さない方がよいと思います。


Material

Ubuntu18.04.1 LTS を
Windows10の上に、VMwareによって構築した仮想環境で起動しています。
www.bioerrorlog.work


Results

1x1解像度のパラメータを取得する | cvt

とりあえず、解像度を1920x1080に変更したときの手順に則って進めていきます。

まずはcvtコマンドでディスプレイパラメータを取得します。

$ cvt 1 1
# 8x1 0.00 Hz (CVT) hsync: 0.00 kHz; pclk: 0.00 MHz
Modeline "8x1_60.00"    0.00  8 16 8 8  1 4 14 17 -hsync +vsync

少しおかしなことが起きました。 解像度1x1を渡したはずなのに、帰ってきたのは8x1解像度です。

解せませんが、とりあえず8x1解像度でもいいので、進めていきます。


解像度を追加する | xrandr

次に、xrandrコマンドを使って、解像度を設定に追加していきます。 cvtコマンドで得たパラメータを用いて、次のように解像度8x1を追加しました。

$ xrandr --newmode "8x1_60.00"    0.00  8 16 8 8  1 4 14 17 -hsync +vsync

次に、ディスプレイVirtual1に8x1解像度を追加します。

$ xrandr --addmode Virtual1 8x1_60.00

ここで、一旦解像度がデフォルトの小さいサイズに変わりますが、焦る必要はありません。 xrandrコマンドで確認します。

$ xrandr
Screen 0: minimum 1 x 1, current 800 x 600, maximum 8192 x 8192
Virtual1 connected primary 800x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600       60.00*+  60.32  
   2560x1600     59.99  
   1920x1440     60.00  
~
   640x480       59.94  
   8x1_60.00      0.00  

ディスプレイVirtual1に解像度8x1が追加されました。

さて、ここからが本番です。


解像度を変更する

設定から手動で変更

ここまでは過去記事にならって解像度の変更手順を踏んできましたが、ここからはいよいよ解像度を変更していきます。

まずは、解像度を設定から手動で変更します。


左上の「Activities」から「Displays」を検索

「Resolusion」から"8x1"を選択


すると、画面が真っ暗になりました。 解像度の変更に失敗したのか、解像度変更に成功したが目視出来ていないのか、これでは判断がつきません。

もっと悪いことに、この解像度の変更は20秒でもとに戻ってしまいます。 20秒以内に"Keep Changes"ボタンを押さなくてはならないからです(Fig. 1)。

f:id:BioErrorLog:20190318220758j:plain
Fig. 1 通常の解像度に手動で変更するときに表示されるウィンドウ。20秒以内に"Keep Changes"を押さなくてはならない。

8x1のウィンドウの中でこの操作を試みるのはあまり気が進みません。 他の解像度の変更方法を探します。


コマンドで変更

手動ではなく、コマンドでも解像度を変更できることを見つけました。 コマンドでの変更なら、上述の厄介なウィンドウは表示されません。

早速実行してみます。

$ xrandr --output Virtual1 --mode 8x1_60.00

見事、真っ暗な画面が表示されました(Fig. 2)。 20秒でもとに戻ることもありません。

f:id:BioErrorLog:20190318223934j:plain
Fig. 2 解像度8x1に変更した後の仮想環境ウィンドウ。完全な真っ暗に見える。


さて、ここからは、この全くの無に見えるディスプレイが、果たしてちゃんと機能し続けているのか、検証します。

Ubuntuは機能し続けているのか

スクリーンショットから目視で検証する

まずは、虚無に見えるこのウィンドウの中に、8x1のディスプレイが本当に存在しているのか、目視で確認してみます。 このウィンドウの画像をスクリーンショットで撮影し(Fig. 2)、1pxサイズが十分に見える倍率までズームして、8x1ディスプレイを探します。

しかし、頑張って探してもなかなか暗闇の中にUbuntuディスプレイらしきものを見つけることができませんでした。

せっかく生み出した8x1ディスプレイなのに、目に見えないというのは悔しいことです。

操作音を確認する

次に、Ubuntuの操作音を確認してみました。

Ubuntuは、例えばターミナルのスクロールが限界まで来ると"ビープ音"が鳴ります。 こいつを聞くことができれば、Ubuntuがまだ機能し続けていると言えるでしょう。

早速、この暗闇のウィンドウにカーソルを当てて、下カーソルボタン"↓"を押し続けると、

ビープ音が鳴りました!

まだ、このUbuntuは生き続けていると、そう確信できた瞬間です。


Discussion

今回は、Ubuntuディスプレイを1x1に設定しようと試みました。

結果としては、解像度1x1は設定できず、8x1に設定することはできましたが、機能し続けているものの、ディスプレイを目視することは出来ませんでした。

今回頑張って設定した解像度は、冷静になると明らかに無意味なものでしょう。 しかし、機械の限界を試すというのは、未知への憧れが掻き立てられて、なかなか良いものです。

それにしても、8x1ディスプレイを目視出来なかったことは悔しいです。 本当に表示されていないのでしょうか。 だとしたら、どのくらいの解像度までは表示されるのでしょう。

まだまだ、気になることばかりです。


See also

www.bioerrorlog.work

www.bioerrorlog.work