GDMのテーマとカスタマイズ
以前紹介したように、「GDM」のテーマ(デザイン)が「Ubuntu」のブランドに合うように変更されました。端的に表現すれば、背景色に紫を採用し、選択やフォーカスなどアクティブカラーにオレンジを採用しています。
しかし「GDM」のテーマの変更は簡単にできるものではなく、オリジナルのテーマを適用したい「Pop!_OS」にとって、ちょっと困った事態となりました。
この課題の解決に向け、現状や方針が以下で紹介されています。
GDMとGNOMEセッション
「GDM」はディスプレイマネージャーであり、ユーザーから見るとログイン画面を表示するソフトウェアです。GNOMEセッションは、オリジナルのGNOMEを利用したいユーザーが利用するセッションです。
今で言う「Ubuntu GNOME」に相当するセッションです。
デフォルトのセッションは「Ubuntu」セッションですが、「GNOME」のデザインを利用したいユーザーは、GNOMEセッションを利用することで「GNOME」のデザインを利用できます。
GNOMEセッションはデフォルトではインストールされておらず、GNOMEセッションを利用したいユーザーは、「gnome-session」をインストールする必要があります。
sudo apt install gnome-session
「gnome-session」をインストールすれば、ログイン画面からGNOMEセッションを選択できるようになります。
UbuntuセッションとGNOMEセッション
UbuntuセッションとGNOMEセッションは同時にインストールすることができ、それぞれのセッションで異なるデザインを提供します。これはセッションごとに予めカスタマイズを施して、異なるデザインをユーザーに提供できることを意味します。
GDMは1つしかない
セッションと異なり「GDM」は、システム全体で使用するコンポーネントであり、現状「GDM」には「Ubuntu」のテーマが適用されています。「GDM」に適用するテーマ名はShellでハードコーディングされており、ユーザーはテーマを簡単に変更することはできません。
ユーザーが任意にテーマを変更できることによるリスク
ユーザーや第三者が作成したテーマは、継続的にメンテナンスが行われない限り、いつの日かGNOMEの仕様から外れることになります。もしユーザーが任意にテーマを変更でき、外部のテーマを利用しているとしたら、GNOMEのアップデート時に仕様から外れてしまったテーマにより、UIが正常に表示されなくなる状況が考えられます。
このような状況下でユーザーは、ログインすらまともに行えなくなるかもしれません。
テーマ名のハードコーディングには、このような状況を回避する利点があります。
Ubuntuのテーマの適用
「Ubuntu」では、テーマを定義した「ubuntu.css」で「gnome-shell.css」を変更することでディストリビューション固有のパッチをあて、「GDM」に「Ubuntu」のテーマを適用しています。テーマの変更は簡単ではない
つまりGNOMEセッションやGNOMEクラシックを利用するユーザーが「GDM」のテーマを簡単に変更する方法はない、ということになります。もちろん「GDM」を修正してビルドし直せばテーマを変更できますが、手間のかかる作業です。
Pop!_OSへの影響
「Pop!_OS」は「System76」が開発するLinuxディストリビューションです。「Pop!_OS」は「Ubuntu」をベースとしており、「System76」のブランドに合うオリジナルテーマを適用し、自社のPCと共に提供されるOSです。
いわゆる「Ubuntu」の派生ディストリビューションですが、「Pop!_OS」は他の派生ディストリビューションと異なり「Ubuntu」に寄り添った開発を行っています。
「GDM」のテーマが簡単に変更できないとなると、「Pop!_OS」はオリジナルテーマの適用が困難になり、ブランドに合わせたカスタマイズができなくなります。
それは困る
「Pop!_OS」で使用されるテーマ等のパッケージは「Ubuntu」のアーカイブ(リポジトリー)になく、つまり「Ubuntu」の管轄外であり、「Ubuntu」の開発者は今回の変更が「Pop!_OS」に与える影響を知りませんでしたし、影響の確認を行うことができませんでした。「System76」の開発者はこの件で連絡を取り、「System76」と「Ubuntu」の開発者は、ディストリビューターやベンダーがテーマを変更できる仕組み作りを、アップストリームで協調して取り組むという長期計画に同意しました。
この仕組みは、「ユーザーがGDMに任意のテーマを適用できるようにする」という目的で導入される仕組みではありません。
上記で紹介したようにユーザーが任意のテーマを適用できるようにすると、GNOMEの仕様に追従していないテーマはUIを壊すことになりかねません。
この仕組みは、テーマのメンテナンスをディストリビューターやベンダーがGNOMEの仕様に追従しながら責任を持って行い、そしてその前提で利用する仕組みです。
本件を受けて「System76」の開発者は、アップストリームである「GNOME」に要望を挙げました。
詳細は以下で参照できます。
Pop!_OS 17.10どうしよう
今後リリースが予定されている「Pop!_OS 17.10」は、「Ubuntu 17.10」をベースに開発されているOSです。上記の仕組みの実装やアップストリームの説得及び調整はこれからであり、「Pop!_OS 17.10」に上記の仕組みは間に合いません。
代替手段の提供
そこでそれまでの間「Ubuntu」の開発者は、代替手段として「System76」が提供するパッチを受け入れ本件を支援することにしました。これにより「System76」は、「Ubuntu」が提供する「GNOME Shell」パッケージをフォークすることなく、自身のテーマを適用できるようになります。
この変更が「Ubuntu」ユーザーに何ら影響を与えることはありません。
「Ubuntu Desktop」チームにメンテナンスの負担がほんのちょっとかかるだけで済みます。