セカンドスクリーン用に個別のWorkSpace


16

このような動作を実現したいと思います。ラップトップ画面を使用するとき、最初のワークスペースが使用されます。セカンドスクリーンを(HDMI経由で)接続すると、セカンドワークスペースが使用され、セカンドスクリーンのワークスペースを別のワークスペースに切り替える場合を除き、このセカンドスクリーンで新しく開いたすべてのウィンドウがセカンドスペースに表示されます。

セカンドスクリーンのプラグを抜くと、すべてのウィンドウが作成されたワークスペースにとどまり、ラップトップのワークスペースを切り替えて表示できます。

この動作はすでに可能ですか?


外観-> Behviorでワークスペースを有効にし、CompizConfig Settings Managerで垂直ワークスペースを無効にしました。ExpoおよびViewport Switcherプラグインもありますが、これらは私がやりたいことをできるように思えますが、そこで知識がなくても設定を変更することを恐れています。
-velop

あなたの質問は少しわかりにくいです。2つの個別のワークスペースとして表示するように要求している場合、答えは「いいえ」であり、不可能です。2番目の画面を接続するときにワークスペースの数を自動的に変更するように要求している場合、それは可能です。あなたが求めているものを簡素化/明確にしてください
Sergiy Kolodyazhnyy

2
Compiz-> Desktop Wall-> Viewport Switching-> Multimonitor bahvior-> Switchを個別に選択しました。しかし、どうやらこれは機能しません。
velop

@velop、これらのコメントを質問に編集できますか?
–SDsolar

回答:


1

この動作はすでに可能ですか?

Linuxではすべてが可能です。Xをいじっていて、ヘルプが必要な場合はブラウザを実行する必要があるため、Xserverに関するいくつかの基本的な知識、テストする時間、およびシステムが必要になります。

私の意見では、3つの可能な解決策があります:

  • Multimonitor-setupsはXineramaを使用します。私が考えることができる最も簡単な解決策は、3番目の仮想画面を構成に追加し、xdotoolを使用してそこにウィンドウを移動することです。このソリューションにはいくつかの欠点がありますが、一般的には不可能な異なるXserver間でウィンドウ移動する手間を必要としません。

  • それは別の間のウィンドウ移動することはできませんのでXサーバーを、私たちは次のようにプロキシの種類を必要とするxmoveXpra私たちのためにこれを行うには。その後、ウィンドウは別のXfvbセッションに住んで、ウィンドウを非表示にします。セッションにアタッチおよびデタッチできます。

  • 使用しているメソッドに関係なく、モニターのプラグが抜かれたときにイベントが必要です。このイベントは、画面が切断されたときと再接続されたときにトリガーされます。スクリプトをデーモン化して、イベントを監視できます。

さまざまな理由から、Xpraを使用したソリューションをお勧めします。私はあなたにそれをする方法のいくつかのヒントを与えることができるだけです。ソリューションは完全ではありませんが、開始する必要があります。

Xineramaソリューション

セットアップ

Xineramaのセットアップは、静的構成に拡張する必要があります。https//help.ubuntu.com/community/XineramaHowToを参照してください

偽の3番目の画面Xdummyも参照してください

影響を受けるウィンドウを取得する

xdotoolを使用して、ウィンドウを検索できます。その後、それらの位置を確認して移動できます。私は2つのモニターが1920x1080設定されていると仮定しています。以下は、すべてのウィンドウを右から左のxinerama画面に移動します。

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

これで、モニターが接続されている場合、ラップトップ画面(screen0)からすべてのウィンドウを3番目(仮想)の画面に移動できます。同時に、3番目の画面に保存されているウィンドウを最初の画面に移動できます。

XPRAソリューション

Xpraを使用してウィンドウを移動するには、すべてのウィンドウを事前にXpraで管理する必要があります。システムの起動時にXpra使用してデスクトップ全体起動する必要があります。2回は1つは作業を行うメインデスクトップで、もう1つは主に仮想デスクトップです。

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

これで、接続されていない画面用のWindowsを別のxpraセッションで実行し、モニターが切り替わったときにそこからアタッチ/デタッチできます。

xpra attach :99
xpra detatch :99

また、開始されたxpraディスプレイ間でウィンドウを非表示から通常に手動で移動する場合に便利な、廃止されたgnomeシェル拡張機能もあります。:99:0

行事

  • 特定のディスプレイの切断/再接続を監視できます

  • 必要に応じて、xwininfoを使用してxineramaの変更された寸法を監視し、プラグを外したモニターから独立させます。つまり、セットアップを3モニターに拡張し、任意のデバイスを取り外します。これは、xpraソリューションでのみ機能することに注意してください。

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.