Ubuntu 14.10は目立った新機能がほとんどない、とても大人しいリリースになりました。特にUbuntu標準のGUIシェルとして開発されているUnityのデスクトップ向けバージョンが、メンテナンスモードになっていることもその一因でしょう。そこで今回はそんなUnityの現状を振り返り、今一度その使い方を見直してみます。
現在のUnityのステータス
UnityはGNOMEデスクトップ環境上で動く、Ubuntu標準のデスクトップシェルです。元々はただのネットブック向けのアプリケーションランチャーだったものが、一時期流行った3DウィドウマネージャーであるCompizのプラグインになり、最終的に自前のツールキットであるNuxに加えてIndicatorやNotifyOSDとセットで使うことでUbuntu独自のデスクトップUIを形成する存在になりました。
Ubuntu 11.04でデスクトップシェルがGNOMEからUnityに変わった当時は、さまざまな異論・反論が巻き起こったものの、その後もその地位を変更することなく不具合修正や機能拡張を行い続けて、最近ではだいぶ安定し軽快に動作するようになっています。
そんなUnityもUbuntu 13.10でバージョン7になって以降は、ほぼ不具合修正がメインというステータスで、開発の軸足はUbuntu Touch向けに作成中のUnity 8に移っています。将来的にこのUnity 8がデスクトップでも採用される予定ではありますが、早くても1年後、場合によっては2016年4月まではUnity 7が標準のままになるかもしれません。
Ubuntu 14.10で何が変わったのか
先日Ubuntu 14.10がリリースされ、Unityのバージョンは7.2.3から7.3.1と変わりました。このバージョン間の変更点はほぼ不具合修正のみで、目立った新機能の追加はありません[1] 。
おもだったところを挙げると、次のような修正が行われました。
HighDPIサポートの拡充
Unity 7.2の時点でHighDPIのサポートが謳われていましたが、その後の未完だった作業が引き続き行われています。たとえばHUDやロック画面の文字の大きさも正しく設定されるようになりました。
ロック画面のリファイン
マルチディスプレイ時にロック画面が使い辛かった問題の修正や、パスワード入力部分にナビゲーターの表示、ロック中もクリップボードにデータが残っていた問題の修正などの対応が行われました。
Launcherへのドラッグアンドドロップ機能の改善
Launcherへたとえばファイルをドラッグしたとき、そのファイルタイプに対応しているアイコンのみがアクティブになります。これまではそのまま特定のアイコンにドロップするとそのアイコンのアプリでファイルを開けるだけでしたが、今回からドロップせずに1秒以上待つと、そのアプリにフォーカスが合うようになりました。さらに複数のウィンドウが開いている場合、自動的に複数のウィンドウを展開して任意のウィンドウにドロップできるようにもなっています[2] 。
ウィンドウ展開時の順番を直感的に
Super+Wを押した時や、複数のウィンドウを開いているアプリのLauncherアイコンをクリックした時に、ウィンドウが画面全体に展開されます。これまでは、この展開時にフォーカスに合っているウィンドウが常に右下に表示されていました。新しいUnityでは、ウィンドウの開いている位置に応じた配置に展開されるようになっています。
シャットダウンダイアログの抑制
ゲストセッションなど、シャットダウン権限がない環境でハードウェアの電源ボタンを押したときに、シャットダウンダイアログが表示されてしまう問題が修正されました。
マウススクロールイベントのハンドリング
Dash上やアプリケーション切り替え時のマウススクロールイベントが正しく処理されるようになりました。
systemdの対応
UnityはもともとUpstartのSession Jobから起動されるサービスとして実装されていましたが、今後のsystemdへの移行を踏まえて、systemdでも起動できるようにJobファイルやログの保存先、パッケージの依存関係の見直しが行われています。
[2] 「お前が何言ってるかわからない」って方は、Firefoxのウィンドウ(タブではなくウィンドウ)を2つ開いておいて、Nautilusを起動し適当な画像ファイルをLauncherのFirefoxのアイコンまでドラッグしてください。そのまま1秒ほど待つと何が起こるかわかるはずです。ちなみにこれは3年以上前に報告された要望を実現した形となります。
ちなみにこれらの修正のほとんどは、Ubuntu 14.04 LTSの7.2.3にもバックポートされています。このためUbuntu 14.04 LTSを使い続けたとしても、上記の修正による恩恵を受けられます。
Unityの基本的な使い方
実際のところUbuntu 14.04 LTSはUnity 7ですので、人によってはUnity 8の進捗に関係なく、2019年まで今のUnityを使いつづけることになります。そこで今回は、特に12.04からアップグレードした人をターゲットにこのUnity 7の使い方について今一度おさらいしてみましょう。ちなみに、Ubuntu 12.04 LTSからUbuntu 14.04 LTSへアップグレードする際の一般的な注意点は「第337回 」を参照してください。
UIとショートカット
UnityのUIはDash、Launcher、Indicator、HUDからなります。この構成そのものは変わっていません。
図1 Unityを含むUbuntuのUI構成
これらのコンポーネントのうち、12.04から大きく変わったのはDashでしょう。DashはUnityの中核とも言える検索インターフェースで、Superキー(一般的なWindows PCであればWindowsキー)をタップすることで表示されます。Dashは「Lens」と呼ばれるカテゴリーごとの検索UIも持っており、Super+Aでアプリケーション検索、Super+Fでファイル検索と切り替えられます。
このDashには12.10から「プレビュー機能」が追加されています。たとえばSuper+AでアプリケーションLensを表示し「Stellarium」と入力すれば、Stellariumのアイコンが表示されます。このアイコンを右クリックすると表示されるのがプレビュー画面です。
図2 Dashのプレビュー画面
プレビュー画面ではアプリの説明や代表的なスクリーンショットが表示されますし、「 インストール」をクリックすればソフトウェアセンターや端末を開くことなくインストールできます。ファイルLensで検索したファイルならPDFの中身を表示したり、メールに添付するボタンなどもあるため、ファイルブラウザーを使うことなくファイルを探すことができるのです。プレビュー画面は適当な場所をクリックするかESCキーで閉じることができます。
Launcherはよく使われるアプリや起動中のアプリのアイコンが表示される領域です。アイコンの左には起動中のウィンドウの数、右にはフォーカスがあたっているウィンドウにマークが付くようになっています。対応しているアプリであればここにメールやRSSの未読数なども表示されます。Launcherにアイコンを追加したい場合は、Dashでアプリを検索したうえでアイコンをLauncherにドラッグアンドドロップします。また、既存のアイコンは一番上のちょっと勢いよく回りすぎているUbuntuアイコンとゴミ箱以外は順番を変更できます。右クリックしてメニューを選択すればLauncherからの登録を解除できます。
Indicatorは各種ステータスを表示する領域です。14.04までにレガシーなインジケーター(システムトレイ)は登録できないようになっていますので注意してください。HUDはAltキーをタップすることで表示されるアプリケーションのメニューの検索インターフェースです。これも12.04とはそれほど変わっていません。
また、Unityそのもののショートカットに変更はありません。Superキーを軸にしたショートカット体系で、Superキーを長押しすることでその使い方が表示されます。
図3 Unityのショートカットヘルプ
ちなみにあまり使っている人を見かけませんが、Unityはマルチタッチ操作にも対応しています。しかしながらその操作方法はかなり難しく 、タッチスクリーンに対して数本の指をリズム良くタップすることに自信がある人向けです。
Smart Scopes
LensがDashにおける検索カテゴリーなのに対して、検索エンジン部分を「Scope」と呼びます。12.04から14.04にかけてこの「Scope」が「Smart Scopes」という形で大幅に検索対象を増やし、さらに単語に合わせて自動的にScopeを切り替える仕組みが実装されています。
図4 Smart Scopesによってさまざまな検索ソースの結果を表示している
ただし「日本語」に対してはそこまでスマートではありません。特に漢字が混じると内部的に中国語のピンインに変換されてその音でもマッチングが行われるために、日本語だと予想外の単語とマッチすることが多々あります。
なお注意点として、ホームLensのSmart Scopesは入力した単語を自動的にインターネット経由で問い合わせます。一応Canonicalのサーバーを経由して匿名化されているとはいえ、外部に入力した単語が流れてしまうことには変わりありません。 この挙動が気になる場合、特に職場で使う場合などは、このオンライン検索機能を無効化しておいたほうが良いでしょう。システム設定の「セキュリティとプライバシー」にある検索タブの「オンラインの検索結果を含める」をオフにする(スイッチの色をオレンジからグレーにする)ことで無効化できます。
ちなみに個別のScopeを無効化したい場合は、アプリケーションLens(Super+A)でLens名を検索し「Dashプラグイン」に表示されるそのLensを右クリックしてプレビューを表示すれば「無効」ボタンが現れます。
ワークスペースと見た目の変更
Linuxのデスクトップでは「ワークスペース」という仮想デスクトップ機能が標準的に搭載されています。ワークスペースを使えばWebブラウザーなど調べ物のワークスペース、メール用のワークスペース、ファイルの編集やコマンド実行といった作業用のワークスペースと言った形で、複数のアプリケーションをカテゴリーごとに配置でき、必要に応じて切り替えることができます。
初期状態のUnityはワークスペースは無効化されています。もしワークスペースを使いたいなら、システム設定の「外観」にある挙動タブから「ワークスペースを有効にする」にチェックを入れてください。自動的に4つのワークスペースと切り替えるためのLauncherアイコンが登録されます。後ほど紹介するUnity Tweak Toolを使えば、ワークスペースを任意の数に変更することができます。
同じ設定画面にある「Launcherにデスクトップの表示アイコンを追加」にチェックを入れれば、現在開いているウィンドウを一斉に最小化できるアイコンが追加されます。またこのアイコンがなくても、Ctrl+Super+Dで同様のことができますし、もう一度入力するとウィンドウが復帰します。
Ubuntu 12.04 LTSからの変更点として、シャットダウンダイアログとロック画面の見た目の変更があります。シャットダウンダイアログは右上の歯車アイコンから「シャットダウン」などの電源関係の選択肢をクリックしたときに表示されるダイアログで、「 シャットダウン」を選べばシャットダウンするか再起動するか選択できます。電源ボタンを押した場合も、同様に表示されます。
図5 新しいシャットダウンダイアログ
ロック画面はこれまでGNOME ScreenSaverを使って実現していたロック画面の機能を、Unity Greeter(Unityのログイン画面)と同じ仕組みを使うようになったため、見た目もログイン画面と同じになっています。ユーザーごとの背景画像も反映されます。
アプリケーションスイッチャーとウィンドウ管理
複数のアプリケーションを立ち上げていると、何度もアプリケーションを切り替えることがあります。このときに使うのがアプリケーションスイッチャーです。GUIで切り替えるのであれば、使いたいウィンドウをクリックするだけです。もしウィンドウを全画面にしている場合は他のウィンドウをクリックできません。このときはLauncherのアイコンをクリックすると良いでしょう。もし同じアプリケーションで複数のウィンドウを開いている場合は、一度目のクリックで最後に使ったウィンドウにフォーカスがあたり、もう一度クリックするとウィンドウ切り替え画面が表示されます。
図6 Unityのアプリケーションスイッチャー
マウスに手を伸ばすのが面倒な場合は「Alt+Tab」で切り替えます。この辺は他のデスクトップ環境と同じです。もし同じアプリケーションで複数のウィンドウを開いている場合は、「 Alt+Tab」で切り替えつつそのアプリケーションのところにフォーカスをあわせたままAltキーを離さなかったら、それらのアプリケーションのウィンドウが展開されます。一気にアプリケーション間のウィンドウ切り替えを行いたい場合は、日本語キーボードの場合「Alt+半角/全角」を、英語キーボードの場合「Alt+~」を押してください[3] 。
「Super+S」を押せば開いているウィンドウすべてをプレビュー画面付きで展開します。この状態で任意のウィンドウをクリックなりEnterキーを入力すれば選択できますし、カーソルを合わせれば直接ウィンドウを閉じるボタンも現れます。ちなみにウィンドウ展開時に文字を入力すると、表示するウィンドウをフィルタリングできます。たくさんアプリケーションを起動している中で特定のウィンドウを検索したい場合に便利でしょう。ただし日本語は使えません(Enterを押すとウィンドウが選択されてしまいます) 。
図7 ウィンドウ展開モード
キーボードを使ったもう1つのアプリケーション切り替えは、Superキーを使う方法です。Launcherに登録されているアイコンは上から(Ubuntuロゴの下のアイコンから)順番に数字が振られているために、「 Super+数字」でダイレクトにそのウィンドウにジャンプできます。複数のウィンドウを展開する場合は同じ数字をもう一度押してください。それ以外にも「Super+Tab」でLauncher間のフォーカスを移動できますし、「 Alt+F1」を押せばカーソルキーで起動・切り替えたいアプリケーションを選択できます。
キーボードによるウィンドウの最大化・最小化は「Ctrl+Super+Up/Down」で行えます。「 Up/Down」はそれぞれカーソルの上キーと下キーです。ウィンドウを移動したい場合は、「 Alt+F7」を押した後にカーソルキーを使い、最後にEnterで決定します。上下に対して「Ctrl+Super+Left/Right」を使うと、そのウィンドウを「左半分/右半分」の最大化になります。複数のウィンドウを並べたいときに便利でしょう。変り種としては「Ctrl+Alt+テンキー」を使うとより細かくウィンドウの配置とサイズを一発変更できます。
このようにUnityにはキーボードによる操作が充実しているため、実はマウスやタッチパッドを使うことなくウィンドウ管理ができるようになっているのです。
Unity 2DとVirtualBox
Ubuntu 12.04 LTSは3Dアクセラレーションが動作しない環境向けに「Unity 2D」というUnityの別実装が提供されていました。しかしながら12.10からは、そのような環境であってもGallium llvmpipeなどを用いてUnityを実行できるようになったため、2Dオンリーの環境でも通常と同じUnityインターフェースになります。ただしCPUの性能が悪い場合は、これまで以上にデスクトップが重く感じるかもしれません。
最も影響する可能性があるのは、VirtualBox上にUbuntuをインストールした直後でしょう。GuestAdditionsをインストールして3Dアクセラレーションをオンにすれば、普通のUnityでも特に問題なく使えるのですが、そうでない間はかなりストレスの高い鈍重な動作になるはずです。端末で「/usr/lib/nux/unity_support_test -p」と入力し、すべてがyesになっていない環境は3Dアクセラレーションが有効になっていません。必要に応じてGuestAdditionsやその他グラフィックドライバーをインストールして対応してください。
Unityのカスタマイズ
Unityは当初かなりハードコードされている部分が多く、カスタマイズ性に乏しい実装になっていました。さらにカスタマイズするにしても、Compizのプラグインとして動作してた経緯から、CompizConfig Settings Managerを使って他の設定と辻褄を合わせながら慎重に変更する必要があったのです。そんなUnityも7のリリースあたりからコードの整理が進み、カスタマイズできる部分を増やし、要望の多い設定項目はシステム設定でできるようになっています。
「外観」でテーマやLauncherのアイコンサイズ、Launcherを自動的に隠すかどうかを設定できます。前述のとおり「セキュリティとプライバシー」ではDashに表示する項目をある程度変更できます。マルチディスプレイ時のLauncherの位置などは「ディスプレイ」を確認してください。キーボードの「ショートカット」ではGNOME由来のショートカットキーやHUDの表示キーを変更できます。
それとは別に「Unity Tweak Tool」と呼ばれるカスタマイズツールが13.10から公式リポジトリに登録されました。これを使うと、より深いUnityの設定をCompizConfig Settings Managerを使うことなく変更できます。
図8 Unity Tweak Toolのインストール
たとえば、Launcherの「Minimize single window applications on click」にチェックを入れるとLauncherのアイコンをクリックするだけでウィンドウの最小化と最小化解除をトグルできますし、Hotconersでは画面の端にカーソルを合わせることで実行できる操作を指定できます。他にもいろいろな設定項目があるので、一度は一通り見ておくと良いでしょう。
テーマとアイコンの変更
Unity自体はともかくとして、デスクトップ要素はこれまでにもテーマやアイコンの変更に対応していました。一部のツールキットは独自ではあるものの、大半はGTK+であるためにGTK+用のテーマを導入すればテーマの変更は容易だったのです。ただしUnity由来のパーツ(DashやLauncherの背景やアイコン、ウィンドウの縁など)を変えることは不可能でした。第309回 で長南さんが紹介しているように一部のパーツの透明度やサイズを変える 、ぐらいが限界だったのです。
これがUnity 7から14.04のリリースあたりまでにだいぶ改善され、ほぼすべてのパーツがテーマで変更できるようになっています。Unityのテーマに関するWikiページ には、各パーツとファイル名に関する説明が載っていますので、自前テーマを作りたい人は参考にしてください。
図9 Numixテーマを適用した画面
参考になるテーマ&アイコンセットとして「Numix 」を紹介します。これはUnityやGTK+、Xfceにも対応したテーマ&アイコンセットで、フラットでシンプルなデザインであるため非常にユーザーが多いテーマでもあります。PPAも提供されているためテーマパッケージの作成のお手本にもなるでしょう。
$ sudo add - apt - repository ppa : numix / ppa
$ sudo apt update
$ sudo apt install numix - gtk - theme numix - icon - theme
テーマだけであればシステム設定からも変えられますが、Unity Tweak Toolを使えば「Theme」でテーマを、「 Icons」でアイコンセットを変えられます。パッケージを使っているため/usr/share/themesにインストールしています。他にも別途テーマファイルをダウンロードしてきて、「 ~/.themes」にインストールする方法もあります。パッケージが用意されていないテーマならおもにこちらの方法を使うことになります。
クイックリストの活用
Launcherのアイコンを右クリックしたときに表示されるメニューを「クイックリスト」と呼びます。
図10 Nautilusのクイックリスト
このクイックリストはアプリケーションごとにDesktop Entry Specification で決められた書式に基づいて、/usr/share/applications以下に用意したDesktopファイルの中で設定しています。たとえば最初から登録されている「ファイル」のアイコンは右クリックすると「ダウンロード」や「ドキュメント」など、特定のフォルダを直接開くエントリーが存在することがわかります。
正しい書式に従っていれば、任意の動作を行うDesktopファイルを作ることも可能です。カスタマイズしたDesktopファイルは「~/.local/share/applications/」以下に「.desktop」の拡張子を付けて作成してください。書式が正しければ、DashでそのDesktopファイルの「Name」フィールドに設定した値で検索できるようになっているはずです。あとは検索結果をマウスでLauncherにドラッグアンドドロップすればLauncherへの登録が完了します。
登録されたクイックリストはLauncherを右クリックすることで表示できます。キーボードのみで実行したい場合は、「 Alt+F1」でLauncherにフォーカスを合わせてから上下のカーソルキーで対象のアイコンを選択、その状態でカーソルの右キーを押せばクイックリストが表示されます。
よく利用するコマンドをクイックリストとして登録すれば、ちょっとした自分専用のランチャーになります。
ちょっとだけ快適なデスクトップライフを
リリースされた当初はいろいろと文句を言われることも多かったUnityですが、ここ数回のリリースは余計な新機能の追加をしていないせいか、リファクタリングがどんどん進み、安定化などの品質の向上に加えて心なしか高速化もしています。
その甲斐もあって最近はイベントでも「Unityいいよね」と言ってくれる人がだいぶ増えてきました。たぶん増えているような気がします。ひょっとすると同じ人が何回も言っているだけかもしれません。自分の声かもしくは幻聴の可能性も否めません。少なくとも増えるといいなーとは思っているのは確かです。だから非実在「Unityいいよね」ユーザーは確実に増えていると言ってさしつかえないでしょう。
読者の皆さまも、何かの折でかまいませんので、過去のほろ苦い経験にとらわれることなくUnityの利用に果敢にチャレンジしていただければ幸いです。