web-dev-qa-db-fra.com

Mise à l'échelle de la fenêtre par application sous Xorg pour un affichage haute résolution

J'exécute Gnome Shell avec un moniteur 4k et il y a quelques applications que j'utilise qui ne s'adaptent pas du tout avec la haute résolution.

Voici un exemple de LMMS, une application qui n’a pas encore été portée à Qt 5 et qui n’a donc pas de capacités d’échelle ppp élevées:

Screenshot
(Cliquez sur les images pour agrandir)

Existe-t-il un moyen de redimensionner une fenêtre X spécifique sans modifier la résolution d'affichage?

Ma solution actuelle consiste à réduire de moitié la taille de la résolution de mon écran, mais cela dégrade la résolution de toutes les autres applications prenant en charge la mise à l'échelle ppp correcte:

Screenshot

26
MetaDark

J'ai finalement réussi à trouver une solution qui redimensionne les anciennes applications sans aucune dégradation notable des performances visuelles ou visuelles.

Grâce à kaueraal, vous pouvez maintenant adapter d’anciennes applications à l’aide de run_scaled. Vous pouvez obtenir le script à partir de sa page GitHub ou via AUR run_scaled-git si vous utilisez Arch Linux.

Voici un exemple de deux applications fonctionnant côte à côte:

  • Firefox avec support HiDPI à gauche
  • LMMS s'exécutant avec run_scaled à droite

enter image description here

J'ai découvert ce script via le Arch Linux Wiki .

18
MetaDark

Sans voir le problème exact que vous rencontrez, je suggère d'utiliser

GDK_SCALE=x

ou

GDK_DPI_SCALE=x

Avant de commencer chaque application. Vous devrez probablement modifier manuellement les fichiers .desktop ou exécuter à partir de votre shell en préfixant les commandes avec GDK_SCALE=x

GDK_SCALE n'autorise que les valeurs entières, cependant GDK_DPI_SCALE=x permet l'utilisation de valeurs décimales telles que i.e .GDK_DPI_SCALE=0.66

Pour les autres applications basées sur le SDK, il existe probablement des paramètres similaires pour les kits respectifs. Cependant, puisque votre problème concerne gnome desktop, je vais vous fournir cette solution.

Je n'ai pas essayé avec un moniteur 4k, mais l'exécution de GDK_DPI_SCALE=1.66 gnome-calculator démontrera la solution.

Source: https://developer.gnome.org/gtk3/stable/gtk-x11.html

6
Maeve Kennedy

J'ai une application qui génère de nombreuses fenêtres et je ne peux pas utiliser pour le moment xpra comme le requiert la solution run_scaled acceptée. Je ne tolère pas non plus la mise à l'échelle 2x de gnome-Tweak-tool. Trop énorme. Besoin de 1.5x.

J'ai découvert que le client Java tigerVNC prend en charge une échelle d'affichage côté client de 150%.

Je lance donc un vncserver avec une taille de 2/3 et un gestionnaire de fenêtres minimal:

vncserver -geometry 2520x1380 -xstartup ~/.vnc/xstartup-mwm

Je me connecte ensuite avec le client Java v1.7 de TigerVNC (la version 1.8.0 plante constamment pour moi):

Java -jar VncViewer-1.7.0.jar -ScalingFactor=150

Outre la ligne de commande, vous pouvez appuyer sur F8 pour obtenir les options de la visionneuse VNC. Écran-> Facteur d'échelle-> 150%. Cela permet d’échelonner la résolution des 2/3 de 4k à 4k.

enter image description here

MWM archaïque en VNC avec 150% d'échelle à gauche. Bureau Gancy fantaisie (natif) sur la droite, pas de mise à l'échelle. Vous remarquerez les petites icônes. Par ailleurs, Gnome est ajusté pour 4k avec 1,5 x l’échelle de police dans gnome-Tweak-tool, mais les icônes ne sont pas à l’échelle. Ceci est juste un exemple d'application - les icônes et la mise à l'échelle de l'application qui me poussent de cette façon sont bien pires.

Malheureusement, il s’agit d’un bureau entièrement mis à l’échelle 1,5x avec un gestionnaire de fenêtres séparé. Cela crée un joli espace muré pour mon application multi-fenêtres, mais il est ennuyeux d'avoir un deuxième gestionnaire de fenêtres. Néanmoins, VNC est quelque chose que je connais bien avec une utilisation de longue date, et cela cède facilement à l'ordinateur portable, donc c'est peut-être utilisable.

2
stevesliva

Vncdesk vous donne une solution basée sur un client-serveur VNC local (voir ici )

Ce n'est pas une solution complète pour moi car cela pose certains problèmes si l'application a besoin d'un gestionnaire de fenêtres.

1
Sergio Llorente