Jak skalować menedżera okien i3 dla mojego wyświetlacza HiDPI?


36

Mam Dell XPS 13 9343 2015 o rozdzielczości 3200 x 1800 pikseli.

Próbuję użyć na nim menedżera systemu Windows i3, ale wszystko jest małe i mało czytelne.

Udało mi się skalować wszystkie aplikacje (Firefox, terminal itp.) Za pomocą .Xresources:

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

ale interfejs i3 nadal nie skaluje się ...


Zrozumiałem, że xrandr --dpi 220może to rozwiązać problem, ale nie wiem, jak / gdzie go użyć.

Czy ktoś może mnie oświecić w tej sprawie?

Odpowiedzi:


25

Możesz uruchomić xrandr jak każdy użytkownik prowadzący sesję X. Xrandr to program wiersza poleceń, więc uruchamiasz go w swoim terminalu.

Więc uruchomiłbyś coś takiego w swoim terminalu użytkownika

$ xrandr --dpi 220

Czy możesz wyjaśnić, dlaczego wydaje się, że wszystkie inne aplikacje działają z Xft.dpi, podczas gdy i3 wymaga xrandr do ustawienia dpi?
maletor

1
Niektóre programy czytają z pliku Xresources, ale i3 pobiera odczyt DPI bezpośrednio z serwera X.
Dennis Chen,

4
Wygląda na to, że tak już nie jest w przypadku 4.13. Informacje o wersji mówią, że działa z Xresources (tak jak powinno).
maletor

1
@maletor Prawidłowy, 4.13 i nowszy Xft.dpi. Jednak „tak, jak powinno” to przesadza, ponieważ i3 będzie go używał ogólnie do DPI, podczas gdy Xftpowinien mieć zastosowanie do czcionek. Generalnie jednak bardziej odpowiada użytkownikom w ten sposób. :-)
Ingo Bürk

21

Jeśli chcesz zmienić DPI tylko w i3, możesz umieścić polecenie w pliku konfiguracyjnym i3 z linią:

exec xrandr --dpi 220

W zależności od dystrybucji plik konfiguracyjny znajdziesz w różnych miejscach, ale często poniżej ~/.config/i3/config


16

IMHO komentarz @maletor do zatwierdzonej odpowiedzi uzasadnia nową odpowiedź. Od wersji 4.13 i3 odczytuje informacje DPI z Xft.dpi ( źródło ). Tak więc, aby ustawić i3 do pracy z ekranami o wysokiej DPI, prawdopodobnie będziesz musiał zmodyfikować dwa pliki.

Dodaj ten wiersz do ~/.Xresourcespreferowanej wartości:

Xft.dpi: 120

Upewnij się, że ustawienia zostały poprawnie załadowane, gdy X uruchomi się w twoim ~/.xinitrc( źródłowym ):

xrdb -merge ~/.Xresources
exec i3

Pamiętaj, że wpłynie to na inne aplikacje (np. Twój terminal), które odczytują ustawienia DPI z zasobów X.


1
W systemie Ubuntu 18.04 nie potrzebowałem ~/.xinitrcpliku, aby to działało.
aparkerlue

0

Ponieważ edycja mojego pytania została usunięta (nie jestem pewien, dlaczego), oto jak to naprawiłem:

Rozwiązałem to po prostu:

xrandr --dpi 220
exec i3

W moim .xinitrc.


0

Szczerze mówiąc na VirtualBox, rozwiązałem problem z konfiguracją rozdzielczości I3 przez standardowy sposób środowiska Ubuntu / Linux, ponieważ wybrana tutaj odpowiedź nie działała dla mnie podczas korzystania z VirtualBox ('xrandr - dpi 220') - moje okna sesji i3 były właśnie zamknięte. Więc użyłem następującej standardowej sekwencji poleceń do konfiguracji rozdzielczości:

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

Wykorzystanie części wyniku (po słowie Modeline) jako parametru nowego polecenia

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

// to ostatnie polecenie aktywuje utworzoną rozdzielczość

xrandr -s 3840x2160

Aby zachować konfigurację między sesjami logowania użytkownika, należy oczywiście umieścić następujące polecenia w pliku inicjującym .bashrc.

Po skonfigurowaniu, aby pozbyć się 1-pikselowych pasków przewijania, opcja Widok-> Tryb skalowany z menu jest opcją. Nie mogę też skonfigurować mojego wyświetlacza UltraHd jako głównego wyświetlacza na hoście Windows.

Moje rozwiązanie jest kombinacją dwóch odpowiedzi z następującego linku: Odwołanie: https://askubuntu.com/questions/377937/how-to-set-a-custom-resolution

Edycja: Uproszczone urządzenie zawierające jedną linijkę

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

jako że właściwa rozdzielczość wyniku, rozmiar ekranu może być później ponownie oszacowany / dostosowany, dlatego znajdź utworzoną rozdzielczość za pomocą polecenia xrand - dołączonego na końcu wyjścia,

1) przypisać rozdzielczość do określonego wyświetlacza -

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

2) wyświetl pożądaną rozdzielczość na wyświetlaczu

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


To prawdopodobnie powinien być komentarz, a nie odpowiedź.

dobry punkt, umieści go jako komentarz, usunie ten, choć nie do końca pewny, ponieważ to podejście nie zadziałało dla mnie, jeśli ktoś taki jak ja przyjdzie, może nie przeczytać mojego komentarza, w każdym razie pozwolę ci zdecydować i skomentować odpowiedź w rodzaju: „Twoje podejście nie zadziałało w moich pracach („ dlatego, że się mylisz ”)” trudniej jest dla mnie złapać oddech, ostatnia edycja, a ponadto zdaję sobie sprawę, że nie mam jeszcze uprawnień do komentowania , ouch
FantomX1

1
Jeśli „wybrana tutaj odpowiedź nie działała dla mnie podczas korzystania z VirtualBox” była jedyną rzeczą, którą musiałeś powiedzieć, komentarz byłby dla niej właściwym miejscem. Ale jeśli znasz odpowiedź, która działa dla Ciebie (podczas korzystania z VirtualBox), gdzie zaakceptowana odpowiedź (tutaj) nie działa, to powinna zostać opublikowana jako odpowiedź. Ale nie publikuj tylko linku; skopiuj odpowiedź tutaj. (1: druga odpowiedź może zostać usunięta, a 2: nie wiemy, która z odpowiedzi na drugie pytanie była tą, która Ci pomogła). Zidentyfikuj oryginalnego autora według nazwy (użytkownika) i zachowaj link.
G-Man mówi „Przywróć Monikę”
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.