私はワイドスクリーン形式(1024×600)の小さな画面のネットブックを持っています。つまり、デザイナーがそのようなことを想像していなかった多くのプログラムは、サイズ変更できないウィンドウを開き、下部が隠されています。 Ubuntu 10.04では、xrandrコマンドで処理しました:
xrandr --output LVDS1 --fb 1024x768 --panning 0x768
(0xに注意してください)これは、垂直方向にパンする通常サイズの仮想デスクトップを提供する効果がありましたが、(どういうわけか)ウィンドウマネージャーは無視したため、最大化されたウィンドウは物理画面のみを占有していました。その結果、大きなダイアログボックスが表示されない限り、パンする必要はありませんでした。いいですね。
11.04では、これは完全には機能しません。私が上で言ったことはすべて真実ですが、下の168ピクセルは永久に黒くなっているように見えるので、大きなウィンドウがそこに伸びていると、そこに何が入っているのかわかりません(ただし、そこにあります:サイズ変更ハンドルが表示され、それらに役立ちますサイズ変更が許可されている場合)。これはUnity関連だと思います。それは目的を破るので、私はこのxrandrコマンドを試しています:
xrandr --output LVDS1 --fb 1024x768 --panning 1024x768
(1024xに注意してください)。残念ながら、それはもはやウィンドウマネージャーをだましません、そして最大化されたウィンドウはすべて底から消えます。質問:
「最大化された」ウィンドウが物理的な画面のみを占めるように(または、より一般的には特定の画面を占めるように)設定するにはどうすればよいですか?
代わりに喜んでお答えしたい関連する質問は次のとおりです。
最初のxrandrコマンドがウィンドウマネージャーをだますのはなぜですか(「0x」は、マニュアルページによると、水平軸に沿ったパンが無効になっていることを意味します。仮想サイズは物理サイズと同じであるため、機能的には意味がありません)。 Unityの何が問題になっていますか?
Unityでは、最大化されたウィンドウのスタイルが異なるため、「最大化」アクションが必要であることに注意してください。タイトルバーは画面上部のツールバーに吸収され、貴重なピクセルを節約できます。ウィンドウのサイズを変更するだけでは、適切な方法ではありません。
参照:
この質問を見つけました。最大化によって画面の3分の1が覆われないようにしたいのです。 Compiz Maximumizeがまったく何もしないように見えたとき、私は非常に失望しました(Launchpadのバグがあります:https://bugs.launchpad.net/ubuntu/+source/compiz-fusion-plugins-extra/+bug/462158)。
スーパーユーザーでも同じ質問を見つけました:https://superuser.com/questions/269966/id-like-to-prevent-maximize-from-covering-one-third-of-the-screen、2つの選択肢があります。上記で説明したように、Compiz Gridプラグインは最大化されないため、役に立ちません。 Pythonウィンドウオーガナイザーは試していませんが、Gridに似ています。 「最大化」の意味はウィンドウマネージャー自体によって制御されるため、一般的に、巧妙なスクリプトが役立つとは思いません。したがって、ソリューションはCompizソリューションである必要があります。ありますか?
承認された回答:
私自身の質問に答えさせてください。答えは奇妙に関係しています。秘訣は、(10.04で保持されていた)望ましいデスクトップの動作が、「出力」、つまり描画する画面の概念を持つCompizによって(11.04で)制御されるようになったことです。これらは、CompizConfig設定マネージャー(パッケージcompizconfig-backend-gconf
)で構成されます。 または-kconfig
)、[一般オプション]メニューの[表示設定]タブの下。
これには3つの設定があり、すべてが重要です。最も重要なのは「出力の検出」です。これは、チェックを外す必要があります。これは、非物理的な画面設定を作成したいのに対し、自動検出は画面のサイズを取得するだけだからです。
2番目に重要なのは、解像度のリストである「出力」ボックスです。一見すると、ここに入力するのは「1024×768」であると思われるかもしれませんが、それは間違っています。Compizに仮想画面全体を使用するように指示するため、最大化されたウィンドウが下部に流れます。それは間違った行動です。ただし、「1024×600」と書くことも機能しません。これは、画面の高さが600ピクセルしかないふりをするようにCompizに指示するためです。したがって、直感に反する結果は、ストレッチすることを決定することです。 すべてのウィンドウ。これは醜く、機能しません。これにより、驚くべきグラフィックの不具合が発生し、不思議なことに、ボタンをクリックしてアクティブにする必要がある場所からボタンが移動します。良くない。
より良いオプションは、「1024×600 + 0-168」と書くことです。これは、Compizに、実際には下部に168の未使用ピクセルがあることを通知します。これは、私が不満を言っていた「黒いバー」の動作を再現します。それがどこから来ているのかを知るのは良いことですが、それでも私はそれを望んでいません。しかし、それはそれが何を意味するのかを教えてくれます。それは、Compizが単にそれらのピクセルを無視していることを意味します。そこにウィンドウを描画しません。ただし、その動作はCompizの前にあるXによって制御されるため、私のマウスはまだそこにあります。やるべきことは、どういうわけかCompizにそこに描画するように指示することのようです(したがって、ウィンドウは そこに行く)だけでなく、そこに描画しない(したがって、彼らは望んでいない そこに行きます。
したがって、完全に正しい解決策は、2つを記述することです。 デバイスをCompizに出力します。1つは「1024×600+0-168」、もう1つは「1024×768」です。したがって、Compizに、これらの下部のピクセルに同時に描画するのではなく、描画するように指示します。しかし、どれを「欲しい」かを確実に知るにはどうすればよいでしょうか。これは、このタブの最初のオプションである「重複する出力ハンドラー」です。 「小さい出力を優先する」に設定します。これは、まさに私がそこにある言葉で言ったことです。
したがって、答えは次のとおりです。xrandr --mode 1024x700 --fb 1024x768 --panning 0x768
を実行します。; Compizの表示オプションに移動し、「1024×600+0-168」と「1024×768」の2つの出力を入力します。 「出力の検出」のチェックを外します。 「オーバーラップ出力ハンドラー」がより小さな出力を優先するようにします。ふぅ。