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

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

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

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

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

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

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

Скриншот

решение1

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

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

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

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

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

Я обнаружил этот сценарий черезАрч Линукс Вики.

решение2

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

GDK_SCALE=x

или

GDK_DPI_SCALE=x

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

GDK_SCALEразрешаются только целочисленные значения, однако 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

решение3

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

Для меня это не полное решение, поскольку оно создает некоторые проблемы, если приложению требуется оконный менеджер.

решение4

Думаю, я нашел решение с ускорением на GPU! Установите westonи запустите это:

weston --xwayland --scale=2
DISPLAY=:1 your_app

Вот и все!

Настройка

Примечание 1: Вы могли заметить, что было использовано магическое число, DISPLAY=:1. Здесь предполагалось, что ваш основной дисплей xorg — :0. Если это не так, внесите соответствующие изменения.

Примечание 2: Вы могли заметить, что westonпо умолчанию есть верхняя панель. Возможно, вы захотите ее удалить. Для этого создайте weston.iniфайл:

[core]
idle-time=0

[shell]
panel-position=none
locking=false

И используйте его при запуске weston weston --config=/path/to/weston.ini. Вы также можете поместить его в ~/.config/weston.iniтак, чтобы weston автоматически его подхватил, пожалуйста, обратитесь к man weston.iniдля получения более подробной информации.

EDIT: Я также задокументировал недавно найденный подход здесь:https://wiki.archlinux.org/title/HiDPI#Неподдерживаемые_приложения,_через_weston

Связанный контент