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

После того, как я обнаружил, что используемая мной вики Ubuntu ссылается на внешние модули , было легче найти решение от rtfm.

Сводка путей установки внешних модулей

  • По умолчанию внешние модули устанавливаются с помощью modules_install в / lib / modules / $ (KERNELRELEASE) / extra / .
  • При установке внешних модулей в другом месте INSTALL_MOD_PATH используется для префикса пути установки или INSTALL_MOD_DIR используется для создания нового каталога в обычном / lib / modules / $ (KERNELRELEASE) путь.

См. Нижнюю часть этого ответа для более подробного объяснения.

Поиск внешних модулей

Чтобы сузить поиск до вышеуказанного, я использую locate для печати путей, содержащих lib / module и xargs ] в фильтрует вывод путей, не являющихся каталогами.

Наконец, grep -v используется для фильтрации вывода путей, начинающихся с / lib / modules / $ (uname -r) / kernel . При этом должны по-прежнему отображаться пути с префиксом INSTALL_MOD_PATH во время установки, например / frodo / lib / modules / $ (KERNELRELEASE) / kernel / .

Очевидно, что при этом не будет выведен путь к модулям, которые каким-то образом были установлены по совершенно странному пути. Вот команда:

locate --null "* lib / modules / $ (uname -r) *" | xargs -r0 sh -c 'для меня [-d "$ i"] && printf "% s \ n" "$ i"; done 'sh {} + | grep -v "^ / lib / modules / $ (uname -r) / kernel \ | ^ / lib / modules / $ (uname -r) $ \ | ^ / lib / modules / $ (uname -r) / build $ \ | ^ / lib / modules / $ (uname -r) / initrd $ "

Это удаляет пути в дереве из вывода, который для меня составлял 4695 строк при использовании только locate" * lib / modules / $ (uname -r) * ". Теперь вывод намного меньше и должен отображать только известные пути вне дерева:

/frodo/lib/modules/3.12.3-031203-generic
/frodo/lib/modules/3.12.3-031203-generic/kernel

Выдержки из документации Построение внешних модулей

Подробности ниже взяты из Построение внешних модулей

modules_install
    Install the external module(s). The default location is
    /lib/modules//extra/, but a prefix may
    be added with INSTALL_MOD_PATH (discussed in section 5).  

=== 5. Module Installation

Modules which are included in the kernel are installed in the
directory:

    /lib/modules/$(KERNELRELEASE)/kernel/

And external modules are installed in:

    /lib/modules/$(KERNELRELEASE)/extra/

--- 5.1 INSTALL_MOD_PATH

    Above are the default directories but as always some level of
    customization is possible. A prefix can be added to the
    installation path using the variable INSTALL_MOD_PATH:

        $ make INSTALL_MOD_PATH=/frodo modules_install
        => Install dir: /frodo/lib/modules/$(KERNELRELEASE)/kernel/

    INSTALL_MOD_PATH may be set as an ordinary shell variable or,
    as shown above, can be specified on the command line when
    calling "make." This has effect when installing both in-tree
    and out-of-tree modules.

--- 5.2 INSTALL_MOD_DIR

    External modules are by default installed to a directory under
    /lib/modules/$(KERNELRELEASE)/extra/, but you may wish to
    locate modules for a specific functionality in a separate
    directory. For this purpose, use INSTALL_MOD_DIR to specify an
    alternative name to "extra."

        $ make INSTALL_MOD_DIR=gandalf -C $KDIR \
               M=$PWD modules_install
        => Install dir: /lib/modules/$(KERNELRELEASE)/gandalf/

18
25.09.2018, 22:10
5 ответов

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

4
27.01.2020, 19:46

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

13
27.01.2020, 19:46

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

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

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

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.

1
27.01.2020, 19:46

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

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

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

4
27.01.2020, 19:46

enter image description hereenter image description hereenter image description hereЛучшее решение для меня это:

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

Теги

Похожие вопросы