Масштабирование окна приложения в Xorg для отображения с высоким разрешением

28

Я использую Gnome Shell с монитором 4k, и я использую несколько приложений, которые вообще не масштабируются с высоким разрешением.

Вот пример LMMS, приложения, которое еще не было портировано Qt 5, поэтому у него нет возможностей масштабирования с высоким разрешением:

Скриншот
(Нажмите на изображение, чтобы увеличить)

Есть ли способ масштабировать конкретное окно X без изменения разрешения экрана?

Мое текущее решение состоит в том, чтобы вдвое уменьшить разрешение экрана, но это ухудшает разрешение любого другого приложения, которое поддерживает правильное масштабирование точек на дюйм:

Скриншот

MetaDark
источник

Ответы:

20

Мне, наконец, удалось найти решение, которое масштабирует старые приложения без какого-либо заметного ухудшения качества изображения или производительности.

Благодаря kaueraal, теперь вы можете масштабировать старые приложения, используя run_scaled. Вы можете получить скрипт на его странице GitHub или через AUR,run_scaled-git если вы используете Arch Linux.

Вот пример двух приложений, работающих рядом:

  • Firefox с поддержкой HiDPI слева
  • LMMS работает с run_scaledсправа

введите описание изображения здесь

Я обнаружил этот скрипт через Arch Linux Wiki .

MetaDark
источник
На Ubuntu вам нужно установитьxpra
Pablo A
Эта программа действительно сильно загружает процессор.
L29Ah
6

Не видя точную проблему, с которой вы сталкиваетесь, я бы предложил использовать

GDK_SCALE=x

или

GDK_DPI_SCALE=x

Перед началом каждого приложения. Скорее всего, вам придется вручную изменять .desktopфайлы или запускать из своей оболочки с префиксами команд:GDK_SCALE=x

GDK_SCALEдопускаются только значения типа integer, но GDK_DPI_SCALE=xдопускаются десятичные значения, такие как ieGDK_DPI_SCALE=0.66

Для других приложений на основе SDK, вероятно, существуют аналогичные настройки для соответствующих наборов. Однако, поскольку ваша проблема связана с рабочим столом gnome, я предоставлю это решение.

Я не пробовал с 4k монитором, но запуск GDK_DPI_SCALE=1.66 gnome-calculatorпокажет решение.

Источник: https://developer.gnome.org/gtk3/stable/gtk-x11.html

Мейв Кеннеди
источник
1
Спасибо за ответ, но это не работает для приложений Xlib.
Ho1
3
Спасибо за ответ, но это не совсем то, что я ищу. Проблемы с масштабированием возникают только у приложений, которые не используют GTK3. Я надеялся найти решение, которое можно было бы применить к любому X-приложению.
MetaDark
wiki.archlinux.org/index.php/HiDPI содержит информацию, которая может быть полезна как для приложений GTK, так и для других приложений. Я бы сделал за это ответ, но я не хочу переписывать информацию в ответном сообщении.
Эммали Уилсон
2

У меня есть приложение, которое порождает много окон, и в данный момент я не могу использовать его, xpraкак того требует принятое решение run_scaled. Я также не могу терпеть 2x масштабирование gnome-tweak-tool. Слишком огромный. Нужно 1,5х.

Я обнаружил, что Java-клиент tigerVNC поддерживает масштабирование отображения на стороне клиента до 150%.

Поэтому я запускаю vncserver с размером 2/3 и минимальным менеджером окон:

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

Затем я соединяюсь с Java-клиентом TigerVNC v1.7 (1.8.0 постоянно вылетает для меня):

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

Помимо командной строки, вы можете нажать, F8чтобы получить VNC Viewer Options. Экран-> Коэффициент масштабирования-> 150%. Это масштабирует разрешение от 2/3 до 4k.

введите описание изображения здесь

Архаический MWM в VNC с 150% масштабированием слева. Необычный рабочий стол Gnome (родной) справа, без масштабирования. Вы заметите крошечные значки. В противном случае Gnome настроен на 4k с 1,5-кратным масштабированием шрифта в gnome-tweak-tool, но значки не масштабируются. Это только пример приложения - значки и масштабирование в приложении, которое подталкивает меня к этому, намного хуже.

К сожалению, это весь 1.5x масштабированный рабочий стол с отдельным оконным менеджером. Это создает хорошую изолированную область для моего многооконного приложения, но раздражает наличие второго оконного менеджера. Тем не менее, VNC - это то, с чем я знаком по многолетнему использованию, и это довольно легко переносит ноутбук, так что, возможно, его можно использовать.

stevesliva
источник
1

Vncdesk предлагает решение на основе локального клиент-сервера VNC (см. Здесь )

Это не полное решение для меня, потому что оно создает некоторые проблемы, если приложение нуждается в оконном менеджере.

Серхио Льоренте
источник