Mam 15-calowego MacBooka Pro z maja 2019 r. z kartą graficzną Radeon Pro 555X 4 GB. Chciałbym zmienić Automatic Graphics Switching
za pomocą polecenia terminala.
Odpowiedź
Trochę googlowałem i nie wiem natywne narzędzie wiersza poleceń lub narzędzie wiersza poleceń innej firmy, które może przełączać stan automatycznego przełączania grafiki; jednak można to zrobić za pomocą polecenia linia przy użyciu AppleScript do przełączania [√] Automatyczne przełączanie grafiki pole wyboru na Oszczędzanie energii okienko w Preferencjach systemowych .
Zamiast znaleźć natywne narzędzie wiersza poleceń lub narzędzie wiersza poleceń innej firmy, albo do czasu uzyskania lepszej odpowiedzi r zostanie opublikowany, poniższe umożliwią Ci przełączanie go z wiersza poleceń w np. Terminal .
-
W Terminal , użyj następującego polecenia złożonego , aby utworzyć plik i otwórz go:
touch togags; open togags
-
Skopiuj i wklej przykład AppleScript kod , pokazany poniżej, w otwartym
togags
plik . -
Zapisz i zamknij plik .
-
Utwórz plik wykonywalny :
chmod u+x togags
Użyłem togags
for: [tog]gle [a]utomatic [g]raphics [s]witching
Możesz go teraz używać z katalogu it ” korzystamy z ./togags
w przeciwnym razie ; Jednak najlepiej jest umieścić go w katalogu , który znajduje się w PATH
instrukcji . Następnie może być używany z dowolnego miejsca przez togags
(lub jakkolwiek nazwałeś plik wykonywalny ).
UWAGA: Będzie to również wymagało podania Terminala uprawnienia dostępu , aby to działało poprawnie.
Dwukrotne uruchomienie polecenia w celu wyświetlenia wyników:
$ togags Automatic Graphics Switching is: OFF $ togags Automatic Graphics Switching is: ON $
Poniższy przykład AppleScript kod , został przetestowany i działa zgodnie z kodem na macOS High Sierra . Niewielka zmiana może być potrzebna w przypadku macOS Mojave ; jednak obecnie nie mogę testować. To samo dotyczy starszych wersji OS X / macOS.
Przykład AppleScript kod :
#!/usr/bin/osascript if running of application "System Preferences" then try quit application "System Preferences" on error do shell script "killall "System Preferences"" end try end if repeat while running of application "System Preferences" is true delay 0.1 end repeat tell application "System Preferences" reveal pane id "com.apple.preference.energysaver" repeat until exists window "Energy Saver" delay 0.1 end repeat end tell tell application "System Events" to tell ¬ group 1 of window "Energy Saver" of application process "System Preferences" repeat until exists checkbox "Automatic graphics switching" delay 0.1 end repeat click checkbox "Automatic graphics switching" set cbAGS to (value of checkbox "Automatic graphics switching") as boolean end tell quit application "System Preferences" if cbAGS then return " Automatic Graphics Switching is: ON" else return " Automatic Graphics Switching is: OFF" end if
Uwaga: przykład AppleScript kod to tylko to i co innego „s już zakodowany, nie zawiera żadnej dodatkowej obsługi błędów, która może być odpowiednia. Na użytkowniku spoczywa obowiązek dodania obsługi błędów, jeśli jest to odpowiednie, potrzebne lub pożądane. Przyjrzyj się instrukcji spróbuj i błąd w Przewodniku językowym AppleScript . Zobacz też Praca z błędami .
Komentarze
Odpowiedź
Polecenie sudo pmset -a gpuswitch n
ustawi przełączanie grafiki, z następującymi wartościami n:
-
2 jest zintegrowane z GPU zarówno na kablu, jak i na baterii
-
1 jest dedykowane GPU tylko z zasilaniem połączony; zintegrowany procesor graficzny na zasilaniu bateryjnym
-
0 to dedykowany procesor graficzny zarówno na zasilaczu, jak i na baterii
pmset -g
pokaże aktualną konfigurację.
Komentarze
- U mnie, gdy korzystam z Cataliny na Macbooku Pro 16 z 2019 roku ", wartość 2 to AMD Radeon Pro na kablu i baterii, 0 to grafika Intel UHD na kablu i baterii w jakiś sposób odwrócona
- Wartość 1 działa dziwnie, nie jestem pewien, co robi, wydaje się losowo przełączać między kartą graficzną
- Wygląda na to, że 1 to prawdziwe automatyczne przełączanie grafiki określone przez system operacyjny, o którym myślę, ale nie ' t podąża za źródłem zasilania. Użyłem support.apple.com/en-us/HT202053 , aby dowiedzieć się, której karty graficznej używa
/usr/local/bin
i działa świetnie!