| Termin | Definicja |
|---|---|
| Terminal crashuje przy dużym DPI | Terminal crashujący przy dużym DPI wskazuje na konflikt renderowania interfejsu z ekstremalnym skalowaniem ekranu. Dlaczego skalowanie DPI może destabilizować emulator terminalaTerminal crashuje przy dużym DPI, gdy aplikacja wyświetlająca wiersz poleceń nieprawidłowo obsługuje powiększenie interfejsu. DPI, czyli liczba punktów obrazu przypadających na cal, opisuje gęstość pikseli ekranu, natomiast skalowanie systemowe zmienia logiczny rozmiar elementów interfejsu. Przy ustawieniu 150%, 200% lub wyższym system przekazuje aplikacji informacje o większych wymiarach czcionek, przycisków, marginesów i obszaru renderowania. Samo wysokie DPI nie powinno powodować awarii, ale może ujawnić błąd w emulatorze terminala, bibliotece interfejsu graficznego, sterowniku karty graficznej albo w mechanizmie obsługi wielu monitorów. Problem często dotyczy rozbieżności między pikselami fizycznymi a jednostkami logicznymi. Interfejs może zostać przeskalowany przez system, bibliotekę graficzną i sam program jednocześnie. W rezultacie obliczony obszar terminala, rozmiar czcionki monospace lub pozycja kursora mogą otrzymać nieprawidłowe wartości. Błąd może wystąpić podczas uruchamiania okna, zmiany rozdzielczości, przenoszenia terminala między monitorami o różnych współczynnikach skalowania albo przełączania trybu pełnoekranowego. W niektórych przypadkach awaria jest związana z akceleracją GPU i renderowaniem tekstu, a nie z wykonywanym poleceniem. Rozróżnienie awarii aplikacji od problemu powłokiEmulator terminala jest aplikacją graficzną, która udostępnia okno, obsługuje klawiaturę, rysuje tekst i uruchamia powłokę. Powłoka, na przykład Bash, Zsh, PowerShell lub Command Prompt, działa w niej jako osobny proces. Jeżeli zamyka się całe okno terminala, należy podejrzewać awarię emulatora, biblioteki renderującej albo sterownika. Jeżeli okno pozostaje otwarte, lecz kończy się tylko proces powłoki, przyczyna może znajdować się w konfiguracji powłoki, skrypcie startowym lub uruchamianym programie. Do rozdzielenia tych przypadków przydatne jest uruchomienie terminala z możliwie prostą konfiguracją: bez dodatkowych profili, skryptów startowych, rozszerzeń, niestandardowego motywu i alternatywnej czcionki. W systemie Windows warto sprawdzić Podgląd zdarzeń oraz raporty awarii aplikacji, a w systemach Linux przeanalizować komunikaty procesu i dziennik sesji graficznej. Nazwa modułu wskazana w raporcie, na przykład biblioteka odpowiedzialna za renderowanie tekstu lub obsługę grafiki, pomaga odróżnić błąd programu od problemu sterownika. Sam fakt, że awaria pojawia się po zmianie DPI, jest korelacją czasową i nie stanowi jeszcze dowodu konkretnej przyczyny. Testy skalowania, czcionki i akceleracji graficznejDiagnostykę należy rozpocząć od zapisania konfiguracji, przy której występuje problem: rozdzielczości ekranu, wartości skalowania, częstotliwości odświeżania, liczby monitorów, używanej czcionki oraz sposobu uruchamiania terminala. Następnie można sprawdzić, czy awaria występuje przy niższym skalowaniu, na jednym monitorze i z domyślną czcionką. Jeżeli terminal działa po zmianie tylko jednego parametru, test wskazuje obszar wymagający dalszej analizy, ale nie zastępuje aktualizacji programu ani weryfikacji raportu awarii. Osobny test powinien obejmować wyłączenie akceleracji sprzętowej, o ile dana aplikacja udostępnia taką opcję. Renderowanie terminala może korzystać z GPU do wyświetlania glifów, przezroczystości, animacji i przewijania. Wadliwy sterownik lub konflikt z warstwą kompozytora pulpitu może powodować zamknięcie programu podczas ponownego utworzenia powierzchni obrazu. Należy także sprawdzić, czy problem zależy od konkretnej czcionki. Czcionka terminalowa powinna zawierać czytelne glify o stałej szerokości; uszkodzony plik czcionki lub błąd jego rasteryzacji może ujawnić się dopiero przy dużym rozmiarze. W środowiskach Linux znaczenie ma również sposób skalowania używany przez sesję graficzną. X11 i Wayland mogą przekazywać aplikacjom informacje o skali oraz rozmiarze powierzchni w odmienny sposób, a aplikacje uruchamiane przez warstwę zgodności mogą otrzymywać dodatkowe przeliczenia. W systemie Windows istotny jest tryb świadomości DPI procesu, ponieważ system może samodzielnie wirtualizować rozmiary dla aplikacji, która nie deklaruje pełnej obsługi skalowania. Zmiana ustawienia zgodności może być testem diagnostycznym, lecz powinna być wykonana świadomie, ponieważ może pogorszyć ostrość obrazu lub zmienić zachowanie programu na innych monitorach. Naprawa konfiguracji terminala i ocena komputeraJeżeli przyczyną jest konfiguracja, rozwiązaniem może być przywrócenie ustawień domyślnych profilu, usunięcie uszkodzonego motywu, wybór innej czcionki albo wyłączenie funkcji odpowiedzialnej za akcelerację. Gdy błąd występuje po aktualizacji systemu lub sterownika, trzeba porównać zachowanie na aktualnej i poprzedniej wersji, sprawdzając jednocześnie dostępność poprawki producenta terminala. Nie należy usuwać plików konfiguracyjnych bez kopii, ponieważ mogą zawierać profile, skróty klawiszowe i ustawienia potrzebne do odtworzenia środowiska pracy. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów i komputerów PC, w tym diagnostykę problemów z oprogramowaniem, sterownikami obrazu oraz konfiguracją środowiska graficznego. W przypadku awarii terminala przy dużym DPI można sprawdzić powtarzalność błędu, zależność od monitora i ustawień skalowania, logi systemowe, sterownik grafiki oraz stan plików konfiguracyjnych. Takie rozdzielenie warstw pozwala ustalić, czy problem ogranicza się do konkretnego programu, czy wynika z szerszej niezgodności między systemem, biblioteką interfejsu i układem graficznym. |