web-dev-qa-db-ja.com

hidpi画面でlightdmスケールを作成するにはどうすればよいですか?

3200x1800画面のラップトップを持っています。ラップトップを起動すると、lightdmは解像度に合わせて拡大縮小せず、小さく見えます。その後画面をロックすると、lightdmが拡大縮小して正常に表示されます。 this バグレポートが見つかりましたが、解決策はありません。

6
person808

このソリューションは、Ubuntuの「スクリーンディスプレイ」アプリケーションがログイン時にUIをスケーリングすることを模倣しているようです。必要な2つの設定を追跡しました。ログイン時にユーザーに自動的に設定するスクリプトを作成しました(つまり、Unity-greeterではありません)が、Unity-greeterを変更するには同じ設定を使用できます。

2つの4Kディスプレイがあり、両方を2のスケーリングファクターで設定したかったので、これは私のスクリプトのように見えます。

#!/usr/bin/env bash

set -e

# Find connected displays, we're assuming that all of the 
# connected displays will require scaling.
function createScaleFactor() {
    SCREENS=$(xrandr --query | grep " connected" | awk '{ print $1 }')
    FACTORS=$(for SCREEN in ${SCREENS}; do printf "'${SCREEN}': 16, "; done)

    echo "{${FACTORS::-2}}"
}

# Set both gnome and ubuntu interface scaling.
gsettings set org.gnome.desktop.interface scaling-factor 2
gsettings set com.ubuntu.user-interface scale-factor "$(createScaleFactor)"

最後に、変更する必要がある2つの設定が表示されます。したがって、Unity-greeter(つまり、lightdm)に変更するには、lightdmとしてログインする必要があります。これを行うには、dconf-editorを使用できます。

$ Sudo xhost +SI:localuser:lightdm
$ Sudo su -s /bin/bash lightdm
$ dconf-editor

Dconf-editorが表示されたら、上記のスクリプトの2つのキーに移動し、必要な値に設定します。上記のスクリプトを実行した場合は、dconf-editorを通常どおり開き、生成され設定された値を取得して、lightdmとして実行されているdconf-editorインスタンスにコピーするだけです。

ケーキにアイシングをかけるだけでも、このソリューションは何も変に見えません。 UIのようなテキストが異常に大きく見えることなく、全体が適切にスケーリングされます。一部の画像は、それほど鮮明ではありませんが、必要に応じてカスタマイズすることができ、将来的にはより高解像度の画像に更新される可能性があります。

理想的には、将来のアップデートでこれを設定するオプションがあるか、自動的に検出されるでしょう(おそらくユーザーの壁紙を設定する方法と同様の方法で)。

3
Seer

ログイン時に機能すると思われる小さな修正が見つかりましたが、ロック画面にはありません。また、このソリューションでは、テキストがconfindsにとって大きすぎるため、トップバーが少し下がってしまいます。おそらく、コスタムテーマが最良のソリューションでしょうか。また、デスクトップがすでにXft.dpi値を高く設定していることに依存している可能性があります。

  1. ターミナルを開いてxrdb -query | grep dpiを実行します
  2. /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xmlを開きます
  3. Key-name = "xft-dpi" type = "d"で検索
  4. xrdb出力からのDPIでデフォルト値を置き換えます

これはすぐに有効になります(ログアウトすると、大きなテキストが表示されます)。

3
Third3ye

他の答えは結構です。ただし、フォントのスケーリングのみを行います。これにより、フォントと他の要素の間に不均一が生じます。ディスプレイ全体をスケーリングする必要があります。このためには、lightdmの起動時にスクリプトを実行し、xrandrでスケーリングを設定する必要があります。詳細はこちらで確認できます: http://evren-yurtesen.blogspot.fi/2017/10/lightdm-and-4k-displays.html

0
yurtesen