Dimensionamento de janela por aplicativo no Xorg para exibição em alto dpi

Dimensionamento de janela por aplicativo no Xorg para exibição em alto dpi

Estou executando o Gnome Shell com um monitor 4k e há alguns aplicativos que uso que não são dimensionados com alta resolução.

Aqui está um exemplo de LMMS, um aplicativo que ainda não foi portado para Qt 5, portanto não possui recursos de escala de alto dpi:

Captura de tela
(Clique nas imagens para ampliar)

Existe alguma maneira de dimensionar uma janela X específica sem alterar a resolução da tela?

Minha solução atual é reduzir metade das dimensões da resolução da minha tela, mas isso degrada a resolução de todos os outros aplicativos que suportam o dimensionamento adequado de dpi:

Captura de tela

Responder1

Finalmente consegui encontrar uma solução que dimensiona aplicativos antigos sem qualquer degradação visual ou de desempenho perceptível.

Graças ao kaueraal, agora você pode dimensionar aplicativos antigos usando run_scaled. Você pode obter o script em seuPágina GitHubou como parte do xprapacote se você estiver executando o Arch Linux.

Aqui está um exemplo de dois aplicativos executados lado a lado:

  • Firefox com suporte HiDPI à esquerda
  • LMMS rodando à run_scaleddireita

insira a descrição da imagem aqui

Eu descobri esse script através doWiki do Arch Linux.

Responder2

Sem ver o problema exato que você está enfrentando, sugiro usar

GDK_SCALE=x

ou

GDK_DPI_SCALE=x

Antes de iniciar cada aplicação. Você provavelmente terá que alterar .desktopos arquivos manualmente ou executar a partir do seu shell prefixando os comandos comGDK_SCALE=x

GDK_SCALEpermitir apenas valores inteiros, mas GDK_DPI_SCALE=xpermitir valores decimais como ou sejaGDK_DPI_SCALE=0.66

Para outros aplicativos baseados em SDK, provavelmente existem configurações semelhantes para os respectivos kits. No entanto, como o seu problema é com o desktop gnome, fornecerei esta solução.

Não tentei com um monitor 4k, mas a execução GDK_DPI_SCALE=1.66 gnome-calculatordemonstrará a solução.

Fonte:https://developer.gnome.org/gtk3/stable/gtk-x11.html

Responder3

Vncdeskoferece uma solução baseada em um cliente-servidor VNC local (consulteaqui)

Não é uma solução completa para mim porque pode causar alguns problemas se o aplicativo precisar de um gerenciador de janelas.

Responder4

Acho que encontrei uma solução acelerada por GPU! Instale westone execute isto:

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

É isso!

Afinação

Nota 1: Você deve ter notado que foi usado um número mágico, DISPLAY=:1. A suposição subjacente aqui é que sua exibição principal do xorg é :0. Se não estiver, ajuste de acordo.

Nota 2: Você deve ter notado que ele westonpossui um painel superior por padrão. Você pode querer removê-lo. Para fazer isso, crie um weston.iniarquivo:

[core]
idle-time=0

[shell]
panel-position=none
locking=false

E use-o ao iniciar weston weston --config=/path/to/weston.ini. Você também pode colocá-lo ~/.config/weston.inipara que seja retirado automaticamente pelo Weston, consulte man weston.inipara obter mais detalhes.

EDIT: Também documentei a abordagem recém-descoberta aqui:https://wiki.archlinux.org/title/HiDPI#Unsupported_applications,_via_weston

informação relacionada