Wie skaliere ich den i3 Window Manager für mein HiDPI-Display?


36

Ich habe ein Dell XPS 13 9343 2015 mit einer Auflösung von 3200x1800 Pixeln.

Ich versuche, i3 Windows Manager zu verwenden, aber alles ist winzig und kaum lesbar.

Ich habe es geschafft, alle Anwendungen (Firefox, Terminal, etc ...) zu skalieren mit .Xresources:

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

aber i3-Schnittstelle skaliert immer noch nicht ...


Ich habe verstanden, dass dies xrandr --dpi 220das Problem lösen kann, aber ich weiß nicht, wie / wo ich es verwenden soll.

Kann mich jemand zu diesem Thema aufklären?

Antworten:


25

Sie können xrandr als jeder Benutzer ausführen, der eine X-Sitzung ausführt. Xrandr ist ein Befehlszeilenprogramm, daher führen Sie es in Ihrem Terminal aus.

Also würden Sie so etwas in Ihrem Benutzerterminal ausführen

$ xrandr --dpi 220

Können Sie erklären, warum anscheinend alle anderen Anwendungen mit Xft.dpi funktionieren, während i3 xrandr zum Festlegen der dpi benötigt?
Maletor

1
Einige Programme lesen aus der Xresources-Datei, aber i3 liest die DPI direkt vom X-Server.
Dennis Chen

4
Dies scheint bei 4.13 nicht mehr der Fall zu sein. In den Versionshinweisen heißt es, dass es mit Xresources funktioniert (wie es sollte).
Maletor

1
@maletor Correct, 4.13 und höher gelesen Xft.dpi. »Wie es sein sollte« übertreibt es jedoch, da i3 es im Allgemeinen für DPI verwenden wird, während Xftes für Schriftarten gelten soll. Im Allgemeinen ist dies jedoch für Benutzer besser geeignet. :-)
Ingo Bürk

21

Wenn Sie nur die DPI in i3 ändern möchten, können Sie den Befehl in Ihre i3-Konfigurationsdatei mit der folgenden Zeile einfügen:

exec xrandr --dpi 220

Abhängig von Ihrer Distribution finden Sie die Konfigurationsdatei an verschiedenen Stellen, jedoch häufig unter ~/.config/i3/config


16

IMHO begründet der Kommentar von @maletor zur genehmigten Antwort eine neue Antwort. Seit Version 4.13 liest i3 DPI-Informationen von Xft.dpi ( Quelle ). Damit i3 mit Bildschirmen mit hoher DPI funktioniert, müssen Sie wahrscheinlich zwei Dateien ändern.

Fügen Sie diese Zeile ~/.Xresourcesmit Ihrem bevorzugten Wert hinzu:

Xft.dpi: 120

Stellen Sie sicher, dass die Einstellungen korrekt geladen sind, wenn X in Ihrer ~/.xinitrc( Quelle ) gestartet wird :

xrdb -merge ~/.Xresources
exec i3

Beachten Sie, dass dies Auswirkungen auf andere Anwendungen (z. B. Ihr Terminal) hat, die DPI-Einstellungen von X-Ressourcen lesen.


1
Unter Ubuntu 18.04 brauchte ich keine ~/.xinitrcDatei, um dies zum Laufen zu bringen.
aparkerlue

0

Da die Bearbeitung in meiner Frage entfernt wurde (nicht sicher warum), habe ich Folgendes behoben:

Ich habe es gelöst, indem ich einfach gesagt habe:

xrandr --dpi 220
exec i3

In meinem .xinitrc.


0

Ehrlich gesagt, auf VirtualBox habe ich mein I3-Problem bei der Konfiguration der Auflösung mit einer Standard-Ubuntu / Linux-Umgebung gelöst, da die hier gewählte Antwort bei Verwendung von VirtualBox ('xrandr --dpi 220') nicht funktioniert hat - mein i3-Sitzungsfenster war gerade geschlossen. Daher habe ich die folgende Standardbefehlssequenz zum Konfigurieren der Auflösung verwendet:

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

Verwendung eines Teils der Ausgabe (nach dem Wort Modeline) als Parameter eines neuen Befehls

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

// Dieser letzte Befehl aktiviert die erstellte Auflösung

xrandr -s 3840x2160

Um die Konfiguration zwischen den Benutzerprotokollierungssitzungen beizubehalten, müssen natürlich die folgenden Befehle in eine .bashrc-Init-Datei geschrieben werden.

Einmal konfiguriert, ist der Modus Ansicht-> Skaliert aus dem Menü eine Option, um die 1-Pixel-Bildlaufleisten zu entfernen. Ich musste auch meine UltraHd-Anzeige als Hauptanzeige in Windows-Host konfigurieren.

Meine Lösung ist eine Kombination aus zwei Antworten über den folgenden Link: Verweis: https://askubuntu.com/questions/377937/how-to-set-a-custom-resolution

Bearbeiten: Vereinfachtes Gerät mit einem Einzeiler

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

Da das Seitenverhältnis der Bildschirmgröße für die richtige Ergebnisauflösung möglicherweise nachträglich neu bewertet / angepasst wird, ermitteln Sie die mit dem Befehl xrand erstellte Auflösung - angehängt am Ende der Ausgabe.

1) Weisen Sie die Auflösung einer bestimmten Anzeige zu -

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

2) Geben Sie die gewünschte Auflösung auf dem Display aus

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


Dies sollte wahrscheinlich ein Kommentar sein, keine Antwort.

Guter Punkt, werde es als Kommentar formulieren, werde diesen löschen, obwohl nicht ganz sicher, da dieser Ansatz bei mir nicht funktioniert hat. Wenn jemand wie ich kommt, kann er meinen Kommentar möglicherweise nicht lesen, trotzdem lasse ich es Ihnen zu Sich zu entscheiden und eine Antwort mit einem Kommentar zu versehen wie: "Ihr Ansatz hat meine Arbeiten nicht funktioniert, ('deshalb ist Ihr Ansatz falsch')" ist für mich schwerer zu schnappen, letzte Änderung, außerdem ist mir klar, dass ich noch kein Kommentar-Privileg habe ,
autsch

1
Wenn „die hier gewählte Antwort bei der Verwendung von VirtualBox nicht funktioniert hat“ das einzige war, was Sie zu sagen hatten, dann wäre ein Kommentar der richtige Ort dafür. Wenn Sie jedoch eine Antwort kennen, die für Sie funktioniert (bei Verwendung von VirtualBox), bei der die akzeptierte Antwort (hier) nicht funktioniert, sollte diese als Antwort veröffentlicht werden. Aber posten Sie nicht nur einen Link. Kopieren Sie die Antwort hier. (1: Die andere Antwort wird möglicherweise gelöscht, und 2: Wir wissen nicht, welche der Antworten auf die andere Frage Ihnen geholfen hat.) Identifizieren Sie den ursprünglichen Autor anhand seines (Benutzer-) Namens und behalten Sie den Link bei.
G-Man sagt, dass Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.