web-dev-qa-db-fra.com

Comment puis-je faire de lightdm scale sur un écran hidpi?

J'ai un ordinateur portable avec un écran 3200x1800. Au démarrage de mon ordinateur portable, lightdm ne s'adapte pas à la résolution et a l'air minuscule. Lorsque je verrouille l'écran par la suite, lightdm se met à l'échelle et son apparence est correcte. J'ai trouvé ceci rapport de bogue mais pas de solution.

6
person808

La solution semble imiter ce que l'application "Écrans" d'Ubuntu fait pour redimensionner l'interface utilisateur lorsque vous êtes connecté. J'ai suivi les deux paramètres requis. J'ai créé un script pour que ce paramètre soit automatiquement défini pour mon utilisateur lorsque je suis connecté (c'est-à-dire pas unitaire-greeter), mais vous pouvez utiliser les mêmes paramètres pour modifier l'unité-greeter.

J'ai 2 écrans 4K et je voulais les avoir tous les deux réglés avec un facteur d'échelle de 2, voici à quoi ressemble mon script:

#!/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)"

Tout à la fin, vous pouvez voir les deux paramètres à modifier. Donc, pour les changer en unité-greeter (c'est-à-dire lightdm), vous devez être connecté en tant que lightdm. Vous pouvez utiliser dconf-editor pour faire ceci:

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

Une fois que vous avez vu dconf-editor, naviguez jusqu'aux deux clés du script ci-dessus et définissez-les sur les valeurs dont vous avez besoin. Si vous avez exécuté ce script ci-dessus, vous pouvez ouvrir dconf-editor normalement et simplement saisir les valeurs qu'il a générées et définies et les copier dans l'instance de dconf-editor qui s'exécute en tant que lightdm.

Juste pour mettre la cerise sur le gâteau, cette solution ne fait rien paraître bizarre. Tout se met à l'échelle correctement, sans que le texte paraisse anormalement volumineux pour l'interface utilisateur ou quoi que ce soit du genre. Certaines images ne sont pas aussi nettes qu'elles pourraient l'être, mais vous pouvez les personnaliser si vous le souhaitez. Elles seront peut-être mises à jour à une résolution supérieure.

Idéalement, dans une future mise à jour, il serait possible de définir cette option ou de la détecter automatiquement (peut-être d'une manière similaire à celle utilisée pour définir le fond d'écran de l'utilisateur).

3
Seer

J'ai trouvé un petit correctif qui semble fonctionner lors de la connexion, mais pas sur l'écran de verrouillage. Cette solution rend également la barre supérieure un peu bâclée car le texte est trop volumineux pour les confinds - peut-être un thème personnalisé serait-il la meilleure solution? En outre, il est probable que le poste de travail ait déjà défini la valeur Xft.dpi highger.

  1. Ouvrez un terminal et lancez xrdb -query | grep dpi
  2. Ouvrir /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml
  3. Rechercher par clé-nom = "xft-dpi" type = "d"
  4. Remplacez la valeur par défaut par le DPI de la sortie xrdb

Cela devrait entrer en vigueur instantanément (la déconnexion montre le texte plus grand de mon côté).

3
Third3ye

Les autres réponses sont bien. Cependant, ils ne feront que redimensionner les polices. Cela provoquera des inégalités entre les polices et les autres éléments. Vous devez redimensionner tout l'affichage. Pour cela, vous devez exécuter un script au démarrage de lightdm et définir la mise à l'échelle avec xrandr. Vous pouvez trouver les détails ici: http://evren-yurtesen.blogspot.fi/2017/10/lightdm-and-4k-displays.html

0
yurtesen