Ubuntu Weekly Recipe

第541回 Ubuntu Dockの見た目を変更する

この記事を読むのに必要な時間:およそ 4 分

Ubuntuは17.10より,デスクトップシェルをUnityからGNOME Shellへと移行しました。その際にUnityのLauncher部分を担ったのが,GNOME Shellの拡張機能のひとつであるDash to Dockです。第538回に続いて,今回はDash to Dockの見た目をカスタマイズしてみましょう。

前回のおさらい

第538回に続いて,今回もUbuntu 18.04 LTSのデスクトップインターフェースの一部であるDash to Dock(Ubuntu Dock)のカスタマイズを行います。

Dash to DockはGNOME Shellの拡張機能であり,デスクトップ上でのアプリケーションランチャーやタスク管理を担うソフトウェアです。Ubuntuでは,Dash to DockのUIの一部をカスタマイズした上で,Ubuntu Dockとしてインストールしています。

オリジナルのDash to Dockには詳細な設定インターフェースが存在しますが,Ubuntu Dockには基本的な設定インターフェースしか存在しません。このためUbuntu Dockをより細かくカスタマイズしたい場合は,gsettingsコマンドを用いる必要があります。

パスにあるキーの値を表示する
$ gsettings get パス キー

パスにあるキーの値を変更する
$ gsettings set パス キー 値

パスにあるキーの値を初期値に変更する
$ gsettings reset パス キー

Ubuntu Dockのパスはorg.gnome.shell.extensions.dash-to-dockです。

前回はショートカット(ホットキー)機能やDockに表示する項目の調整,自動的に隠す機能の調整機能などを紹介しました。今回はUbuntu Dockそのものの見た目をがらっと変えてしまいましょう。

Dockの形と表示位置を変更する

Ubuntu Dockの場合,Dockは「ディスプレイのサイズいっぱいに表示する」設定になります。これをDash to Dockのようにアイコンのサイズに合わせて調整するには,extend-heightをfalseにします。

$ gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false

図1 extend-heightをfalseにするとアイコンの数にあわせて高さが変わる

画像

extend-heightがfalseの場合,Dockの角は丸くなります。常に角ばっておきたい場合は,force-straight-cornerをtrueに設定してください。

$ gsettings set org.gnome.shell.extensions.dash-to-dock force-straight-corner false

また,extend-heightがfalseのときに有効になる設定としてheight-fractionも存在します。これはディスプレイでDockを表示可能な最大の領域に対する倍率を設定します。初期設定値は0.9なので,ほぼ画面サイズいっぱいまで起動アイコンを並べられます。これをたとえば0.3ぐらいにすると,最大でもディスプレイの3割程度までしかDockは拡張されません。それを超えると,表示できないアイコンは隠れますのでスクロールで表示させる必要があります。

図2 height-fractionを小さくすると入り切らないアイコンは表示されない

画像

extend-heightをfalseにして,icon-size-fixedをfalseにすると,height-fractionで設定した領域内部にすべてアイコンを表示できるようにアイコンのサイズを自動的に小さくします。起動中のアイコンを必ず表示させたい場合に便利でしょう。第538回で紹介したように,icon-size-fixedをfalseにしないとswitch-workspaceが機能しないのはこれが理由です。

図3 icon-size-fixedをfalseにするとアイコンの大きさが自動的に変わる

画像

システム設定でもDockの表示位置を変更できますが,実はgsettingsからだとディスプレイの「上端」にもDockを配置できます。

$ gsettings set org.gnome.shell.extensions.dash-to-dock dock-position 'TOP'

上端にDockが配置されたとしても,初期設定のままでは単に邪魔な存在です。しかしながら次のように,これまでの設定を駆使すると,それなりに使えるようになります。

Dockの常時表示を無効化
$ gsettings set org.gnome.shell.extensions.dash-to-dock dock-fixed false

Dockをウィンドウの状態に関係なく常に隠す
$ gsettings set org.gnome.shell.extensions.dash-to-dock intellihide false

マウスカーソルを上端にあわせるだけでDokc表示
$ gsettings set org.gnome.shell.extensions.dash-to-dock require-pressure-to-show false

Dockのサイズはアイコン表示に必要な分だけにする
$ gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false

Dockのサイズは最大でも画面サイズの半分
$ gsettings set org.gnome.shell.extensions.dash-to-dock height-fraction 0.5

Dockのサイズを超えるアイコンを表示する際は,アイコンを小さくする
$ gsettings set org.gnome.shell.extensions.dash-to-dock icon-size-fixed false

Dockを画面の上端に表示する
$ gsettings set org.gnome.shell.extensions.dash-to-dock dock-position 'TOP'

図4 必要なときだけ表示されるようになれば上端でもそれなりに使える

画像

マルチモニター・ワークスペースにおけるDockの表示

マルチモニター・マルチワークスペース環境においてUbuntu Dockは次のような挙動になっています。

  • プライマリーモニターにのみDockを表示する(multi-monitorがfalseで,preferred-monitorが-1)
  • すべてのモニター・ワークスペースで起動中のアプリをDockに表示する(isolate-monitorsとisolate-workspacesがfalse)

まず最初に,multi-monitorをtrueに変更するとすべてのモニターにDockを表示します。multi-monitorがfalseのままの場合,preferred-monitorに指定した番号のモニターにDockを表示します。モニターと番号の対応表はシステム設定の「デバイス」にある「ディスプレイ」を参照してください。-1はプライマリーモニターになります。

isolate-monitorsをtrueにすると,そのモニターに表示されているウィンドウのみがDockに反映されます。isolate-workspacesをtrueにするとそのワークスペースに表示されているウィンドウのみがDockに反映されます。

背景の変更

第492回でも紹介したように,GNOME Shellの拡張機能はJavaScriptとCSSで形成されています。よってテーマとしてCSSを書けばDash to Dockの見た目を変更できるのです。実際,基本的なスタイルは/usr/share/gnome-shell/extensions/ubuntu-dock@ubuntu.com/stylesheet.cssに記載されています。ただしCSSによるスタイルとgsettingsによる見た目の変更は排他的です。このためスタイルシート適用のapply-custom-themeはfalseになっています。ここではgsettingsを用いた見た目の変更について説明しましょう。

まずDockの背景色の変更です。背景は基本的にDock近傍のウィンドウの有無あわせて調整される設定になっています。これはtransparency-modeで変更可能です。設定できる値は次のとおりです。

  • DEFAULT:指定されたテーマによって変わる。
  • FIXED:ユーザーが設定した色と透明度が反映される。
  • ADAPTIVE:Dockからウィンドウが離れているときはDockの設定が反映され,近づいているときはウィンドウの色がDockとトップパネルの双方に反映される。Dockが隠れているときはトップパネルの色は変わらない(Ubuntu Dockの設定⁠⁠。
  • DYNAMIC:Dockからウィンドウが離れているときはDockの設定が反映され,近づいているときはウィンドウの色がDockのみに反映される。

FIXED時はbackground-opacityの値が設定されます。初期値は0.8で,0にすると完全に透明になります。

図5 Dockの近くにウィンドウがいないと画面左端のDockも画面上端のパネルも半透明で表示

画像

図6 ADAPTIVEの場合,ウィンドウが近づくと「Dockとパネルの双方」がウィンドウの色になる

画像

図7 DYNAMICの場合,ウィンドウが近づくと「Dockのみ」がウィンドウの色になる

画像

Dockの背景に明示的に色味を付けたい場合は,background-colorを設定します。この値はcustom-background-colorをtrueにすることで反映されます。

たとえばDockをオレンジ色の系統にするなら,次のように設定します。

$ gsettings set org.gnome.shell.extensions.dash-to-dock transparency-mode FIXED
$ gsettings set org.gnome.shell.extensions.dash-to-dock custom-background-color true
$ gsettings set org.gnome.shell.extensions.dash-to-dock background-color '#e95420'

図8 オレンジ色のDock

画像

特定の色にしたい場合は,transparency-modeをFIXEDにして透明度も固定的に設定したほうがいいかもしれません。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。