モニターが部分的に損傷しています。 xrandrなどのツールを使用して視覚空間を減らすには?

モニターが部分的に損傷しています。 xrandrなどのツールを使用して視覚空間を減らすには?

セカンダリモニターは、画面の上部の3分の1が壊れて黒いバーを追加し、下の画像のような外観を作成したいと思います。上部は今すべてが見える様子です。下の部分は私が達成したいものです。リストされた解像度は各画面の最大解像度です。

2番目の画面のxrandr出力は次のようになります。

VGA1 connected 1920x1080+1366+12 (normal left inverted right x axis y axis) 890mm x 500mm
1920x1080     60.00*+
1600x1200     60.00  
1680x1050     59.95  
1280x1024     75.02    60.02  
1440x900      74.98    59.89  
1280x960      60.00  
1360x768      60.02  
1280x800      59.81  
1152x864      75.00  
1024x768      75.08    70.07    60.00  
832x624       74.55  
800x600       72.19    75.00    60.32  
640x480       75.00    72.81    66.67    60.00  
720x400       70.08 

模式図

ベストアンサー1

考えられる解決策:

空のパネルを使用して損傷した部分を覆い、残りのスペースを使用してウィンドウを強制的に開きます。たとえば、xfce4-panel設定できます。これがどのようにうまく機能するかは、デスクトップ環境によって異なります。私はXfceとLXDEがうまくいくと思いますが、Gnomeには問題があります。これは、フルスクリーンFirefox + F11やVLCなど、パネルをオーバーレイするフルスクリーンアプリケーションには役立ちません。

フルスクリーンアプリの回避策:Xephyr目的の画面サイズから始めて場所を指定し、その中でアプリを実行します。これを自動化するには、スクリプトと「xdotool」を使用します。

Xephyr :1 -screen 1500x800x24 &
xdotool search --name Xephyr windowmove 0 437

Xepyrウィンドウを使用してアプリケーションを起動しますDISPLAY=:1 firefox。 Xepyrはハードウェアアクセラレーションをサポートしていませんが、virtualglここでは役に立ちます。


ベストソリューション:

westonと一緒に使用されますXwayland。ハードウェアアクセラレーションとフルスクリーンアプリケーションをサポートします。

起動時など、かなり軽いウィンドウマネージャを使用しますopenbox(または、ウィンドウの装飾がまったくないウィンドウマネージャを使用することをお勧めしますevilwm)。これは単なる背景環境なので、ウェスタンはこれを無視します。

次のカスタムファイルを作成しますmyweston.ini(参照man weston.ini)。

[core]
shell=desktop-shell.so
idle-time=0

[shell]
panel-location=none
locking=false

[output]
name=X1
mode=1366x768

[output]
name=X2
mode=1500x768

evilwmでwestonを起動し、WestonでXwaylandを起動するには、次のスクリプトを作成します(2つのwestonウィンドウの場所をカスタマイズします)。最後に、目的のデスクトップ環境を起動します。

# start weston with custom config and two output windows
weston --socket=wayland-1 --config=$HOME/myweston.ini --output-count=2 >$HOME/weston.log 2>&1 &
sleep 1 # wait until weston is ready

# get window id's from logfile and move windows at target (xwininfo could give id's, too)
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | head -n1 | rev | cut -d' ' -f1 | rev))    0 0
xdotool windowmove 0x$(printf '%x\n' $(cat $HOME/weston.log | grep 'window id' | tail -n1 | rev | cut -d' ' -f1 | rev))    1369 400

# start X server Xwayland in weston
WAYLAND_DISPLAY=wayland-1 Xwayland :1 &
sleep 1 # wait until Xwayland is ready

# start your desired desktop environment
DISPLAY=:1 startlxde

上記の起動スクリプトは、XクライアントのCookie認証を設定しません。代わりに、次のものを使用できます。x11dockerクッキー認証も可能です:

# start weston and Xwayland, read X environment
read Xenv < <(x11docker --weston-xwayland --gpu --output-count=2 --westonini=$HOME/myweston.ini)

# move weston windows to target locations
xdotool windowmove $(xwininfo -name "Weston Compositor - X1" | grep "Window id" | cut -d' ' -f4) 0 0
xdotool windowmove $(xwininfo -name "Weston Compositor - X2" | grep "Window id" | cut -d' ' -f4) 1367 400

# start desired desktop environment
env $Xenv startlxde

Xwayland は weston のクライアント「ウィンドウ」として表示されます。残念ながら、WestonやXwaylandのバグのため、常に0:0の場所にあるわけではありません。 [META] + マウスの左ボタンでXwaylandを目的の位置に移動できます。私は書いたエラーレポートしかし、応答がありません。

おすすめ記事