見出し画像

なぜ elementary OS に最小化ボタンが存在しないのか

2019年7月9日に Medium で投稿したものを、加筆修正のうえ投稿しました。

少し古い記事ですが、Mac OS のクローズボタンはなぜ左配置なのかという記事を読んで、各オペレーティングシステムのデザインの裏には面白い設計思想があるものだなと思ったことがあります。私は macOS を常用したことはありませんが、それによく似たデザインを持つ Linux ディストリビューションとしても有名な elementary OS を常用しています。elementary OS は時に macOS のパクリだとか、macOS モドキだと言われてしまうことがよくありますが、私はまったく違うものだと思っています。

そんな elementary OS の哲学を色濃く表しているものの一つが「最小化ボタンの欠如」です。上のスクリーンショットは elementary OS に標準でインストールされているターミナルアプリですが、ヘッダーバーの左端に閉じるボタン、右端に検索ボタンと設定ボタン、そして最大化ボタンがありますが、最小化ボタンはどこにもありません。

しかも、標準アプリのみならず、Google Chrome などの外部のアプリでも最小化ボタンは表示されません。つまり、elemetary OS では最小化ボタンは一切表示されないのです。これは、ほかの OS やディストリビューションを使い慣れた人がだいたい最初に疑問に思うポイントです。

先に結論を述べておくと、これはバグのせいではなく、意図的に表示させていないだけなのです。そしてその裏には、elementary OS の開発者たちの哲学が根底に存在しています。

この記事では、なぜ elementary OS には最小化ボタンがないのかということについて、彼らの哲学に触れながら、簡単に検証していこうと思います。


最小化ボタンがないのは「いらない」から

画像1

elementary OS の公式 Web サイトでは、Human Interface Guideline(HIG)が公開されています。その中の一節には、こんなことが書いてあります。

Saving State
Apps should save their current state when closed so they can be reopened right to where the user left off. Typically, closing and reopening an app should be indistinguishable from the legacy concept of minimizing and unminimizing an app; that is, all elements should be saved including open documents, scroll position, undo history, etc.
Because of the strong convention of saved state, elementary OS does not expose or optimize for legacy minimize behavior; e.g. there is no minimize button, and the Multitasking View does not distinguish minimized windows.

Closing the App Window
Apps should never minimize instead of closing, as that puts the app window into a state that is foreign to users of elementary OS. Instead, windows should close or hide and re-open with a saved state. Any ongoing or background tasks should be completed soon after the window is closed, then the app should quit so as to not use unnecessary resources.


これを適当に訳してみます(太字は筆者)。

状態の保存
アプリは終了時に現在の状態を保存して、再度起動した際に即座に中断したところから再開できるようにしてください。多くの場合において、アプリを終了し再度開くことは、従来の最小化と最小化の復元の概念とほとんど同一です。つまり、開いていたドキュメント、スクロールの位置、操作履歴などを含む、すべての状態が保存された状態が望ましいです。
elementary OS では状態の保存が徹底されているため、従来の最小化の動作を表示したり利用したりしません。例えば、最小化ボタンは存在しませんし、マルチタスク画面で最小化されたウィンドウを区別したりしません。

アプリのウィンドウを閉じる
アプリは最小化されるのではなく、常に閉じられるべきです。なぜなら、最小化することは、elementary OS のユーザーからするとアプリのウィンドウを異質な状態に置くことになるからです。代わりに、ウィンドウは閉じられるか非表示になり、保存された状態で再度開かれるべきです。進行中のタスクやバックグラウンドタスクは、ウィンドウが閉じたら直ちに完了し、アプリを終了し、不必要なリソースを消費することがないようにしてください。

アプリを閉じると、最後の状態が保存されて次回起動時に復元されるように徹底されているので、もはや最小化する意味はないと記されています。

では、そもそもウィンドウを最小化する目的は何なのでしょうか。主な使い方としては

・デスクトップに置いてあるファイルにアクセスする(なお、elementary OS ではデスクトップにフォルダーやファイルを置けないので、この目的で最小化を使うことはないと思います)
・別のウィンドウを見る
・しばらく使わないけどまた使いたいから起動したままにしておく

などがありますが、その根本的な目的は

別の作業をするために、現在表示しているウィンドウの作業状態を維持したまま邪魔にならないように隠しておく

ことだと考えられます。

ここで、先ほどの「elementary OS はアプリの状態の保存が徹底されている」という点を思い出すと、アプリは状態が保存されるのですから、最小化の代わりに閉じてしまっても後で使いたい時に最後の状態が復元されます。だから、最小化はもはや不要だと言っているわけです。


「最小化をさせない」哲学の根本思想

なぜこんなにも最小化をさせようとしないのでしょうか。それは、elementary OS の基礎理念にあります。elementary OS の開発者は、なるべくシステムリソースを抑えることを目標にしています。メモリ管理にかなり注意して開発されているのもそのためです。ですので、アプリにメモリーを割り当てたまま新たなリソースを割くことになる最小化を推奨していないのです。


必要になる状況はないのか

では、本当に最小化はもう必要ではないのでしょうか。

もし、アプリが状態を保存できる状況ではない場合はどうでしょうか。例えば、ターミナルでコマンドが実行中のときや、ファイラーでファイルをコピーしているとき、Web ブラウザーでファイルをダウンロードしているとき、AppCenter(elementary OS のソフトウェアセンター)でアプリをアップデートしているとき……。こういった状況でアプリを終了させた場合、最後の状態は復元されるのでしょうか。

答えはいいえです。アプリを終了させた途端、ターミナルのコマンドも、ファイルのコピーもダウンロードも、アプリのアップデートも途中で中断されてしまいます。ですから、こういうときは、システムリソースの消費の増大を承知で、アプリを非表示にしなくてはいけません。ですが、elementary OS を含む最近の OS やディストリビューションではこういうときに最小化の代わりに使える便利な機能を搭載しています。それは仮想デスクトップです。


画像2

この機能を使えば、進行中のタスクがあるアプリを、現在使っていないワークスペースに移動させて、画面をスッキリさせられます。elementary OS では、中断できないアプリを一時的に非表示にする必要があるのなら、最小化の代わりに、別の仮想デスクトップにウィンドウを移すことを提案しています。


まとめ

elementary OS の最小化ボタンがないのは、最小化はもはや不要であるという開発者たちの哲学によるもので、その哲学の根本にあるのは、システムリソースの消費量をなるべく抑えたいという思想でした。