web-dev-qa-db-ja.com

Ubuntu 18.04 LTSでの高DPiスクリーンxrandrスケーリング

Ubuntu 18.04 LTSをWindows 10とのデュアルブートで、高dpi画面(2560x1440)のThinkpad X1 Yoga 2nd genにインストールしました。 GUI設定では分数スケーリングが許可されていないため(および100%は小さすぎますが、200%は 大きすぎる )、 this ページの説明に従いました。

ただし、ターミナルから次のコマンドを実行する

xrandr --output eDP-1 --scale 1.3x1.3 --panning 2560x1440

かなり 悪い結果 が表示されます。デスクトップのサイズが変更され、黒い境界線が表示されます。さらに、balckの境界でウィンドウをドラッグできますが、それらはトレースの背後に残ります(図 ここ )。

それはxrandrとGnomeデスクトップ環境の間の衝突かもしれないと思いますが、それは単なる推測です。このバグを解決する方法に関する提案はありますか?

2

私もこの問題を抱えていました。私のために働いたのは、コマンドの2つの部分を別々に実行することです:

xrandr --output eDP-1 --scale 1.25x1.25
xrandr --output eDP-1 --panning 2560x1440

それから私は黒い境界線を取得しません。ただし、これは起動スクリプトでは機能しませんでした-ログインするたびにこれを実行する必要があります。

ただし、一時停止して再開すると、黒い境界線が再び表示されます。誰かがそれを回避するためのヒントを持っているなら、それはありがたいです。

3
Olof

これは、OPの質問と他の回答のボーナス質問の両方に答えます。

次を使用してスクリプトを作成します。

Sudo -H gedit /lib/systemd/system-sleep/scale

これらの行をgeditにコピーします。

#!/bin/bash

# NAME: scale
# PATH: /lib/systemd/system-sleep
# DESC: Reset Ethernet card after suspend, not working automatically
# DATE: Dec 8, 2018


MYNAME=$0

set_scale() {
   xrandr --output eDP-1 --scale 1.3x1.3
   xrandr --output eDP-1 --panning 2560x1440
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
   hibernate|suspend|pre*)
      ;;
   resume|thaw|post*)
      # sleep 2;
      set_scale;;
esac

スクリプトを保存して、geditを終了します。

次を使用してスクリプト実行可能ファイルをマークします。

chmod a+x /lib/systemd/system-sleep/scale

スクリプトは、サスペンドから再開するたびに実行されます。

次のコマンドを含むエントリを追加することで、 startup applications で実行することもできます。

/lib/systemd/system-sleep/scale post suspend

スタートアップアプリケーションは、サインオン後に実行されます。

2