UbuntuセッションとGNOMEセッション
「Ubuntu 17.10」では、デフォルトのUbuntuセッションに加え、GNOMEセッションが利用可能になります。UbuntuセッションとGNOMEセッションの違い、及び内部的な仕組みが紹介されています。
GNOME Shellモードを利用したUbuntuセッションの実装
UbuntuセッションとGNOMEセッションの異なるセッションを提供するにあたり、UbuntuセッションはGNOME Shellモードを利用して実現しています。従来からあるクラシックセッションも、GNOME Shellモードを利用して実装されています。
Ubuntuセッションでは、アップストリームのVanilla GNOMEセッションとの相違点を差分として実装し、対応に必要な環境変数の設定及びファイルの作成を行っています。
{ "parentMode": "user", "stylesheetName": "ubuntu.css", "enabledExtensions": [] }
+++ gnome-session-3.24.1/data/ubuntu.desktop.in @@ -0,0 +1,8 @@ +[Desktop Entry] +_Name=Ubuntu +_Comment=This session logs you into Ubuntu +Exec=env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu +TryExec=gnome-shell +Icon= +Type=Application +DesktopNames=ubuntu:GNOME
これによりUbuntuモードを提供し、Ubuntuセッションを実現しています。
テーマ等デザインに関する設定は「ubuntu.css」に記述されています。
「ubuntu.css」はアップストリームの「GNOME」が提供している「gnome-shell.css」を元に作成され、 GNOME Shellの仕様変更に追従できるようにするため、「ubuntu.css」はビルド時に生成されるようになっています。
override_dh_install: find debian/tmp -name '*.la' -delete # create ubuntu shell theming file mkdir debian/tmp/usr/share/gnome-shell/theme/ sed -f debian/ubuntu-session-mods/theme-script.regexp data/theme/gnome-shell.css > debian/tmp/usr/share/gnome-shell/theme/ubuntu.css dh_install --list-missing
また「gnome-shell.css」に正規表現による修正を行い、「ubuntu.css」を生成しています。
s# font-family: \(.*\)# font-family: Ubuntu, \1# s#-st-icon-style: symbolic;#/*-st-icon-style: symbolic;*/#
GNOMEセッション
GNOMEセッションは、オリジナルのGNOMEのデザインを提供するセッションです。GNOMEセッションをインストールするには、以下のコマンドを実行し「gnome-session」パッケージをインストールします。
sudo apt install gnome-session
パッケージインストール後、ログイン画面で「GNOME」を選択してログインすれば、GNOMEセッションを利用できます。
GNOMEセッションではCantarellフォントがインストールされ、Ubuntuフォントの代わりにCantarellフォントが使用されます。
またシンボリックアイコンは、GNOMEセッションでのみ使用されます。
Ubuntuセッションでは、シンボリックアイコンでは使用されません。
これはUbuntu monoアイコンテーマでは、象徴的なアイコン後ほとんど含まれていないためです。
またFirefoxやThunderbirdなどサードパーティーのアプリケーションや、従来からあるアプリケーションの多くは、シンボリックアイコンを提供していません。
Ubuntuセッションでアイコンデザインの種類を混在させると、一貫性を失いユーザーに混乱をもたらすことになります。
そのためUbuntuセッションでは、シンボリックアイコンを無効にしています。