Modifica della risoluzione dello schermo sulle macchine Retina mentre si è in modalità riga di comando

4

Spesso preferisco avviare la modalità riga di comando (CMD + S all'avvio) anziché avviare la normale versione imposto dalla GUI. Io faccio la maggior parte del mio lavoro nel terminale, quindi è bello risparmiare un po 'di tempo e ignorare tutta l'interfaccia utente non necessaria.

Tuttavia, sulle macchine retina, la modalità riga di comando viene visualizzata con un rapporto 1: 1 (anziché 2: 1), il che significa che tutto il testo è molto, molto piccolo. Voglio davvero ridurre la risoluzione visualizzata di un fattore due. È possibile, e se sì, come?

    
posta Josiah 22.07.2014 - 04:38
fonte

2 risposte

2

Ho trovato questo per te

scrutil

Slightly more advanced due to the nature of the command line, the free utility called screenutil gets the job done immediately with a quick entry into the Terminal.

Launch Terminal and drag and drop scrutil into the command line to use it once, but if plan on using it often it’s a good idea to toss scrutil into /usr/local/bin for easy future access. Once installed, changing the retina display to native 2880×1800 with screenutil is achieved with the following command example:

scrutil s 2880 1800 16

The command will report back the resolution change, the 16 at the end is color depth so you can set that to something else if you’d like. You can set it back to the default resolution either through System Preferences or with scrutil s 1440 900.

C'è anche questo:

link

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

Save that as a pure text file named setgetscreenres.m, then compile it in Terminal using the command shown in the code (assuming you're in the directory where the file is saved):

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

Move this file somewhere on your user's $PATH, and then use it by typing ./setgetscreenres hor_res vert_res, where hor_res and vert_res are the desire horizontal and vertical resolution.

Dichiarazione di non responsabilità: non l'ho provato!

    
risposta data 07.12.2014 - 04:42
fonte
0

Anni fa, ho usato cscreen per mappare una scorciatoia da tastiera Maestro ad uno script di shell. Potrebbe funzionare per i tuoi scopi.

link

L'aggiornamento lo ha aggiornato per le macchine Intel un paio di anni fa ma non disponeva di una macchina retina per i test.

Mi aspetto che tutti dovremo affrontare questo problema alla fine.

    
risposta data 09.12.2014 - 06:11
fonte

Leggi altre domande sui tag