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

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

Wine 0.9.60のウィンドウ管理と装飾に関する新しいモードについて

Wineのバージョン0.9.60では、Wine上のウィンドウをX Window Systemのウィンドウマネージャに管理させつつ、Windows風の装飾を使用することができる。
これまでは

  • ウィンドウをウィンドウマネージャに管理させると、装飾はウィンドウマネージャによるものになってしまう
  • 逆に使用しない設定にすると、他の全ウィンドウよりも手前(最前面)に、しかも全ての仮想画面*1上に居座ってしまう

となっていたため、この変更は有用。

  1. 設定方法(全体の設定)
  2. 個別のアプリケーションごとのルールで指定

設定方法(全体の設定)

バージョン0.9.60の時点では、日本語で起動すると設定項目が出ないため

$ LC_MESSAGES=C winecfg

winecfg設定ツールを起動して「Graphics」タブに切り替えて

  • 「Allow the window manager to decorate the windows(ウィンドウ マネージャがウィンドウを装飾するのを許可する)」のチェックが外れている
  • 「Allow the window manager to control the windows(ウィンドウ マネージャがウィンドウを制御するのを許可する)」がチェックされている

という状態にする。
(2008/5/4)バージョン0.9.61では上記チェックボックスは日本語ロケール上で起動しても表示されるようになった(ただしこの部分のみ英語)。
(2009/2/23)日本語ロケール上の訳を付け足した
あるいは、レジストリの該当部分を
ファイル名: ${WINEPREFIX}/user.reg

[Software\\Wine\\X11 Driver]
"Managed"="Y"
"Decorated"="N"

このように指定する。

ウィンドウはこのように表示され、ウィンドウマネージャの装飾は付かない。
(2008/7/18)レジストリエディタで取り込むレジストリファイルでは、下のようになる。
[任意]ファイル名: window-managed-nodecorator.reg

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"Decorated"="N"
"Managed"="Y"

個別のアプリケーションごとのルールで指定

一部のアプリケーションのみに対して、例外として上の全体設定よりも優先して指定することもできる。*2
下はWinampの例。
ファイル名: ${WINEPREFIX}/user.reg

[Software\\Wine\\AppDefaults\\winamp.exe\\X11 Driver]
"Managed"="Y"
"Decorated"="N"

Winampはこれで多少扱いやすくはなったが、メインウィンドウ以外のイコライザやプレイリストなどは「最前面 + 全仮想画面」に出てしまうようだ。Winampの場合、これらのウィンドウをドラッグ移動もしくはサイズ変更を行おうとしたところでウィンドウマネージャの管理下になるようで、プレイリストでは右下の隅をクリックするだけでOKだったが、これに確実に対処するにはデスクトップウィンドウを使用するのがよさそう。

使用したバージョン:

  • Wine 0.9.60

*1:ワークスペースやビューポート

*2:ここの設定に限らず、アプリケーションごとに色々な設定を行うことができる仕組みになっている