понедельник, 23 мая 2016 г.

Масштабирование старого приложения на HiDPI дисплее

Новые технологии - новые проблемы. Если попытаться запустить древнее приложение на HiDPI дисплее, таком как UHD или 4K, можно получить какую-нибудь гадость. В лучшем случае все будет настолько мелким, что без лупы не разберешься. В худшем - мелким будет все кроме текста, так что пользоваться этим вообще будет невозможно. 

Вот такая ерунда у меня получилась, когда я запустил приложение, построенное на gtkdialog из gtk2:



Что же теперь, выбросить все старые приложения? Нет, так не пойдет.

Благо, в линуксах легко вывести окошко на любой дисплей. А дисплей легко создать виртуальный. Для этого можно использовать программу tightvncserver. На нее отправляем вывод окна, и подключаемся через любой VNC клиент, поддерживающий масштабирование, например KRDC. По окончанию работы не забываем вырубить tightvncserver. Вместе получается вот так:


$ tightvncserver -geometry 1024x768 :1 && ( krdc vnc://:1 & ) && DISPLAY=:1 multisystem ; tightvncserver -kill :1
А выглядит вот так:


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

Чтобы не забыть, запилил себе скрипт ~/bin/scale:

#!/bin/bash 
tightvncserver -geometry 1024x768 :1 && ( krdc vnc://:1 & ) && DISPLAY=:1 $@ 
tightvncserver -kill :1

PS: А приложение MultiSystem все равно не заработало как надо, т.к. не поддерживает нужные мне образы ISO.

Комментариев нет:

Отправить комментарий