Como dimensiono o gerenciador de janelas i3 para o meu monitor HiDPI?

36

Eu tenho um Dell XPS 13 9343 2015 com uma resolução de 3200x1800 pixels.

Estou tentando usar o i3 windows manager nele, mas tudo é minúsculo e dificilmente legível.

Consegui dimensionar todas as aplicações (Firefox, terminal, etc ...) usando .Xresources:

! Fonts {{{
Xft.antialias: true
Xft.hinting:   true
Xft.rgba:      rgb
Xft.hintstyle: hintfull
Xft.dpi:       220
! }}}

mas a interface i3 ainda não escala ...


Entendi que isso xrandr --dpi 220pode resolver o problema, mas não sei como / onde usá-lo.

Alguém pode me esclarecer sobre esse assunto?

hg8
fonte

Respostas:

25

Você pode executar o xrandr como qualquer usuário que esteja executando uma sessão X. O Xrandr é um programa de linha de comando, portanto você o executa no seu terminal.

Então, você executaria algo assim no seu terminal de usuário

$ xrandr --dpi 220
Dennis Chen
fonte
Você pode explicar por que todos os outros aplicativos funcionam com o Xft.dpi, enquanto o i3 exige que o xrandr defina o dpi?
maletor
1
Alguns programas são lidos no arquivo Xresources, mas o i3 obtém sua leitura de DPI diretamente do servidor X.
Dennis Chen
4
Parece que esse não é mais o caso da versão 4.13. As notas de versão afirmam que ele funciona com o Xresources (como deveria).
maletor
1
@maletor Correto, 4.13 e posterior Xft.dpi. Porém, »como deveria« está exagerando, já que o i3 o utilizará para DPI em geral, enquanto Xftse aplica às fontes. Geralmente, os usuários se adaptam melhor dessa maneira. :-)
Ingo Bürk
21

Se você deseja alterar apenas o DPI no i3, você pode colocar o comando no seu arquivo de configuração do i3 com a linha:

exec xrandr --dpi 220

Dependendo da sua distribuição, você encontrará o arquivo de configuração em diferentes locais, mas geralmente em ~/.config/i3/config

jkf
fonte
16

IMHO o comentário de @maletor à resposta aprovada justifica uma nova resposta. Desde a versão 4.13, o i3 lê as informações de DPI do Xft.dpi ( fonte ). Portanto, para configurar o i3 para funcionar com telas de alto DPI, você provavelmente precisará modificar dois arquivos.

Adicione esta linha ao ~/.Xresourcesseu valor preferido:

Xft.dpi: 120

Verifique se as configurações estão carregadas corretamente quando o X iniciar na sua ~/.xinitrc( fonte ):

xrdb -merge ~/.Xresources
exec i3

Observe que isso afetará outros aplicativos (por exemplo, o seu terminal) que lêem as configurações de DPI dos recursos X.

Nagasaki45
fonte
1
No Ubuntu 18.04, eu não precisava de um ~/.xinitrcarquivo para fazer isso funcionar.
aparkerlue 22/02
0

Como a edição na minha pergunta foi removida (não sei por que), eis como eu a corrigi:

Eu o resolvi simplesmente colocando:

xrandr --dpi 220
exec i3

No meu .xinitrc.

hg8
fonte
0

Sinceramente, no VirtualBox, resolvi meu problema I3 configurando a resolução de uma maneira padrão no ambiente ubuntu / linux, porque a resposta escolhida aqui não funcionou para mim ao usar o VirtualBox ('xrandr --dpi 220') - minhas janelas de sessão do i3 eram apenas fechado. Então, usei a seguinte sequência padrão de comandos para configurar a resolução:

cvt 3840 2160 60
// Output: -> Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

Usando parte da saída (após a palavra Modeline) como parâmetro de um novo comando

xrandr --newmode "3840x2160_60.00"  3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
xrandr --addmode VGA-1 3840x2160_60.00

// este último comando ativa a resolução criada

xrandr -s 3840x2160

Para preservar a configuração entre as sessões de log do usuário, é necessário colocar os seguintes comandos em um arquivo init .bashrc.

Uma vez configurado, para se livrar dos espaços das barras de rolagem de 1 pixel, a opção Exibir-> Modo em escala do menu é a opção. Também devo configurar meu monitor UltraHd como um monitor principal no host do Windows.

Minha solução é uma combinação de duas respostas no seguinte link: Referência: https://askubuntu.com/questions/377937/how-to-set-a-custom-resolution

Edit: appliance simplificado contendo um one-liner

eval $(cvt 2220 1250 60 |sed 's/Modeline/xrandr --newmode /g'|sed -n '1!p')

como um resultado adequado, a proporção do tamanho da tela da resolução pode ser reavaliada / ajustada posteriormente; portanto, descubra a resolução criada pelo comando xrand - anexada no final da saída,

1) atribua a resolução a uma tela específica -

xrandr --addmode VGA-1 "2224x1250_60.00"

2) produza a resolução desejada no visor

xrandr --output VGA-1 --mode "2224x1250_60.00"

FantomX1
fonte
Provavelmente deve ser um comentário, não uma resposta.
bom ponto, colocá-lo como comentário, excluirá este, embora não esteja totalmente certo, porque essa abordagem não funcionou para mim. Se alguém como eu vier, ele poderá não ler meu comentário, de qualquer forma, deixo-o decidir e colocar um comentário em uma resposta como: "Sua abordagem não funcionou no meu trabalho, ('portanto, você está errado')" é mais difícil de ofegar para mim, última edição, além disso, percebo que ainda não tenho privilégio de comentar , ouch
FantomX1
1
Se “a resposta escolhida aqui não funcionou para mim ao usar o VirtualBox” era a única coisa que você tinha a dizer, um comentário seria o lugar certo para isso. Mas, se você souber uma resposta que funcione para você (ao usar o VirtualBox), onde a resposta aceita (aqui) não funciona, ela deverá ser postada como resposta. Mas não poste apenas um link; copie a resposta aqui. (1: a outra resposta pode ser excluída e 2: não sabemos qual das respostas para a outra pergunta é a que o ajudou.) Identifique o autor original pelo nome (usuário) e mantenha o link.
G-Man diz 'Reinstate Monica'