Ubuntuは17.10より、デスクトップシェルをUnityからGNOME Shellへと移行しました。その際にUnityのLauncher部分を担ったのが、GNOME Shellの拡張機能のひとつである「Dash to Dock 」です。今回はその、Dash to Dockのカスタマイズ方法を紹介します。
Ubuntu DockとDash to Dock
Ubuntuが使っている拡張機能の名前はより正確に言うと「Ubuntu Dock」です。これは本家Dash to Dockの別ブランチ として開発されています。なるべくオリジナルとの差分が小さくなるように開発しているため、masterブランチ との違いは主に、Ubuntuに合わせたテーマ・設定の採用と、設定画面の無効化ぐらいです。
Dash to DockとUbuntu Dockの関係については、UbuntuがGNOME Shellを正式に採用した17.10 のリリース直前の第490回 でいくやさんが詳しく紹介しています。Dash to Dock自体はGNOMEの拡張機能ではあるものの、Ubuntuの場合はUbuntu DockをDebianパッケージ化した上で、Ubuntu Desktopにおいては最初からインストールしています。このため通常のGNOME拡張機能のように、気軽にオン・オフはできません。GNOME拡張機能そのものについては、第492回 や第494回 なども参照してください。
Dash to Dockそのものは、本連載で2012年12月19日に公開された第254回 のこれまたいくやさんによる「GNOME 3.6用の拡張機能12選(前編) 」で、すでに「お勧めの拡張」として登場しています[1] 。
[1] その後も第293回 、第320回 、第347回 、第396回 、第418回 、第442回 、第467回 と半年に一度の「Ubuntu GNOME」の紹介記事において、毎回の動作確認対象として登場していたりします。ひょっとすると単一機能のソフトウェアとしては、本連載で最も登場しているソフトウェアかもしれません。ちなみにUbuntu GNOME 15.04の紹介記事である第369回 では、拡張機能そのものが「第347回の項目と大きな差はありません」と言及されていたためDash to Dockは表面上は登場しませんでした。ここまで読んだ人はお気づきかとは思いますが、これらの記事はすべていくやさんが執筆しています。
基本的な設定方法
Ubuntuの設定インターフェース(システム設定の「Dock」 )から変更できるUbuntu Dockの変更点はごくごくシンプルです。
図1 システム設定のDockから設定可能
「Dockを自動的に隠す」は特定の条件下で、Dock(画面左端にあるアプリケーションアイコンのバー)を隠すかどうかの設定です。起動中のいずれかのウィンドウがDockの描画領域に重なっているか、全画面表示になっている場合にDockが隠れます。より広く画面を使いたい場合に便利でしょう。
図2 アイコンの最小・初期・最大サイズ
「アイコンのサイズ」はそのままアプリケーションアイコンのサイズのことで、最小16ピクセルから最大64ピクセルまで選べます。初期設定は48ピクセルです。多くのアプリを起動するなら、小さくしておくといいかもしれません。逆にHiDPIな環境なら大きくすることになるでしょう。
「表示位置」はDockをどこに表示するかを変更します。システム設定から選べるのは左端、右端、下端の3つです。
図3 Dockを下端に表示
図4 Dockを右端に表示
より高度なカスタマイズ
Ubuntu Dockにおける設定項目は3種類程度ですが、Dash to Dock自体は多種多様な設定項目を有しています 。そのほとんどはアプリボタン(Dockの一番下にあるアプリケーションリストを一覧表示するボタン)を右クリックすることで表示される設定インターフェースから変更可能です。しかしながらUbuntu Dockはこの設定インタフェースの起動を無効化しています 。
では、Ubuntu Dockだと設定できないかと言うと別にそういうわけでもなく、gsettingsコマンドからなら変更できます。そこでここからは、gsettingsを利用したUbuntu Dockの設定項目を紹介していきましょう。
なお、gsettingsそのものは次のように使用します。
パスにあるキーの値を表示する
$ gsettings get パス キー
パスにあるキーの値を変更する
$ gsettings set パス キー 値
パスにあるキーの値を初期値に変更する
$ gsettings reset パス キー
Ubuntu Dockのパスは「org.gnome.shell.extensions.dash-to-dock
」です。よってここからはキーと値のみを説明します。ちなみにgsettingsはbash-completionに対応しているため、パス・キーの入力は補完に任せたほうが楽です。
ショートカット機能
Ubuntu Dockには以下のショートカット(ホットキー)機能が存在します。Ubuntu Dockでは次の機能が割り当てられています。
アイコンのクリック:数字で指定されたアイコンのアプリに対して次のいずれかを行います。
起動中のアプリが存在しない場合は、新規に起動する
アプリが起動中でウィンドウが1つだけの場合は、そのウィンドウを表示する
アプリが起動中でウィンドウが複数の場合は、ウィンドウのサムネイルを表示する
アイコンを中クリック:ウィンドウを最小化します。
アイコンをCtrl押しながらクリック:数字で指定されたアイコンのアプリを新しいウィンドウで起動します。これはGNOME Shell側の挙動です。
アイコンをShift押しながらクリック:数字で指定されたアイコンのアプリを起動します。アプリが起動中の場合、新しいウィンドウを作成します。
アイコンをShift押しながら中クリック:数字で指定されたアイコンのアプリを起動します。アプリが起動中の場合、新しいウィンドウを作成します。
Super-X/Ctrl-Super-X(Xは0から9の数字) :アイコンをクリックしたように振る舞います。
Shift-Super-X(Xは0から9の数字) :アイコンをShift押しながらクリックしたように振る舞います。
Super-q:Dock上の各アイコンに数字を表示します。
アイコンの上でマウスをスクロール:何もしません。
アプリボタンの上でマウスをスクロール:ワークスペースを切り替えます。
上記はいずれもカスタマイズ可能です。
まずapp-hotkey-X/app-shift-hotkey-Xによって、アイコンのクリック・ShiftクリックのためのショートカットキーをSuper-X/Shift-Super-Xから変更できます。たとえばapp-hotkey-1の設定値は「['<Super>1']
」になっています。この設定は次のようなコマンドで「['<Alt>F']
」に変更できます。
$ gsettings set org.gnome.shell.extensions.dash-to-dock app-hotkey-1 "['<Alt>F']"
これによりAlt-Fキーを押すと1番目のアイコン(大抵はFirefoxになっていることでしょう)を表示もしくは起動できます[2] 。hot-keysをfalseにすると、上記設定はすべて無効化されます。
[2] Modifierキーとして<Ctrl>
や<Shift
を設定した場合、ショートカットを入力すると「Ctrlキーを押しながら」「 Shiftキーを押しながら」ホットキーを押されたと判定されてしまいます。app-hotkey-Xを使うならSuperもしくはAltあたりのModifierキーを使うのが無難です。もちろんF3のように単体キーを設定しても良いでしょう。
数字を表示するキーはshortcutから変更できます。また数字の表示時間はshortcut-timeoutで初期設定値は2秒です。
クリック時・ホットキー入力時の挙動は次のキーから変更できます。丸括弧の中は「Ubuntu Dockの初期値/Dash to Dockの初期値」です。
click-action:クリック時・app-hotkey-Xのキー入力時の挙動(初期値:previews/cycle-windows)
middle-click-action:中クリック時の挙動(初期値:launch/launch)
shift-click-action:Shiftキーを押しながらクリック時・app-shift-hotkey-Xのキー入力時の挙動(初期値:launch/minimize)
shift-middle-click-action:Shiftキーを押しながら中クリック時の挙動(初期値:minimize/launch)
ちなみに右クリックについては特に設定する方法はありません。つまり、残念ながらUnityのQuicklistに相当する機能は存在しないようです。
値については次のいずれかを選択できます。
skip:そのアプリのウィンドウを前面に表示します。
minimize:そのアプリのウィンドウを最小化します。
launch:常にアプリの新しいウィンドウを起動します。
cycle-windows:クリックするごとにそのアプリの次のウィンドウに切り替えます。シングルウィンドウならskipと同じです。
minimize-or-overview:シングルウィンドウならウィンドウを最小化します。マルチウィンドウならpreviewsと同じです。
previews:ウィンドウが複数ある場合、そのサムネイルを表示します。シングルウィンドウならskipと同じです。
quit:そのアプリを終了します。
またどの設定であっても指定したアイコンのアプリが起動していなければ単純に起動します。
scroll-actionを設定すると、アプリアイコンをスクロールしたときの挙動を設定できます。設定できる値はdo-nothing(何もしない) 、cycle-windows(表示するウィンドウの切り替え) 、switch-workspace(ワークスペースの移動)のいずれかです。ただしicon-size-fixedがtrueのときは他の機能との兼ね合いからswitch-workspaceは動作しません 。
アプリボタン上でスクロールすれば、ワークスペースを切り替えられます。これはscroll-switch-workspaceでオン・オフできます。
Dockに表示する項目
Dockには起動中のアプリアイコンや、お気に入りのアプリアイコンが表示されます。これはそれぞれ次のキーで変更できます。
お気に入りのアプリ:show-favoritesをfalseにすると非表示
実行中のアプリ:show-runningをfalseにすると非表示
アプリボタン:show-show-apps-buttonをfalseにすると非表示
「お気に入りのアプリ」とはアプリアイコンを右クリックして表示される「お気に入りに追加」から追加されたアプリのリストです。これはGNOME Shell全体で管理しているため、次のコマンドで内容を確認できます。
$ gsettings get org.gnome.shell favorite-apps
アプリボタンは、インストール済みアプリを一覧表示・検索するUIを表示するためのボタンです。Ubuntu Dockでは画面左下(Dockの文脈で言うところの末尾)に表示されていますが、これを左上(Dockの文脈で言うところの先頭)に変更できます。
$ gsettings set org.gnome.shell.extensions.dash-to-dock show-apps-at-top true
ちなみにアプリボタンを押したときは、アプリリストを表示する際に展開アニメーションを使用します。これを無効化し、できるだけ速くアプリリストを表示したい場合は、次のように設定してください。
$ gsettings set org.gnome.shell.extensions.dash-to-dock animate-show-apps true
自動的に隠す機能の細かい調整
「自動的に隠す」機能を有効にすると、特定の条件下でDockを隠します。Ubuntu Dockでは「いずれかのウィンドウがDockに重なった時」が隠す条件となっています。しかしながらgsettingから設定すれば、隠す条件を変更したり、表示・非表示時のアニメーションを変更可能です。
intellihide-mode
はDockを隠す条件を変更します。設定できる値は次の3つです。
ALL_WINDOWS:すべてのウィンドウのいずれかがDockに重なっていれば隠す(Ubuntu Dockの初期値)
FOCUS_APPLICATION_WINDOWS:フォーカスが当たっているウィンドウがDockに重なっていれば隠す(Dash to Dockの初期値)
MAXIMIZED_WINDOWS:最大化されているウィンドウが存在すれば隠す
表示・非表示の際はDashが「スルスル」っとアニメーションします。この遷移時間はamimation-timeで変更可能です。初期値は0.2秒であり、大きくするとゆっくりと、小さくすると即座に表示・非表示が切り替わります。なおhide-delayにより「非表示アニメーション開始」までの遅延時間も設定可能です。こちらも初期値は0.2秒です。
隠されたDockを表示するには、マウスカーソルをDockが存在する側の端に「勢い良く」ぶつけます。勢いが必要なのは、マウスを画面端に寄せた時に常に表示されると、Dockとかぶる領域のウィンドウをクリックできずに不便だからです。どうしてもマウスカーソルが画面端に存在したら常に表示させたい場合は、require-pressure-to-showをfalseに設定してください。またpressure-thresholdを大きな値に設定すると、より勢いが必要になり、小さく設定すると細かいマウスカーソルの移動でDockを表示できます。
第541回ではUbuntu Dockの見た目をカスタマイズする方法を紹介します。