Skalowanie okna dla aplikacji w Xorg dla wyświetlania w wysokiej rozdzielczości

28

Używam Gnome Shell z monitorem 4k i jest kilka aplikacji, których używam, które nie skalują się wcale przy wysokiej rozdzielczości.

Oto przykład LMMS, aplikacji, która nie została jeszcze przeniesiona Qt 5, więc nie ma możliwości skalowania w wysokiej rozdzielczości:

Zrzut ekranu
(Kliknij zdjęcia, aby powiększyć)

Czy istnieje sposób skalowania określonego okna X bez zmiany rozdzielczości wyświetlania?

Moje obecne rozwiązanie to połowa wymiarów mojej rozdzielczości wyświetlania, ale to obniża rozdzielczość każdej innej aplikacji, która obsługuje prawidłowe skalowanie dpi:

Zrzut ekranu

MetaDark
źródło

Odpowiedzi:

20

W końcu udało mi się znaleźć rozwiązanie, które skaluje stare aplikacje bez zauważalnego pogorszenia wyglądu lub wydajności.

Dzięki kaueraal możesz teraz skalować stare aplikacje run_scaled. Możesz uzyskać skrypt ze strony GitHub lub AUR,run_scaled-git jeśli korzystasz z Arch Linux.

Oto przykład dwóch działających równolegle aplikacji:

  • Firefox z obsługą HiDPI po lewej stronie
  • LMMS działa run_scaledpo prawej stronie

wprowadź opis zdjęcia tutaj

Odkryłem ten skrypt za pośrednictwem Arch Arch Wiki .

MetaDark
źródło
Na Ubuntu musisz zainstalowaćxpra
Pablo A
Ten program bardzo mocno zużywa procesor.
L29Ah
6

Nie widząc dokładnego problemu, na jaki napotykasz, sugerowałbym użycie

GDK_SCALE=x

lub

GDK_DPI_SCALE=x

Przed rozpoczęciem każdej aplikacji. Najprawdopodobniej będziesz musiał ręcznie zmienić .desktoppliki lub uruchomić z powłoki poprzedzając polecenia poleceniemGDK_SCALE=x

GDK_SCALEzezwalaj tylko na wartości liczbowe, ale GDK_DPI_SCALE=xdopuszczaj wartości dziesiętne, takie jak npGDK_DPI_SCALE=0.66

W przypadku innych aplikacji opartych na SDK istnieją prawdopodobnie podobne ustawienia dla odpowiednich zestawów. Ponieważ jednak masz problem z pulpitem gnome, przedstawię to rozwiązanie.

Nie próbowałem z monitorem o rozdzielczości 4k, ale uruchomienie GDK_DPI_SCALE=1.66 gnome-calculatordemonstruje rozwiązanie.

Źródło: https://developer.gnome.org/gtk3/stable/gtk-x11.html

Maeve Kennedy
źródło
1
Dzięki za odpowiedź, ale to nie działa w aplikacjach Xlib.
Ho1
3
Dziękuję za odpowiedź, ale tak naprawdę nie tego szukam. Występują tylko problemy ze skalowaniem w aplikacjach, które nie używają GTK3. Miałem nadzieję znaleźć rozwiązanie, które można by zastosować do dowolnej aplikacji X.
MetaDark,
wiki.archlinux.org/index.php/HiDPI zawiera informacje, które mogą być pomocne zarówno dla aplikacji GTK, jak i innych niż GTK. Odpowiedziałbym na to, ale nie chcę transkrypcji informacji na post z odpowiedzią.
Emmaly Wilson
2

Mam aplikację, która odradza wiele okien i nie mogę w tej chwili korzystać z niej, xprajak wymaga tego zaakceptowane rozwiązanie run_scaled. Nie mogę również tolerować skalowania 2x gnome-tweak-tool. Za duże. Potrzebujesz 1,5x.

Odkryłem, że klient Java TigerVNC obsługuje skalowanie wyświetlania po stronie klienta o 150%.

Tak więc uruchamiam serwer vncserver o rozmiarze 2 / 3rds i minimalnym menadżerze systemu Windows:

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

Następnie łączę się z klientem JavaV1.7 TigerVNC (1.8.0 ciągle się zawiesza):

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

Oprócz wiersza poleceń możesz nacisnąć, F8aby uzyskać opcje przeglądarki VNC. Ekran-> Współczynnik skalowania-> 150%. Skaluje to rozdzielczość z 2 / 3rds od 4k do 4k.

wprowadź opis zdjęcia tutaj

Archaiczny MWM w VNC ze skalowaniem 150% po lewej stronie. Fancy Gnome desktop (natywny) po prawej stronie, bez skalowania. Zauważysz małe ikony. Gnome jest inaczej dostosowywany do 4k z 1,5-krotnym skalowaniem czcionek w gnome-tweak-narzędziu, ale ikony nie skalują się. To tylko przykładowa aplikacja - ikony i skalowanie w aplikacji, która popycha mnie w ten sposób, są znacznie gorsze.

Niestety jest to cały pulpit ze skalą 1,5x z osobnym menedżerem okien. Tworzy fajne otoczenie dla mojej aplikacji z wieloma oknami, ale denerwujące jest posiadanie drugiego menedżera okien. Niemniej jednak VNC jest czymś znanym od długiego użytkowania, a to dość łatwo przenosi się na laptopa, więc być może jest to użyteczne.

stevesliva
źródło
1

Vncdesk oferuje rozwiązanie oparte na lokalnym kliencie-serwerze VNC (patrz tutaj )

Nie jest to dla mnie kompletne rozwiązanie, ponieważ daje pewne problemy, jeśli aplikacja potrzebuje menedżera okien.

Sergio Llorente
źródło