Come scalare i3 Window Manager per il mio display HiDPI?


36

Ho un Dell XPS 13 9343 2015 con una risoluzione di 3200x1800 pixel.

Sto cercando di utilizzare i3 windows manager su di esso, ma tutto è minuscolo e difficilmente leggibile.

Sono riuscito a ridimensionare tutte le applicazioni (firefox, terminal, ecc ...) usando .Xresources:

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

ma l'interfaccia i3 continua a non ridimensionare ...


Ho capito che xrandr --dpi 220potrebbe risolvere il problema, ma non so come / dove usarlo.

Qualcuno può illuminarmi su questo problema?

Risposte:


25

È possibile eseguire xrandr come qualsiasi utente che esegue una sessione X. Xrandr è un programma da riga di comando, quindi lo esegui nel tuo terminale.

Quindi eseguiresti qualcosa del genere nel tuo terminale utente

$ xrandr --dpi 220

Puoi spiegare perché sembra che tutte le altre applicazioni funzionino con Xft.dpi mentre i3 richiede xrandr per impostare il dpi?
Maletor,

1
Alcuni programmi leggono dal file Xresources, ma i3 ottiene la lettura DPI direttamente dal server X.
Dennis Chen,

4
Sembra che questo non sia più il caso con 4.13. Le note di rilascio affermano che funziona con Xresources (come dovrebbe).
Maletor,

1
@maletor Correct, 4.13 e versioni successive leggere Xft.dpi. "Come dovrebbe" sta sopravvalutando, tuttavia, poiché i3 lo utilizzerà per DPI in generale, mentre Xftdovrebbe applicarsi ai caratteri. In genere si adatta meglio agli utenti in questo modo. :-)
Ingo Bürk,

21

Se desideri modificare il DPI solo all'interno di i3, puoi inserire il comando nel tuo file di configurazione i3 con la riga:

exec xrandr --dpi 220

A seconda della tua distribuzione troverai il file di configurazione in luoghi diversi ma spesso sotto ~/.config/i3/config


16

IMHO il commento di @maletor alla risposta approvata giustifica una nuova risposta. Dalla versione 4.13 i3 legge le informazioni DPI da Xft.dpi ( sorgente ). Quindi, per impostare i3 in modo che funzioni con schermi DPI alti probabilmente dovrai modificare due file.

Aggiungi questa riga a ~/.Xresourcescon il tuo valore preferito:

Xft.dpi: 120

Assicurati che le impostazioni siano caricate correttamente all'avvio di X nel tuo ~/.xinitrc( sorgente ):

xrdb -merge ~/.Xresources
exec i3

Notare che influenzerà altre applicazioni (ad es. Il proprio terminale) che leggono le impostazioni DPI dalle risorse X.


1
Su Ubuntu 18.04, non avevo bisogno di un ~/.xinitrcfile per farlo funzionare.
aparkerlue,

0

Poiché la modifica nella mia domanda viene rimossa (non so perché), ecco come l'ho risolta:

L'ho risolto semplicemente mettendo:

xrandr --dpi 220
exec i3

Nel mio .xinitrc.


0

Francamente su VirtualBox, ho risolto il mio problema con I3 configurando la risoluzione con un ambiente Ubuntu / Linux standard, perché la risposta scelta qui non funzionava per me quando usavo VirtualBox ('xrandr --dpi 220') - la mia sessione i3 windows era appena chiuso Quindi ho usato la seguente sequenza standard di comandi per configurare la risoluzione:

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

Utilizzo di parte dell'output (dopo la parola Modeline) come parametro di un nuovo 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

// quest'ultimo comando attiva la risoluzione creata

xrandr -s 3840x2160

Al fine di preservare la configurazione tra le sessioni di registrazione dell'utente, è necessario inserire naturalmente i seguenti comandi in un file init .bashrc.

Una volta configurato, per sbarazzarsi di spazi di barre di scorrimento di 1 pixel, Visualizza-> Modalità ridimensionata dal menu è un'opzione. Inoltre, cappello per configurare il mio display UltraHd come display principale nell'host Windows.

La mia soluzione è una combinazione di due risposte dal seguente link: Referrence: https://askubuntu.com/questions/377937/how-to-set-a-custom-resolution

Modifica: apparecchio semplificato con un solo rivestimento

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

poiché una risoluzione del risultato corretta potrebbe essere successivamente rivalutata / adattata la dimensione dello schermo, quindi scoprire la risoluzione creata dal comando xrand - aggiunta alla fine dell'output,

1) assegnare la risoluzione a un display specifico -

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

2) emette la risoluzione desiderata sul display

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


Questo dovrebbe probabilmente essere un commento, non una risposta.

buon punto, lo inserirò come commento, lo eliminerò, anche se non del tutto sicuro, perché questo approccio non ha funzionato per me, se qualcuno come me viene, potrebbe non leggere il mio commento, comunque ti lascio fare a te decidere e inserire un commento a una risposta del tipo: "Il tuo approccio non ha funzionato nei miei lavori, (" quindi hai torto ")" è più difficile rimanere senza fiato per me, ultima modifica, inoltre mi rendo conto di non avere ancora il privilegio di commento , ahi
FantomX1,

1
Se "la risposta scelta qui non ha funzionato per me quando utilizzo VirtualBox" era l'unica cosa che dovevi dire, un commento sarebbe il posto giusto per questo. Ma, se conosci una risposta che funziona per te (quando usi VirtualBox), dove la risposta accettata (qui) non funziona, quella dovrebbe essere pubblicata come risposta. Ma non pubblicare solo un link; copia la risposta qui. (1: l'altra risposta potrebbe essere cancellata e 2: non sappiamo quale delle risposte all'altra domanda sia quella che ti ha aiutato.) Identifica l'autore originale per nome (utente) e mantieni il link.
G-Man dice "Reinstate Monica" il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.