Як виправити розширення шрифту в IntelliJ IDEA при використанні високої DPI?


79

Я використовую більш високу настройку DPI, завдяки якій IntelliJ (власне Android Studio) справді переплутав шрифти .

Я використовую MacType, який красиво видає мої шрифти в іншому місці, але я думаю, що Java VM якось перехоплює його чи щось таке, воно мене вбиває.

Відповіді:


112

Я перебуваю на дисплеї з високою точністю на дюйм, і в мене це працює з ідеальним візуалізацією шрифту, для цього вам потрібно:

  • (У Linux) Встановіть та використовуйте Oracle JDK (я використовую 1.7), а не OpenJDK (також виправлена ​​версія з шрифтом для мене була марною). Подивіться, як це зробити .

  • Відредагуйте файл конфігурації .vmoptions, який ви знайдете в папці установки Bin (наприклад, studio.vmoptions і для 64bit studio64.vmoptions , або WebStorm.exe.vmoptions тощо) відповідно до встановленої версії IDE, додавши ці рядки:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Вилучіть інформацію з підказки із шрифту, який ви хочете використовувати, та виберіть новий шрифт у налаштуваннях IntelliJ IDEA (Налаштування -> Редактор -> Шрифт);
    якщо ви не знаєте, як це зробити, встановіть FontForge тоді:

    1. Відкрийте свій шрифт у FontForge
    2. Виберіть усі гліфи через Ctrl+Aта очистіть усі підказки (Підказки -> Очистити підказки)
    3. Виберіть гліфи ще раз і використовуйте Підказки -> Очистити інструкцію
    4. Збережіть шрифт з іншою назвою (Файл -> Створити шрифти)
    5. Встановіть новий шрифт, виберіть його в IDEA

Якщо ви дотримувались наведених вище порад і у вас виникають затримки при швидкій прокрутці коду (це іноді може трапитися на дистрибутивах Linux з неоптимізованим драйвером gpu), спробуйте видалити рядок
-Dsun.java2d.xrender=true
з файлу .vmoptions .

Нарешті, ось скріншот результату:

Скріншот IDE


(шрифти, що використовуються тут, є LucidaMAC для основного IDE та Ubuntu Mono із видаленою інформацією про підказку для редактора коду)


4
Дивовижно! Працює і в Windows :)) дякую: *
Блокувати

1
Я спробував вище сказане на своїй машині Windows з привіт dpi (3200x1800), я налаштував studio.vmoptions, як згадувалося, але все ще розмито. Підкажіть, будь ласка, якщо можливо, я б дуже хотів, щоб це працювало?
Темп

10
@Pace Щоб видалити розмиті шрифти, вам потрібно відключити масштабування дисплея для цієї програми (клацніть правою кнопкою миші на її значку, виберіть Properties, перейдіть на Compatibilityвкладку та перевірте Disable DPI scaling on high DPI settings, чи для додатків x64 у програмі Win8 - слід відредагувати прапор відповідного ключа реєстру: відкрийте Regedit. exe, перейдіть HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersі додайте значення рядка REG_SZ , ім'я якого - повний шлях до виконуваного програми та значення якого HIGHDPIAWARE );)
guari

3
не можу зрозуміти підказки та вказівки щодо шрифтів у формати шрифту ... Є помилки, коли я намагаюся зберегти їх після цього ... Що я роблю неправильно
Mario Zderic

2
Ого. Все-таки корисно через рік. JetBrains повинен зробити це за замовчуванням або хоча б виконати деяке автоматичне виявлення. Розмитість без цих налаштувань робить IntelliJ жахливим і непридатним.
Ендрю Т Фіннелл

4

Я написав невеликий посібник, як це виправити.

   wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
   tar -zxvf jdk-8u5-tuxjdk-b08.tar.gz
   sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
   rm jdk-8u5-tuxjdk-b08.tar.gz

Сценарій для запуску Intellij Idea

* лише зауважте, що для вашого шляху ідеї потрібно змінити місце розташування IDEA_HOME

#!/bin/sh

IDEA_HOME=/opt/idea
export JAVA_HOME=/usr/lib/jvm/jdk-8u5-tuxjdk-b08/
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/idea.sh "$@"

Більше інформації та скріншоти кращих шрифтів: http://urshulyak.com/?p=478


Додавання -Dsun.java2d.xrender=trueдо bin/webstorm64.vmoptionsкаталогу WebStorm мені було достатньо.
Алісія

1
посилання для завантаження порушено. Виправте
jackode

Ця відповідь передбачає 64-бітну архітектуру, що може бути не так
Anwar

По суті, це довільний код, як кореневий - рекомендується обережність.
Thorbjørn Ravn Andersen

2

Я отримав подібний вигляд, просто завантаживши шрифт Menlo і встановивши редактор "Антіассейдж" на "відтінки сірого" в межах Зовнішній вигляд та поведінка> Зовнішній вигляд

Це результат:

Ось як це виглядає

Ось порівняння між двома платформами

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

Я використовую більш високу роздільну здатність і краще обладнання в роботі з MAC, тому шрифти виглядають трохи яскравіше, результат буде змінюватися в залежності від вашої машини. У будь-якому разі це варто зняти, зміни легко відновити


Частково працював для мене! Шрифти не такі чіткі, як загальний інтерфейс Mac, але досить чіткі, щоб бути працездатними. Я на 13 "Mac Pro, OS X 10.11.4
Mayank Jain

чому ти це робиш на OSX ?, ти повинен дістати потрібні шрифти з поля :)
FRR

2

Жоден з цих потворних речей більше не потрібен. Завантажте останню версію IntelliJ (2016.1 далі) для Linux. Він включає модифікований JRE з виправленою проблемою шрифтів. Щоб виправити Android Studio, також зробіть символічне посилання на jre IntelliJ:

ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre

Крім того, просто відкрийте менеджер файлів як root (припустимо, що ваші IDE встановлені в каталозі / opt або іншій системній папці) та створіть ярлик до jre IntelliJ та перемістіть його в інсталяційну папку Android Studio, а потім перейменуйте його на 'jre'. Це працює для останньої Android-студії 2.0, але вона повинна працювати і з більш ранніми версіями.


Яку версію ви маєте на увазі? Коли я переходжу до Довідки> Про, я бачу Intellij IDEA 15.0.2таBuild #IU-143.1184
заблокувати

@Bloke просто зайдіть на сайт і завантажте найновіший IntelliJ. Зараз я думаю, що це 2016.1.1. Вони змінили те, як зараз рекламують нові версії, і тепер він має формат YEAR.REVISION.UPDATE #.
Прагнув Dev

О, справді. Я щойно спробував це. Source Code ProЗараз мій шрифт виглядає занадто жирним, але це незначна проблема. Дякую!
Блок

Використання JRE, упакованого з IntelliJ, для мене змінило все. Я спочатку завантажував IntelliJ без JRE і використовував свій локальний Oracle JDK (1.7), що призводило до поганих шрифтів. HTH.
походить

2

У нових JetBrains рішення IDE відрізняється.

У папці установки IDE просто перейменуйте jre папку на щось інше. Наприклад:

  1. $ cd your-path-to/WebStorm-162.2228.20/
  2. $ mv jre/ _jre/

Новіші версії використовують пакетний JRE замість вашої системи один, і ця пакетна версія викликає проблеми з наданням шрифту .

Тут добре працює: WebStorm 2016.3.2 на Linux Kubuntu 16.04.

Скріншот WebStorm з фіксованим шрифтом


Це поховано внизу, але ЦЕ справжній винуватець. Усі вгорі зосереджені на шрифтах редактора, але у мене вже були гарні редакторські шрифти. Моєю проблемою були різні описи, підказки та модальні діалоги, які показали жахливе візуалізацію шрифту без антиалійного. Я спробував усе вище, і жодне з цього не вирішило проблему, але приховування упакованого jre зробило свою справу.
Ден

1

Якщо ви не можете зрозуміти підказки з FontForge, як пояснив Гуарі у своїй відповіді . Використовуйте Cousine (Apache License v2.00) як шрифт редактора та встановіть розмір 14. Я спробував пару інших одноразових шрифтів. Однак Cousine, здається, має кращу візуалізацію, ніж більшість інших шрифтів. Дивіться скріншот в кінці

  1. Завантажте шрифт: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Створіть новий редактор родинних шрифтів: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Витягніть файли шрифтів: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Зробити їх доступними для IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Оновіть кеш шрифту: sudo fc-cache -f -v
  6. Перезапустіть IntelliJ і виберіть Cousin як шрифт редактора
  7. Не забудьте встановити зміни, як пояснив Гуарі

Знімок екрана:


На екрані екрану не схоже на те, що він використовує функцію антизбудження.
Ztyx

Замінили скріншот на менший, щоб запобігти зменшенню масштабування. Тепер ви можете бачити, що використовується
антизіаз

1

У Windows 10 у мене були подібні проблеми. Перевірка Disable display scaling on high DPI settingsзроблених шрифтів більш гладка, але значно більша. Ось як це зробити (з попереднього коментаря іншого користувача):

Клацніть правою кнопкою миші на її значку, виберіть Properties, перейдіть на Compatibilityвкладку і перевіртеDisable DPI scaling on high DPI settings

Зайшовши в Windows Settingsі шукаючи Display Settings, існує діалогове вікно із повзунком, на якому написано Change the size of text, apps, and other items. Я перемістив його з 125% до 100% і мені довелося вийти з системи та знову увійти. Шрифти зараз невеликі та гладкі:

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

Навіть більше, якщо я знімаю прапорець Disable display scaling on high DPI settings, воно, як видається, все одно є гладким.


Це було єдине рішення, яке працювало на мене! Дякую!
DrKaoliN

0

Прийнята відповідь не працювала для мене, але я все працював, роблячи це:

Прочитавши різні підручники та поплутавшись з купою виправлень, я знайшов спосіб, який ідеально працює.

Перш за все завантажте JDK 8 з Oracle і виконайте наступні рядки в терміналі:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

Тепер завантажте виправлення шрифту JDK (надано [Уршуляк Ярослав] [2]), виконавши наступне:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

Це отримає завантажений zip та перемістить його в / usr / lib / jvm /. Тепер запустіть у терміналі наступне:

cd ~
sudo gedit .bashrc

Потім додайте наступні рядки до самого низу файлу bashrc.

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

Збережіть його, тоді gedit idea.sh. (Розташування сценарію може бути різним)

gedit /home/USER/Downloads/idea/bin/idea.sh

У самому низу сценарію замініть рядки (-и) у операторі "Хоча" внизу цими двома рядками:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

Збережіть його, тоді відкрийте IntelliJ, шрифти повинні працювати, і ви будете використовувати Oracle JDK 8 для розробки. Вам, ймовірно, доведеться відредагувати Налаштування проекту та знову встановити JDK, але обов'язково використовуйте фактичний JDK, а не виправлення шрифту.

Це виправлення також працює з CLion, Android Studio та [PyCharm.

Ці інструкції передбачають, що версія JDK була 1.8.0_25, імена файлів / шляхів будуть змінені для майбутніх версій.


Чи маєте ви уявлення, як налагодити цю роботу з PhpStorm? Дно файлу виглядає так: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a: $ IDE_HOME / lib / boot.jar" \ "$classp CLASSPATH »\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX: = $ файл помилок HOME / java_error_in_WEBIDE_% p.log "\ -Djb.restart.code = 88 -Didea.paths.selector = WebIde90 \ $ IDE_PROPERTIES_PROPERTY \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? тест $ EC -не 88 & & вихід $ EC #test $? -не 88 && break exec "$ 0" "$ @"
MichaelHindley

0

Ви можете встановити Oracle JDK-8. Тестований на ubuntu 14.04, також повинен працювати і пізніше.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Перевірте версію:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Взяв від сюди .


0

Ось як це виглядає з жахливим візуалізацією шрифту на ubuntu 16.04:

Так виглядає з жахливим візуалізацією шрифту на ubuntu 16.04

Якщо ви використовуєте IntelliJ IDEA 2016.X або новішу версію без пакетного JDK, ви можете встановити змінну середовища "IDEA_JDK", щоб вказати певний час виконання. Відображення шрифтів в ubuntu 16.04 за допомогою студії Android ідеально, тому ви можете поділитися тим же JRE з Intellij IDEA. IntelliJ спочатку шукає змінну середовища IDEA_JDK, тому встановіть її, додавши файл:

/etc/profile.d/IDEA_SDK.sh

Додайте це до файлу:

export IDEA_JDK=/opt/android-studio/jre

Відрегулюйте / opt / android-studio / jre відповідно до вашої установки. Вийдіть із системи та увійдіть назад та введіть свій ID Intellij IDE

Ось як це виглядає після використання нового JRE:

Так виглядає після використання нового JRE


-1

Я зрозумів, що згладжування phpstorm працює досить добре, використовуючи конфігурацію за замовчуванням. Порівняння двох команд показує, що єдиною різницею є phpstorm з використанням власного java (/ usr / share / phpstorm / jre64 / bin / java).

Я змінив сценарій запуску ідеї, щоб зробити його за допомогою Java phpstorm, і він спрацював, і все так добре, як і phpstorm. знімок екрана


Що змінюється? Вам потрібно встановити phpstorm для цього?
Подорожник Geek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.