Значки интерфейса Eclipse очень маленькие на экране с высоким разрешением в Windows 8.1

Различные иконки и кнопки в интерфейсе Eclipse (Kepler) очень и очень малы на ноутбуке с экраном 3200x1800 пикселей. Красное украшение ошибок, которое, как представляется, указывает на ошибки в файлах, трудно увидеть, если мой нос не несколько сантиметров от экрана.

Я играл с настройкой разрешения экрана и другими настройками в операционной системе (Windows 8.1), что помогает, но приводит к тому, что другие приложения слишком большие, и даже тогда значки Eclipse неудобно малы. Расширение шрифтов в настройках Eclipse (окно > предпочтения > Диалоговый шрифт) не влияет на размер значка.

Есть ли какой-либо простой способ заставить большие значки? Любая работа вокруг (я использовал лупу, но это довольно неуклюжее решение)? Должен ли я просто купить увеличительное стекло и держать его рядом с моей мышью? Может быть, кто-то должен сделать мышь с встроенным увеличительным стеклом?:)

Спасибо.

Ответ 1

Я искал решения для этой проблемы за последний месяц, но пока не нашел идеального решения. Кажется, что вокруг него должен быть способ, но я просто не могу его найти.

Я использую ноутбук с экраном 2560x1600 с настройкой увеличения 200% в Windows 8.1 (что делает его похожим на экран 1280x800, но более четким).

Приложения, поддерживающие такой режим "HiDPI", выглядят просто великолепно, но те, у которых нет (например, Eclipse), показывают маленькие значки, которые почти нечитаемы.

Я также использую устаревшую версию Visual Studio. Это не было обновлено для HiDPI (очевидно, MS хочет, чтобы я использовал более новую версию VS), но он все еще работает нормально с экранами HiDPI, так как он просто масштабирует вещи дважды - размеры значков и букв являются нормальными, но они посмотрите более низкое разрешение.

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

В конце концов, я опустил разрешение экрана на 1/4 (от 2560x1600 до 1280x800) без увеличения (от 200% до 100%) и не использовал экран с высоким разрешением, пока Eclipse не будет обновлен для поддержки так как я должен был выполнить какую-то работу, но я отчаянно жду ответа на этот вопрос.

Ответ 2

Я решил, что одним из решений будет запуск пакетной операции в JAR Eclipse, который содержит значки и удваивает их размер. После немного возиться, это сработало. Результаты довольно хороши - есть еще несколько "упрямых" значков, которые крошечные, но большинство выглядят хорошо.

Eclipse After Processing on QHD

Я собрал код в небольшой проект: https://github.com/davidglevy/eclipse-icon-enlarger

Проект работает:

  • Итерация по каждому файлу в базовом каталоге eclipse (указанном в строке аргументов)
  • Если файл является каталогом, создайте новый каталог под существующим в выходной папке (указанный в строке аргумента)
  • Если файл представляет собой PNG или GIF, double
  • Если файл является копией другого типа
  • Если файл является JAR или ZIP, создайте целевой файл и обработайте содержимое с помощью аналогичного процесса:  а. Изображения удваиваются  б. Другие файлы копируются в ZipOutputStream как есть.

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

В Dell XPS требуется около 5 минут.

Счастливые предложения/улучшения, но это действительно просто решение adhoc, пока мы ждем, когда команда Eclipse получит исправление.

Ответ 3

Для завершения я подумал, что добавлю, что эта проблема решена в Eclipse 4.6 Neon https://www.eclipse.org/downloads/index-developer.php (текущая версия разработчика). Значки выглядят немного грустными (низкое разрешение), но по крайней мере они правильно масштабируются на моем экране 4k.

Ответ 4

Я работаю на Dell XPS 15. Вместо того, чтобы набивать с разрешениями и увеличениями, и все это, я просто сделал следующее:

  • Щелкните правой кнопкой мыши значок запуска
  • Нажмите "Свойства"
  • Выберите вкладку "Совместимость"
  • Выберите "Windows XP (Service Pack 3)" для "Запустите эту программу в режиме совместимости для:".

Кажется, что все работает нормально, и дисплей выглядит хорошо (если немного размыто /pixelly ). Единственное различие, которое я вижу, это то, что строка заголовка находится в стиле Windows XP (о нет).

Мне любопытно узнать, работает ли это для других, и если у кого-нибудь возникнут проблемы.

Ответ 5

Я нашел самый простой способ создать файл манифеста, который заставляет Windows масштабировать приложение. Это размыто и не идеально, но лучше, чем почти невидимый пользовательский интерфейс! Кажется, этот метод применим и к любому приложению.

Создайте файл eclipse.exe.manifest в той же папке, что и eclipse.exe, и поместите в него следующий XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

Ответ 6

Лучший способ - отредактировать манифест exe с чем-то вроде тюнера ресурсов и добавить

    <application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings" xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware></windowsSettings></application>        

после зависимости от установки exe как dpi. Таким образом, программа будет немного неровной, но она будет в удобном размере.

Ответ 7

-SurfacePro3 -

  • Загрузите и распакуйте eclipse "32-разрядная версия".
  • Запустите "Режим Windows XP".

Ответ 8

Режим совместимости для Windows Xp, он доступен только для 32-разрядной версии Eclipse, и после запуска в этом режиме совместимости значки и текст будут иметь нужный размер, но размыты, потому что они масштабируются от собственного разрешения до разрешения экрана и при этом качество теряется.

Ответ 9

Я исправил решение @Sigh, создав (Linux) shellscript (.sh), чтобы сделать что-то подобное. Это очень грубо, жестоко и требует принятия для вашей конкретной системы. Использовать на свой страх и риск. Это может привести к поломке всей вашей установки. Сделайте резервные копии папок перед запуском этого script. Script можно улучшить.

#!/bin/bash

for J in *.jar
do
        echo "Copying $J..."
        mkdir -p "/tmp/$J"
        cp "$J" "/tmp/$J/"
        cd "/tmp/$J"

        echo "Extracting $J..."
        jar xf "$J"
        rm "$J"

        echo "Processing images..."
        find . -name "*.gif" -exec convert {} -resize 200% {} \;

        echo "Compressing $J..."
        if [ `ls .[^.]* 2>/dev/null | wc -l` = 0 ]
        then
                jar cf "$J" *
        else
                jar cf "$J" * .[!.]*
        fi
        cd -
        mv $J{,-bak}
        mv "/tmp/$J/$J" .
        rm -rf "/tmp/$J"

        echo "Done."
        echo ""
done

Запустите это в /opt/eclipse/plugins и ~/.eclipse/org.eclipse.platform_4.x.x/plugins (или каковы будут пути для вашей установки). Те же проблемы, что и при решении @Sigh: это жестокое "исправление" и прерывается после каждого обновления или новой установки.

Script можно улучшить:

  • Игнорировать файлы .jar без/значков/папки
  • Изменять размер изображений, равных 16x16, можно только после каждого обновления/установки

Требуется imagemagick.


Предостережения

  • Это не работает на всех значках.
    • Кто-нибудь знает, где находятся другие активы или почему они не изменяются? Возможно, они не .gif?
  • Значки Project Explorer перепутаны.

Исправления приветствуются!

Ответ 11

Следующее решение сработало для меня

Сначала вам нужно добавить этот раздел реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

Затем файл манифеста с тем же именем, что и исполняемый файл, должен присутствовать в той же папке, что и исполняемый файл. Файл называется eclipse.exe.manifest и состоит из:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <description>eclipse</description>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"
                               level="asInvoker"
                               ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</assembly>

вы можете найти более подробную информацию здесь

Ответ 12

Посмотрите Neon (4.6) M6 - новый и заслуживающий внимания, релиз этапа содержит некоторое автоматическое масштабирование для изображений (например, для панели инструментов).

SWT обеспечивает автоматическое масштабирование на основе разрешения

SWT теперь автоматически масштабирует изображения на мониторах с высоким разрешением DPI в Windows и Linux, аналогично поддержке Mac Retina на OS X. В отсутствие изображений с высоким разрешением, SWT автоматически масштабирует доступные изображения до убедитесь, что приложения на основе SWT, такие как Eclipse, масштабируются пропорционально разрешению монитора.

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

Эта функция может быть отключена в Windows и GTK, установив эту виртуальную машину аргумент false в eclipse.ini или в командной строке после -vmargs:

-Dswt.enable.autoScale = ложь

Автомасштабирование не может быть отключено на Mac, как это предусмотрено OS.

Предостережения: Мы знаем, что некоторые масштабированные изображения плохо смотрятся на масштабные факторы менее 200%. Это будет улучшено в M7. Кроме того, мы работая над поддержкой изображений с высоким разрешением DPI в интерфейсе платформы, так что плагин провайдеры могут добавлять иконки с высоким уровнем DPI без каких-либо изменений кода.



Или, может быть, это помогает, в Eclipse Mars API для высокого разрешения был добавлен

Добавлены новые API-интерфейсы для поддержки рендеринга изображения с высоким разрешением на мониторах с высоким разрешением. Два конструктора был добавлен в класс Image. Они принимают обратные вызовы изображения-провайдера которые позволяют клиентам предоставлять версии изображений, зависящие от разрешения:

public interface ImageDataProvider {
  public ImageData getImageData (int zoom);
}
public interface ImageFileNameProvider {
  public String getImagePath (int zoom);
}

В зависимости от конфигурации пользовательского монитора SWT запрашивает изображения с соответствующим уровнем масштабирования. Вот пример, который отображает 3 оригинальные изображения, а затем варианты, изменения разрешения которых в зависимости от вашего разрешения монитора: Snippet367.java.

Обратите внимание, что это только первый шаг для поддержки высокого разрешения изображений в приложениях SWT и Eclipse. Ведется работа по принять новые API-интерфейсы на платформе. Кроме того, больше работы в SWT требуется для правильной поддержки рисования изображений с высоким разрешением через ГХ.

API для поддержки монитора с высоким разрешением DPI
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html

Ответ 13

Спасибо, вздох Дэвид Леви. Я не мог развиваться на Eclipse без вашего sol'n. Я должен был добавить улов (исключений) coupla к вашему коду, чтобы заставить его работать:

            while (srcEntries.hasMoreElements()) {
                    ZipEntry entry = (ZipEntry) srcEntries.nextElement();
                    logger.info("Processing zip entry ["+ entry.getName() + "]");

                    ZipEntry newEntry = new ZipEntry(entry.getName());


                    try { outStream.putNextEntry(newEntry); } 
                    ***catch (Exception e) { 
                        logger.error("error: ", e);
                        outStream.closeEntry();
                        continue;*
                    }**

Ответ 14

Есть хорошая статья в JaxEnter для работы вокруг HiDPI для Eclipse

Ответ 15

Что работало для меня в конце, было добавление файла манифеста в файл javaw.exe, как Хейкки Джунтунен, на https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c66

Инструкции по редактированию реестра и созданию файла манифеста, написанного Мэтью Кокраном на https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c60 и @KItis написало инструкции здесь

Я разместил здесь копию этого сообщения:


Сначала вам нужно добавить этот раздел реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

Затем файл манифеста с тем же именем, что и исполняемый файл, должен присутствовать в той же папке, что и исполняемый файл. Файл называется eclipse.exe.manifest и состоит из:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <description>eclipse</description>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"
                               level="asInvoker"
                               ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</assembly>

Ответ 16

Вот мое решение Вдохновленный решением @Sigh (этот не использует maven):

https://github.com/gitAmrit/EclipseIconEnlarger/tree/master#eclipseiconenlarger

Это работает, ища все изображения, меньшие или равные 16x16px, и масштабирование их тем, что хочет пользователь.

запуск утилиты: java images.EclipseIconEnlarger eclipseBasePath magnificaitonfactor

например: java images.EclipseIconEnlarger C:\Users\Amrit\Codes\eclipse 2

eclipseBasePath = путь, где находится eclipse.exe, например. C:\Users\Amrit\Codes\eclipse magnificationfactor = коэффициент, по которому изображение должно быть увеличено, например. 2 = double

Ответ 17

Здесь другое решение командной строки, но это работает для Windows.

Он требует установки winrar (отредактируйте строку set winrar, чтобы указать на установку winrar).

Он также требует установки imagemagick и его пути для добавления в вашу командную строку.

Один последний комментарий - я рекомендую запустить его перед тем, как открывать Eclipse в первый раз (то есть, для новой установки). Есть значки, которые автоматически распаковываются из банок и сохраняются в eclipse/configuration/org.eclips.osgi/... (потенциально среди других папок) и редактирование файла .jar не позволяет изменять размер значка. Возможно, вы сможете удалить эту папку, и она может снова автоэкстракцию, но я не могу подтвердить.

Чтобы запустить, просто создайте файл doubler.bat в каталоге eclipse/plugins и измените размер любого значка размером меньше 32x32 до этого размера.

Здесь код:

@echo off
set winrar="C:\Program Files\WinRAR\winrar.exe"
set startpath=%~dp0

::All *.jar in this folder
FOR %%G in (*.jar) do (call :EachJar "%%G")

GOTO :eof

:EachJar
  ::echo %1
  set nameWOQuotes=%~1
  mkdir "tmp\%nameWOQuotes%"
  ::copy "%nameWOQuotes%" "tmp\%nameWOQuotes%.bak" >NUL
  %winrar% x -inul "%nameWOQuotes%" *.jpg *.gif *.png *.tif *.tiff "tmp\%nameWOQuotes%\"
  ::pause
  cd "tmp\%nameWOQuotes%"
  FOR /R .\ %%H in (*.jpg *.gif *.png *.tif *.tiff) do ( 
    ::echo %nameWOQuotes%-%%~nxH >> "%startpath%\output.txt"
    identify "%%H" >> "%startpath%\output.txt"
   convert "%%H" -resize 32x32^< "%%H" )
  %winrar% a -r -u "%startpath%\%nameWOQuotes%" "*"
  cd "%startpath%"
  rmdir /s /q "tmp\%nameWOQuotes%"
Goto :eof

Создает файл output.txt и вставляет все метаданные ORIGINAL images перед его преобразованием независимо от того, изменил ли он размер.

Ответ 18

Если вы не хотите устанавливать более новую версию eclipse

Как упоминалось здесь, в файле eclipse.init добавьте -Dswt.autoScale=exact после -vmargs, и вам хорошо идти.

Здесь exact масштабирует значки до собственного масштабирования. Но вам придется приспосабливаться к размытым и неровным значкам.

Ответ 19

У меня возникла эта проблема, когда я изменил свой язык по умолчанию на Windows 10 с английского языка на итальянский, при этом Eclipse был установлен, когда языком по умолчанию был Eng. Возвращение языка Windows к Eng и перезагрузка решили проблему. Я не знаю, что произошло, Windows переименовывает некоторые папки, такие как C:\Users, переводя их на языке по умолчанию (т.е. C:\Utenti), и, возможно, это вызывает проблемы.

Ответ 20

Jae выше решение работало для меня. Явное решение не сработало для меня. Спасибо, Дже.

Настройка: на моих Windows 8.1 64-разрядный ноутбук без планшета Я загрузил eclipse 64-разрядный бит с 64-разрядным кодом jdk.

  • Щелкните правой кнопкой мыши на рабочем столе, чтобы получить разрешение экрана и опуститься дисплей с разрешением экрана от 3000 до 2048 x 1152.
  • Нажмите, чтобы сделать текст и другие элементы более крупными или меньшими ссылками и изменил его на большие 150% вместо дополнительных сверхбольших - 250%.
  • Вышел из системы и зашел в систему.
  • Перезапустить Eclipse, и значки теперь видны, даже если они немного меньше, но гораздо более разборчивым.