試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Unityのグローバルメニュー,ランチャパネルの隠れる場面,liboverlayのスクロールバーに関するメモ(Ubuntu 11.04時点)

UbuntuのUnityに関するメモ(UnityのCompizプラグインにおける幾つかの設定,ログアウトなどのボタン・Ubuntu 11.04時点)」に続き、Ubuntu 11.04時点でのUnityの使い方についてを扱う。

グローバルメニュー

Unity環境でGTK+ 2もしくはQt4のアプリケーションを自分のユーザ権限で動かすと、通常は各ウィンドウの上部に表示されるメニューがUnityの上部パネルに表示され、ウィンドウ内にはメニューが表示されなくなる。この機能はグローバルメニューと呼ばれ、「appmenu-gtk」「appmenu-qt」といったパッケージによって動作する。
メニュー項目にアクセスしたいときに画面の上の端から探すという使い方ができるので、この意味では便利とも言えるのだが

  • 操作感を受け入れにくいという人もいる
  • 対応していないGUIツールキットやWineなどは対応しておらず、操作の統一性に欠ける
  • 無効にしたい場合の操作をGUIツールで行えない
  • Ubuntu 11.04の時点ではGTK+ 3には未対応

など、問題もある。
グローバルメニューを使うかどうかは好みの世界の話なのだが、無効にするための設定項目は11.04の時点では存在しないため、以下で無効にするための方法についてを扱う。

グローバルメニューを無効にする

GTK+ 2アプリケーションでは環境変数UBUNTU_MENUPROXYを「libappmenu.so」以外にし、Qt4アプリケーションでは環境変数QT_X11_NO_NATIVE_MENUBARに適当な値(例:1)を設定する。
環境変数UBUNTU_MENUPROXYについては
[転載] ファイル名: /etc/X11/Xsession.d/80appmenu

if [ -f /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so ]
then
    export UBUNTU_MENUPROXY="libappmenu.so"
fi

ログイン後に自動的に設定されるようになっており、Qt4向けの設定と合わせると、管理者権限で
ファイル名: /etc/X11/Xsession.d/80appmenu

#if [ -f /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so ]
#then
#	export UBUNTU_MENUPROXY="libappmenu.so"
#fi

export QT_X11_NO_NATIVE_MENUBAR=1

のように内容を変更することになる(注意:全てのユーザに対して変更が有効になる)。
もちろん、個別のアプリケーションの実行時に上記環境変数を設定することもできる。

env QT_X11_NO_NATIVE_MENUBAR=1 UBUNTU_MENUPROXY= [GTK+ 2アプリケーションかQt4アプリケーション]

例外として、Firefoxなど、グローバルメニューに関連したアドオン(Global Menu Bar integration)の無効化のような追加の作業を行わないとグローバルメニューが用いられてしまうものもある。

ランチャパネルを隠す場面の設定

初期状態では、ウィンドウが左のランチャパネルにかぶったり、「UbuntuのUnityに関するメモ(ウィンドウマネージャ設定,最大化/半最大化・Ubuntu 11.04時点)」で扱った半最大化を含めた最大化状態になったりすると、自動的にランチャパネルが隠れるようになっている。これはCompizConfig Settings Manager(CCSM)で「Ubuntu Unity Plugin」プラグインの「Behaviour」タブにある「Hide Launcher」で調整できる。

  • Never: 常に表示(隠さない)
  • Autohide: マウスポインタを左上に持っていったときや、スケールやExpoなどのプラグインで表示が切り替わったときなどを除いて常に隠す
  • Dodge Windows: 非アクティブなものを含め、全てのウィンドウがランチャパネルの場所に重なったときに隠す(既定値)
  • Dodge Active Window: アクティブなウィンドウがランチャパネルの場所に重なったときのみ隠す/非アクティブなウィンドウが重なっても動作に影響しない

なお、隠れる際の画面効果についても同プラグインの「Experimental」タブにある「Hide Animation」で変更できる。

関連:スクロールバーのスタイル(liboverlayによるオーバーレイスクロールバー)

Unityと直接関係はないが、Ubuntu 11.04ではGUIアプリケーションのスクロールバーが細くなり、省スペースになった反面、マウスドラッグでのスクロール位置調整をするためには

  1. スクロールバーの色の付いた部分の少し左(横スクロールバーでは上)から色の付いた部分の上までマウスポインタを移動
  2. ウィンドウ右横にツマミが出るのでこれを上下(横スクロールバーでは左右)にドラッグ(ツマミ端のボタンをクリックでも可)

とする必要があり、ドラッグの開始位置に狙いを定めにくく使いにくい場合がある(マウスホイールでのスクロールは通常通り可)。
これを通常のスタイルにするためには環境変数LIBOVERLAY_SCROLLBARを「0」にする。ログイン画面にGDMを使用している場合は
[追記]ファイル名: ~/.xprofile

export LIBOVERLAY_SCROLLBAR=0

を記述すれば常にこのスタイルを無効にできる。

関連記事:

使用したバージョン:

  • Unity 3.8.12
  • Compiz 0.9.4
  • CompizConfig Settings Manager 0.9.4