web-dev-qa-db-ja.com

誰がXresource Xft.dpiを設定していますか?

最近、2160pディスプレイを搭載した新しいラップトップを受け取りました。 UnityデスクトップにインストールされたUbuntu 16.04でそれを受け取りました。私はそれ以来Xfce 4をインストールして使用していますが、Unityのグリーターを維持しています(かなりのせいです)。

高DPIディスプレイでフォントスケーリングの問題が発生すると予想していましたが、何かがXresource Xft.dpiから通常の96ではなく192まで。これはほとんどすべてのアプリケーションで採用されており、内部ディスプレイをほとんど使用可能にしています。 10点中10点ですよね?

まあ、いや、これがどこに設定されているのかわからないので。 Xfceの外観パネルは、DPIが96であると主張しています。dconf変数が存在する場合も、変数は96を示します。xdpyinfoも、96であると言います。Xorg.0.logにはDPIに関するメッセージが1つあり、96だと言っています。lightdm.conf(Unity greeterの構成ファイル)は、それを変更する試みを示していません。そしてxrandrは恒等変換行列を報告しています(スケーリングなし)。

私の疑いは、グリーターがFlyspeck 3でレンダリングを開始したが、しばらくしてから再スケーリングするため、GNOMEまたはUnityのグリーターのいずれかが原因です。しかし、これを実行するように指示された場所、またはデスクトップセッションでどのように維持されるかはわかりません。

私の目標は、外部の1080pディスプレイを接続し、DPIを微調整して、どちらのディスプレイも漠然と読みやすくすることです。しかし、私が背後でそれをしようとしている他の何かと戦っている場合、私は効果的にそれを行うことができません。

すべての手がかりを歓迎します。

システム情報

  • Ubuntu 16.04.3
  • unity 7.4.0 + 16.04.20160906-0ubuntu1
  • xorg 1:7.7 + 13ubuntu3
  • xfce 4.12.2
6
ewhac

私はこれを部分的に理解しました。 @derobertは正しかった。設定はUnityグリーターから残ります。

実験する2つのダミーユーザーアカウントを作成しました。 Unity greeterは96 DPIで開始し、その後192 DPIで再描画します。新しく作成したダミーユーザーを1人使って、Unityセッションにログインしました。デスクトップはすぐに反転して96 DPIに戻りました。さまざまなコントロールパネルも96 DPIを報告しました。したがって、Unityは設定を強制しているように見えます。

他のダミーユーザーを使用して、Xfceセッションにログインしました。すべてのコントロールパネルで96 DPIが報告されました。ただし、xrdb -queryによって報告され、実行中のすべてのプログラムによって使用されるDPIは192のままで、おそらくUnityグリーターから残っていると考えられます。しかしインスタント XfceのAppearanceコントロールパネルでDPI設定を変更しました。デスクトップ全体がそのDPI値に反転し、そこにとどまりました。私の推測では、DPI値を変更するまで、設定はユーザーのxfconf変数に含まれず、存在しない場合はログイン時に明示的に設定されません。

したがって、Xfceにはバグがあるようです-起動時にXft.dpiの現在の値をチェックしないため、または予期されるデフォルトに強制しないためです。

Unity greeterがなぜ最初に192 DPIに切り替わっているのか、まだわかりません。

1
ewhac

どうやらGnome-settings-daemonはXft.dpiを変更します。

これを〜/ .xinitrcから/usr/lib/gsd-xsettingsとして実行します。私はGnomeを使用していませんが、さまざまなGTKアプリを構成する必要があります。カーソルを点滅させないでください。それが、デーモンを実行する理由です。 (~/.config/gtk-3.0/settings.iniも編集できます)

私はそれを変更したので、設定デーモンを開始した後にxrdbafterを実行します。

質問の一部の用語を理解していないと思いますが、これは役に立つでしょう。実行しているソフトウェアの1つがgsd-xsettingsを実行していると思います。

ここ は、Xft.dpiプロパティを変更するコードです。

$ grep -n Xft.dpi gnome-settings-daemon/plugins/xsettings/gsd-xsettings-manager.c -2
852-        g_debug("xft_settings_set_xresources: orig res '%s'", add_string->str);
853-
854:        update_property (add_string, "Xft.dpi",
855-                                g_ascii_dtostr (dpibuf, sizeof (dpibuf), (double) settings->scaled_dpi / 1024.0));
856-        update_property (add_string, "Xft.antialias",

そのファイルの先頭には、ソフトウェアがデフォルトで96 DPIに設定されている理由が詳しく説明されています。おそらく、何かを設定して [〜#〜] xsettings [〜#〜] 値を「Xft/DPI」に設定すると、GTKは値を上書きするのではなく、私が好む値を使用します〜/ .Xdefaultsで「デフォルト」を96に設定しました。

1
Metamorphic