Гадкие горизонтальные линии, отображаемые в Kate и Konsole с дробным масштабированием HiDPI

18

Вот картина проблемы:

введите описание изображения здесь

Обратите внимание, что все строки текста имеют горизонтальные линии, похожие на подчеркивание. Однако это простой текстовый редактор (Кейт), и он не подчеркивает. К этому тексту не применяется форматирование.

Я выбрал текст, чтобы линии лучше отображались на фотографии. Но строки существуют даже без выделения текста. Иногда они намного гуще и темнее. Иногда они легкие. Иногда их вообще не будет, только чтобы вернуться наугад.

Konsole имеет ту же проблему. С белым текстом на черном фоне Konsole иногда показывает разноцветные горизонтальные линии. Иногда каждая строка в Konsole имеет это отвратительное и отвлекающее подчеркивание. Иногда только часть строк имеет это.

Иногда строки настолько плотные и громоздкие, что трудно читать текст. В других случаях линии мягкие, как на прилагаемой фотографии.

Впервые я увидел эту проблему около десяти месяцев назад на настольном компьютере. Я думал, что пользователь только что сделал что-то действительно сумасшедшее в настройках шрифта. Но теперь я вижу проблему на новом ноутбуке без каких-либо существенных изменений настроек по умолчанию.

Обе системы работают под управлением полностью обновленного Arch Linux KDE. На этом ноутбуке я сбросил все настройки шрифта (в Системных настройках) на значения по умолчанию. Я также сбросил внешний вид профиля Konsole на настройки по умолчанию (хотя настройки уже были по умолчанию).

Однако горизонтальные линии не исчезнут.

Приложения работают правильно (кроме того, что иногда трудно читать текст). Скопированный текст не включает горизонтальные линии. Команды в Konsole не зависят от появления горизонтальных линий. Кажется, это сбой дисплея, но он не относится ни к одному графическому процессору (влияет на Intel или NVIDIA) или к любому экрану дисплея (я тестировал разные мониторы на рабочем столе) или ко всему, что я могу определить.

За последние десять месяцев я пробовал различные исправления на соответствующем рабочем столе, но я также не исправил его на этом компьютере.

У меня есть несколько других компьютеров Arch KDE, которые не имеют проблемы.

Кто-нибудь знает, что может быть причиной этого? Кто-нибудь еще видел это?

Изменить: Пожалуйста, смотрите отчет об ошибках KDE для Konsole:
373232 - Горизонтальные линии с дробным масштабированием HiDPI

MountainX
источник
Временное решение: QT_SCREEN_SCALE_FACTORS=1 konsole. С помощью этой команды вы можете создать ссылку на приложение для настольного компьютера.
Дринору

Ответы:

9

Сообщается, что это было решено в QTBUG-66036 с версией 5.12. На момент написания этой статьи QT на Arch Linux является версией 5.11.2-1. Другие распространенные дистрибутивы также не выпустили пакеты с Qt 5.12. Однако, когда выйдет Qt 5.12, разработчики ожидают, что эта проблема будет решена.

Чтобы проверить свою версию Qt, вы можете открыть терминал и набрать:

qmake --version

Вывод будет выглядеть примерно так

QMake version 3.1
Using Qt version 5.11.1 in /usr/lib

Когда вы видите Qt версии 5.12, тогда вы можете ожидать разрешения. Если нет, сообщите разработчикам на QTBUG-66036 .

Между тем, существует обходной путь, как описано в отчете об ошибках ниже.

Действия по воспроизведению:

  1. Отображение -> Масштаб -> Коэффициент масштабирования: 1,3 (или 1,4 и т. Д.)
  2. Начать сначала
  3. Откройте Konsole или Kate, наберите материал

Обходной путь: установите коэффициент масштабирования обратно на 1,0 (или на целое число, например 2 или 3).

Похожий отчет об ошибках для Konsole здесь

373232 - Горизонтальные линии с дробным масштабированием HiDPI
https://bugs.kde.org/show_bug.cgi?id=373232

BugBuddy
источник
4
этот обходной путь абсурден на 4k +
btw
2
Да, я согласен, что обходной путь ужасен. Ждем правильного решения.
BugBuddy
обнаружил, что целочисленные факторы работают хорошо (например, 2,0, 3,0, ...)
Томасб
пожалуйста, добавьте комментарий к сообщению об ошибке: bugs.kde.org/show_bug.cgi?id=373232
MountainX
3
@tomasb - Если вы хотите, чтобы это было исправлено, рассмотрите возможность создания логина, чтобы разработчики знали, что это влияет на вас. Если вам лень это делать, вы не имеете права жаловаться на то, что обходной путь (или что-то еще) является «абсурдным». Если вы используете открытый исходный код, пожалуйста, найдите способы внести свой вклад, даже если, только голосуя или комментируя сообщения об ошибках - что угодно. Быть частью сообщества.
BugBuddy
8

Обновление до Qt 5.12 - это хорошо, но, похоже, не решает проблему сразу. В настройках профиля Konsole на вкладке «Дополнительно» измените «Межстрочный интервал» на 1 . Это исправило проблему с горизонтальными линиями для меня.

ismay7
источник
пришлось увеличить его до 5, но работало нормально. Спасибо.
User1291
2
Опция «Межстрочный интервал» недоступна в Konsole версии 19.8.
WeKa
1
Щелкните правой кнопкой
мыши
Я могу изменить межстрочный интервал до 8, но иногда есть строки. Это совсем не функциональное исправление, поскольку интервал портит интерфейс.
misantroop
2

В качестве обходного пути вы можете изменить DPI шрифтов :

  1. перейти Fonts, проверить флажокForce Fonts DPI
  2. установить соответствующее значение (я использую 144на экране 2560x1440, вы можете попробовать 192в 4K)
    • Более высокое DPI переводит на большой текст на вашем экране
  3. Установите коэффициент масштабирования дисплея обратно на 1
  4. Выйдите из системы и войдите в систему своего пользователя (или перезапустите)

На этом этапе горизонтальные линии должны исчезнуть, и вы сможете читать все на экране

Nico
источник
1
Это единственное решение, которое работает на данный момент, и оно также будет регулировать масштаб элементов пользовательского интерфейса (а не только размер шрифта). Специальная функция «Отображение шкалы» все еще не работает и заставляет несколько приложений KDE визуализировать с линейными артефактами.
Тигучи
2

Другим обходным решением является установка межстрочного интервала на 1 в меню «Настройки» -> «Изменить текущий профиль» -> «Дополнительно» -> «Функции терминала». Это почти незаметно (один лишний пиксель между строками), но исправляет проблему.

Дж. Доу
источник
0

введите описание изображения здесьвведите описание изображения здесьвведите описание изображения здесьЛучший обходной путь для меня:

  1. Используйте Breeze Dark.
  2. Масштабируется до 1,3,1,4, все, что вы хотите.
  3. Используйте альтернативы GTK. Потому что любой редактор на основе QT получит этот глюк рендеринга текста.
  4. Для Konsole я предпочитаю Tilix (который имеет минимум gtk-зависимостей, таких как 5 Мб). Для интеграции терминала Dolphin, следуйте https://bbs.archlinux.org/viewtopic.php?id=211524 . Воспользуйтесь услугой «Открыть Tilix здесь» (Вы можете скачать ее из «Конфигурация Dolphin»> «Сервисное меню»). Просто создайте папку в своем доме, как указано выше в документации сервиса. И измените свой Терминал по умолчанию из настроек KDE> Приложения по умолчанию, чтобы вы могли Shift + F4 в Tilix от Dolphin.
  5. Для Kate или Kwrite я предпочитаю Gedit или любую IDE, такую ​​как Brackets, SublimeText или Atom.
MPK99
источник
0

После следования инструкциям Нико по изменению DPI системного текста на что-то более высокое, например 144, 192 и т. Д., Есть способ снова включить масштабирование экрана, чтобы Кейт выглядела хорошо. Однако результаты могут отличаться в зависимости от среды рабочего стола.

Установите масштаб отображения на желаемое дробное значение (я использую 1,5x).

Вы можете установить переменную среды QT_SCREEN_SCALE_FACTORS=1для одного вызова Kate.

QT_SCREEN_SCALE_FACTORS=1 kate

И вы можете сделать скрипт для всех звонков Кейт

#!/bin/bash
cd $HOME
# Add home binaries directory & cd into it
mkdir -p bin && cd bin
# Symlink Kate executable as kate0
ln -s $(which kate) kate0
# Create the wrapper script
echo '#!/bin/bash' > kate
# This tells Kate to use a 1x scale factor, and to pass all arguments from wrapper
echo 'QT_SCREEN_SCALE_FACTORS=1 kate0 "$@"' >> kate
# Make the wrapper script executable
chmod +x kate

Тогда убедитесь, что $HOME/binэто у вас $PATH. Если это не так, то вы можете добавить его

export PATH="$HOME/bin:$PATH"

Добавьте это, чтобы ~/.profileсделать его постоянным.

Обратите внимание, что для того, чтобы это работало, ваши домашние сценарии должны находиться перед путем к исходному исполняемому файлу Kate (например /usr/bin) в вашей $PATHпеременной среды.

Tarocco
источник