Íconos de la interfaz Eclipse muy pequeños en la pantalla de alta resolución en Windows 8.1

Los diversos icons y botones en la interfaz de Eclipse (Kepler) son muy, muy pequeños en una computadora portátil con una pantalla de 3200x1800px. La decoración de error rojo que parece indicar errores en los archivos es difícil de ver a menos que mi nariz esté a unos centímetros de la pantalla.

He jugado con el ajuste de la resolución de pantalla y otras configuraciones en el sistema operativo (Windows 8.1), lo que ayuda, pero hace que otras aplicaciones parezcan demasiado grandes, e incluso entonces los icons de Eclipse son incómodamente pequeños. La ampliación de las fonts en las preferencias de Eclipse (ventana> preferencias> Fuente de diálogo) no afecta el tamaño del icono.

¿Hay alguna manera fácil de forzar icons más grandes? Cualquier solución alternativa (he utilizado el Ampliador, pero esa es una solución bastante torpe) ¿Debo comprar una lupa y guardarla junto a mi mouse? ¿Tal vez alguien debería hacer un ratón con una lupa incrustada? 🙂

Gracias.

He buscado soluciones para este problema durante el último mes, pero aún no he encontrado una solución ideal. Parece que debería haber una forma de evitarlo, pero simplemente no puedo encontrarlo.

Uso una computadora portátil con una pantalla de 2560×1600 con la configuración de aumento del 200% en Windows 8.1 (lo que la hace parecer una pantalla de 1280×800 pero más clara).

Las aplicaciones que admiten ese modo “HiDPI” se ven magníficas, pero las que no (por ejemplo, Eclipse) muestran pequeños icons que son prácticamente ilegibles.

También uso una versión desactualizada de Visual Studio. Eso no se ha actualizado para HiDPI (obviamente MS quiere que use una versión más nueva de VS), pero todavía funciona bien con las pantallas HiDPI, ya que simplemente aumenta las cosas dos veces: los tamaños de los icons y las letras son normales, pero parece de baja resolución.

Después de ver cómo funciona VS, comencé a buscar una forma de lanzar Eclipse en el mismo modo, ya que técnicamente no sería muy difícil escalar cosas como lo hace VS. Pensé que habría una opción que podría configurar para lanzar Eclipse en ese modo. No pude encontrarlo sin embargo.

Después de todo, terminé bajando la resolución de la pantalla a 1/4 (de 2560×1600 a 1280×800) sin aumento (de 200% a 100%) y no aprovechando la pantalla de alta resolución hasta que Eclipse se actualiza para admitirlo, ya que tuve que hacer un poco de trabajo, pero desesperadamente estoy esperando una respuesta a este problema.

Pensé que una solución sería ejecutar una operación por lotes en el JAR de Eclipse que contiene los íconos y duplicar su tamaño. Después de un poco de retoques, funcionó. Los resultados son bastante buenos: todavía hay algunos íconos “obstinados” que son pequeños pero que se ven bien.

Eclipse después de procesar en QHD

Puse el código en un pequeño proyecto: https://github.com/davidglevy/eclipse-icon-enlarger

El proyecto funciona por:

  1. Iterando sobre cada archivo en el directorio base de eclipse (especificado en la línea de argumento)
  2. Si un archivo es un directorio, cree un nuevo directorio bajo el actual en la carpeta de salida (especificada en la línea del argumento)
  3. Si un archivo es PNG o GIF, doble
  4. Si un archivo es otro tipo copia
  5. Si un archivo es un JAR o ZIP, cree un archivo de destino y procese los contenidos usando un proceso similar: a. Las imágenes se duplicaron b. Otros archivos se copian en ZipOutputStream como están.

El único problema que he encontrado con esta solución es que realmente solo funciona una vez: si necesita descargar complementos, hágalo en la ubicación original y vuelva a aplicar el ícono para boost el proceso por lotes.

En Dell XPS, demora unos 5 minutos en ejecutarse.

Feliz por las sugerencias / mejoras, pero esto es solo una solución ad hoc mientras esperamos que el equipo de Eclipse se arregle.

Para finalizar pensé que agregaría que este problema está resuelto en Eclipse 4.6 Neon https://www.eclipse.org/downloads/index-developer.php (la versión actual para desarrolladores). Los icons se ven un poco tristes (baja resolución) pero al menos están escalados correctamente en mi pantalla de 4k.

Me estoy ejecutando con Dell XPS 15. En lugar de llenarme de resoluciones y ampliaciones y todo eso, acabo de hacer lo siguiente:

  • Haga clic con el botón derecho en el icono del iniciador
  • Haga clic en “propiedades”
  • Seleccione la pestaña “compatibilidad”
  • Elija “Windows XP (Service Pack 3)” para “Ejecutar este progtwig en modo compatibilidad para:”.

Todo parece funcionar bien y la pantalla se ve bien (aunque un poco borrosa / pixel). La única diferencia que puedo ver es que la barra de título está en el estilo de Windows XP (¡oh no!).

Tengo curiosidad por saber si esto funciona para otros y si alguien encuentra algún problema.

Encontré que la manera más fácil era crear un archivo de manifiesto que obliga a Windows a escalar la aplicación. ¡Es borroso y no ideal, pero es mejor que una interfaz de usuario casi invisible! Parece que esta técnica también se aplica a cualquier aplicación.

Cree un archivo eclipse.exe.manifest en la misma carpeta que eclipse.exe y coloque el siguiente XML dentro de él:

                        false    

La mejor manera es editar el manifiesto exe con algo como sintonizador de recursos y agregar

  false 

después de la dependencia para configurar el exe como dpi inconsciente. De esta forma, el progtwig estará un poco pixelado pero tendrá un tamaño confortable.

-SurfacePro3-

  • Descarga y descomprime eclipse “Versión de 32 bits”.
  • Ejecutar en “modo Windows XP”.

La mejor solución sin esfuerzo es ir por Eclipse Neon. Todos los errores se arreglan como parte de esta versión. https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383

El modo de compatibilidad para Windows Xp, solo está disponible para la versión Eclipse de 32 bits y después de ejecutar en este modo de compatibilidad, los icons y el texto tendrán el tamaño correcto, pero serán borrosos porque están escalados desde su resolución original a la resolución de pantalla. la calidad esta perdida

Arreglé la solución de @Sigh creando un shellscript ( .sh ) (Linux) para hacer algo similar. Esto es muy crudo, brutal y requiere adopción para su sistema específico. Úselo bajo su propio riesgo. Podría romper toda tu instalación. Haga copias de seguridad de las carpetas antes de ejecutar este script. La secuencia de comandos se puede mejorar.

 #!/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 

Ejecute esto en /opt/eclipse/plugins y ~/.eclipse/org.eclipse.platform_4.xx/plugins (o cualquiera que sean las rutas para su instalación). Los mismos problemas que con la solución de @Sigh: esta es una “solución” brutal y se rompe después de cada actualización o nueva instalación.

El script se puede perfeccionar:

  • Ignorar archivos .jar sin / icons / carpeta
  • Solo cambia el tamaño de las imágenes de 16×16 para que puedas ejecutar esto de nuevo después de cada actualización / instalación

Requiere imagemgick .


Advertencias

  • No funciona en todos los icons.
    • ¿Alguien sabe dónde están los otros activos o por qué no son redimensionados? Quizás ellos no sean .gif ?
  • Los icons de Project Explorer están en mal estado.

¡Las reparaciones son bienvenidas!

La siguiente solución funcionó para mí

Primero debes agregar esta clave de registro

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

A continuación, un archivo de manifiesto con el mismo nombre que el ejecutable debe estar presente en la misma carpeta que el ejecutable. El archivo se llama eclipse.exe.manifest y se compone de:

   eclipse           false    

puedes encontrar más detalles aquí

Eche un vistazo a Neon (4.6) M6: nuevo y digno de mención , el lanzamiento del hito contiene algunas escalas automáticas para las imágenes (por ejemplo, para la barra de herramientas).

SWT proporciona escalado automático basado en la resolución

SWT ahora escala automáticamente las imágenes en monitores de alta resolución en Windows y Linux, de forma similar al soporte Retina de Mac en OS X. En ausencia de imágenes de alta resolución, SWT escalará automáticamente las imágenes disponibles para garantizar que las aplicaciones basadas en SWT como Eclipse se escala proporcionalmente a la resolución del monitor.

enter image description here

Esta característica se puede deshabilitar en Windows y GTK estableciendo este argumento VM en falso en eclipse.ini o en la línea de comando después de -vmargs:

-Dswt.enable.autoScale = false

El escalado automático no se puede inhabilitar en la Mac, ya que es provisto por el sistema operativo.

Advertencias: Sabemos que algunas imágenes escaladas se ven mal a factores de escala inferiores al 200%. Esto se mejorará en M7. Además, estamos trabajando en la compatibilidad con imágenes de alta resolución de picos en la interfaz de usuario de la plataforma, de modo que los proveedores de complementos puedan agregar íconos de PPP alto sin realizar ningún cambio de código.

O tal vez esto ayude, en Eclipse Mars API para alta resolución se agregó

Se han agregado nuevas API para brindar soporte para la representación de imágenes de alta resolución en monitores de alta resolución. Se han agregado dos constructores a la clase de Imagen. Aceptan devoluciones de llamadas del proveedor de imágenes que permiten a los clientes suministrar versiones de imágenes que dependen de la resolución:

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

Dependiendo de la configuración del monitor del usuario, SWT solicitará imágenes con el nivel de zoom correspondiente. Aquí hay un ejemplo que muestra 3 imágenes originales, seguidas por variantes cuya resolución cambia dependiendo de la resolución de su monitor: Snippet367.java .

Tenga en cuenta que este es solo el primer paso para admitir imágenes de alta resolución en aplicaciones basadas en SWT y Eclipse. Se está trabajando para adoptar las nuevas API en la plataforma. Además, se requiere más trabajo en SWT para admitir adecuadamente el dibujo en imágenes de alta resolución a través de GC.

API para compatibilidad con monitores de alta resolución
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html

Gracias, suspiro, David Levy. No podría desarrollar en Eclipse sin tu sol. Tuve que agregar una captura de coupla (excepciones) a su código para que funcione:

  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;* }** 

Hay un buen artículo en JaxEnter para un trabajo alrededor de HiDPI para Eclipse

Lo que funcionó para mí al final fue agregar el archivo de manifiesto al javaw.exe como lo dijo Heikki Juntunen en https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c66

Las instrucciones sobre cómo editar el registro y crear el archivo de manifiesto escrito por Matthew Cochrane en https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c60 y @KItis escribieron las instrucciones aquí

Puse aquí una copia de esa publicación:


Primero debes agregar esta clave de registro

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

A continuación, un archivo de manifiesto con el mismo nombre que el ejecutable debe estar presente en la misma carpeta que el ejecutable. El archivo se llama eclipse.exe.manifest y se compone de:

   eclipse           false    

Luché con este tema por un tiempo también. Noté que muchos de ustedes publicaron resoluciones realmente complicadas, pero hay una forma mucho más fácil de hacerlo. Es solo un progtwig y no debería tener que modificar scripts o instalar herramientas de terceros. El problema está relacionado con la escala de DPI alta como se mencionó anteriormente, pero lo que creo que muchos de ustedes se están perdiendo es que no se puede modificar directamente la configuración de compatibilidad en el iniciador. ¡The launcher y eclipse son dos progtwigs diferentes! Debe buscar Eclipse.exe y anular la opción de escala de DPI alto allí. Una vez configurado, puede usar el iniciador de forma normal. El iniciador golpeará el archivo ejecutable, iniciará el archivo eclipse.exe y, puesto que establece la configuración de compatibilidad en el archivo .exe, se ejecutará con esa configuración. Pasé como 10 minutos rastreando dónde estaba el ejecutable así que si mi ayuda estuviera en: C: \ Users \ username \ AppData \ Local \ Yatta \ Launcher \ installations \ eclipse-ide-for-java-developers \ eclipse. exe

Aquí hay una captura de pantalla de cómo configuro mis configuraciones de compatibilidad.

Configuraciones de compatibilidad Eclipse.exe

Y sí, los icons eran muy pequeños antes de ajustar esta configuración. Intenté establecer la configuración de compatibilidad en el iniciador, pero obviamente no solucionó el problema. Pero después de establecer la configuración de High DPI para los icons de eclipse.exe ahora son de tamaño normal. ¡Avísame si esto funciona para otros!

Aquí está mi solución Inspirada por la solución de @Sigh (esta no usa maven):

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

Esto funciona al buscar todas las imágenes menores o iguales a 16x16px y escalarlas según el factor que desee el usuario.

ejecutando la utilidad: java images.EclipseIconEnlarger eclipseBasePath magnificaitonfactor

Por ejemplo: java images.EclipseIconEnlarger C: \ Users \ Amrit \ Codes \ eclipse 2

eclipseBasePath = ruta donde se encuentra eclipse.exe, por ejemplo C: \ Users \ Amrit \ Codes \ eclipse magnificationfactor = factor por el cual la imagen debe ser ampliada, por ejemplo 2 = doble

Aquí hay otra solución de línea de comandos, pero esto funciona para Windows.

Requiere winrar instalado (edite la línea winrar establecida para apuntar a la instalación winrar).

También requiere que se instale imagemgick y que se agregue su ruta en su línea de comandos.

Un último comentario es que recomiendo ejecutar esto antes de abrir Eclipse por primera vez (es decir, nueva instalación). Hay íconos que se desempaquetan automáticamente de los flasks y se guardan en eclipse / configuration / org.eclips.osgi / … (potencialmente entre otras carpetas) y la edición del archivo .jar evita que el icono se redimensione. Es posible que pueda eliminar esta carpeta y es posible que se autoextraiga nuevamente, pero no puedo confirmarlo.

Para ejecutar, simplemente crea un archivo doubler.bat en tu directorio eclipse / plugins y debería redimensionar cualquier ícono de menos de 32×32 a ese tamaño proporcionado.

Aquí está el código:

 @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 

Crea un archivo output.txt e inserta todos los metadatos de las imágenes ORIGINALES antes de convertirlo, independientemente de si cambió el tamaño o no.

Si no quieres instalar una versión más nueva de eclipse

Como se menciona aquí , en el archivo eclipse.init , agregue -Dswt.autoScale=exact después de -vmargs y está listo para continuar.

Aquí, exact escala los íconos al zoom nativo. Pero tendrá que ajustarse con los icons borrosos y dentados.

Tuve este problema cuando cambié mi idioma predeterminado de Windows 10 de inglés a italiano, con Eclipse instalado cuando el idioma predeterminado era inglés. Revertir el idioma de Windows a Eng y reiniciar resuelve el problema. No sé lo que sucedió, Windows cambió el nombre de algunas carpetas como C: \ Users traduciéndolo en su idioma predeterminado (es decir, C: \ Utenti) y tal vez esto está causando problemas.

El siguiente cambio funciona a la perfección.

Citando la respuesta de CrazyPenguin

“Para aquellos, como yo, que descubrieron que incluso en el nuevo Eclipse no estaba escalado, mira aquí: swt-autoscale-tweaks Básicamente agregué -Dswt.autoScale = quarter a mi archivo eclipse.ini”.

La solución anterior de Jae funcionó para mí. La solución manifiesta no funcionó para mí. Gracias Jae.

Configuración: en mi computadora portátil con Windows 8.1 de 64 bits sin tableta, descargué eclipse de 64 bits con jdk de 64 bits.

  1. Haga clic con el botón derecho del mouse en el escritorio para acceder a la resolución de pantalla y baje la pantalla de resolución de pantalla del nivel 3000 a 2048 x 1152.
  2. Haga clic en Hacer texto y otros elementos en un enlace más grande o más pequeño, y cámbielo a un 150% grande en lugar de a un tamaño extra grande: 250%.
  3. Cerrar sesión y volver a iniciar sesión.
  4. Reinicie Eclipse y los icons ahora están visibles, aunque sean un poco más pequeños, pero mucho más legibles ahora.