Cambiando la resolución de la pantalla en las máquinas Retina en el modo de línea de comandos

4

Con frecuencia, prefiero arrancar en el modo de línea de comandos (CMD + S en el arranque) en lugar de arrancar a la versión normal impuesta por GUI. Hago la mayor parte de mi trabajo en el terminal, por lo que es bueno ahorrar algo de tiempo y evitar toda la IU innecesaria.

Sin embargo, en las máquinas de retina, el modo de línea de comando muestra una relación de 1: 1 (en lugar de 2: 1), lo que significa que todo el texto es muy, muy pequeño. Realmente quiero reducir la resolución a la que se muestra en un factor de dos. ¿Es esto posible, y si es así, cómo?

    
pregunta Josiah 22.07.2014 - 04:38

2 respuestas

2

encontré esto para ti

scrutil

  

Un poco más avanzado debido a la naturaleza de la línea de comando, la utilidad gratuita llamada screenutil hace el trabajo inmediatamente con una entrada rápida en la Terminal.

     

Inicie Terminal y arrastre y suelte el control en la línea de comandos para usarlo una vez, pero si planea usarlo a menudo, es una buena idea lanzar el control en / usr / local / bin para un fácil acceso en el futuro. Una vez instalado, el cambio de la pantalla de retina a 2880 × 1800 nativo con screenutil se logra con el siguiente comando:

scrutil s 2880 1800 16
     

El comando informará el cambio de resolución, el 16 al final es la profundidad de color, por lo que puedes establecerlo en otra cosa si lo deseas. Puede volver a establecer la resolución predeterminada, ya sea a través de Preferencias del sistema o con escrutinio s 1440 900.

También hay esto:

enlace

/*
 * COMPILE:
 *    c++ setgetscreenres.m -framework ApplicationServices -o setgetscreenres
 * USE:
 *    setgetscreenres 1440 900
 */

#include <ApplicationServices/ApplicationServices.h>

bool MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode);

int main (int argc, const char * argv[])
{
    int h;                          // horizontal resolution
    int v;                          // vertical resolution
    CFDictionaryRef switchMode;     // mode to switch to
    CGDirectDisplayID mainDisplay;  // ID of main display

    CFDictionaryRef CGDisplayCurrentMode(CGDirectDisplayID display);

    if (argc == 1) {
        CGRect screenFrame = CGDisplayBounds(kCGDirectMainDisplay);
        CGSize screenSize  = screenFrame.size;
        printf("%d %d\n", screenSize.width, screenSize.height);
        return 0;
    }
    if (argc != 3 || !(h = atoi(argv[1])) || !(v = atoi(argv[2])) ) {
        fprintf(stderr, "ERROR: Use %s horres vertres\n", argv[0]);
        return -1;
    }

    mainDisplay = CGMainDisplayID();

    switchMode = CGDisplayBestModeForParameters(mainDisplay, 32, h, v, NULL);

    if (! MyDisplaySwitchToMode(mainDisplay, switchMode)) {
        fprintf(stderr, "Error changing resolution to %d %d\n", h, v);
        return 1;
    }

    return 0;
}

bool MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode)
{
    CGDisplayConfigRef config;
    if (CGBeginDisplayConfiguration(&config) == kCGErrorSuccess) {
        CGConfigureDisplayMode(config, display, mode);
        CGCompleteDisplayConfiguration(config, kCGConfigureForSession );
        return true;
    }
    return false;
}
  

Guárdalo como un archivo de texto puro llamado setgetscreenres.m, luego compílalo   en la Terminal usando el comando que se muestra en el código (asumiendo que está en   el directorio donde se guarda el archivo):

c++ setgetscreenres.m -framework ApplicationServices -o setgetscreenres
     

Mueva este archivo a algún lugar de $ PATH de su usuario y luego utilícelo por   escribiendo ./setgetscreenres hor_res vert_res , donde hor_res y vert_res   Son los deseos de resolución horizontal y vertical.

Descargo de responsabilidad: ¡No lo he probado!

    
respondido por el Buscar웃 07.12.2014 - 04:42
0

Hace años, usé cscreen para asignar un acceso directo de Keyboard Maestro a un script de shell. Podría funcionar para tus propósitos.

enlace

El desarrollador lo actualizó para las máquinas Intel hace un par de años, pero no tenía una máquina de retina para probar.

Espero que todos tengamos que lidiar con este problema eventualmente.

    
respondido por el Thorgrim 09.12.2014 - 06:11

Lea otras preguntas en las etiquetas