Я использую 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
решение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