24/01/2009 21:49 ● porady ● autor: →makojad
Kolokwialny tytuł oznacza, że do zbioru makojadowych porad dołączam dwie, oparte o uruchamianie skryptów napisanych w AppleScript:
1. Sposób na otwarcie klapy laptopa bez budzenia go ze snu,
2. Sposób na wygaszenie ekranu gdy nie jest potrzebny
Ad 1. OTWIERAM KLAPĘ LAPTOPA, ALE NIE BUDZĘ MAKA (lub budzę - do wyboru).
Ostatnio przestawiłem coś w tych samych od nie-pamiętam-kiedy ustawieniach Zarządzania Zasilaniem (Power Management). Zaraz po tym fakcie zorientowałem się, że mój laptop budzi się gdy otwieram klapę (wcześniej tego nie robił). A ponieważ często ostatnio go przenosiłem z miejsca na miejsce i przeszkadzało mi to, postanowiłem w oparciu o mój wyszukany w gąszczu plików stary sposób terminalowy napisać skrypt, który dla mnie sytuację zmieni o 180 stopni, a dodatkowo pozwoli na ustawianie do wyboru: ma spać/ma nie spać. Napisałem i zamierzam się z nim podzielić, bo może komuś się przydać. Przy okazji, porada otwiera rozdział zachęcania Was do korzystania ze skryptów AppleScript.
Aby zatem otwierać klapę bez budzenia maka za pomocą mojego skryptu, należy wkleić w Script Editor (My Disk / User / Applications / AppleScript / Script Editor.app) ten skrypt (jest on za długi na ten wpis, wobec tego ląduje na oddzielnej stronie, będę tak robił ze wszystkimi skryptami). Następnie już w Script Editor należy go skompilować przyciskiem Compile lub skrótem ⌘K. Skrypt nabierze kolorów (takich jak na stronie), co oznacza, że jest gotowy do uruchomienia. Ale zanim to się stanie, polecam najpierw zapoznać się dokładnie z jego treścią (dla zainteresowanych skorzystaniem), gdyż by zadziałał trzeba wpisać nazwę użytkownika w miejsce USER oraz parę własnych ustawień.
Generalnie ten applescript jest oparty o skrypty powłoki:
do shell script "pmset lidwake 0" with administrator privileges oraz
do shell script "pmset lidwake 1" with administrator privileges
które można również wykonywać w Terminalu (w zmienionej formie). Ja wolę jednak używać AppleScript, z prostych powodów:
Przy okazji tego skryptu parę słów na temat możliwości wykonywania skryptów domyślnej powłoki (czyli to co domyślnie widzimy w Terminalu) poprzez AppleScript. Polecenie do shell script "" wykonuje skrypt powłoki zawarty w cudzysłowiu. do shell script "" with administrator privileges to odpowiednik sudo w Terminalu. Gdy dodać to wyrażenie, podczas wykonywania skryptu pojawia się okno dialogowe z zapytaniem o login i hasło (w moim skrypcie, jak zauważycie, podawanie hasła zostało opracowane dialogami AppleScript, a login trzeba wpisać samemu w skrypt - własna inicjatywa).
Celowo odsyłam do skryptu na oddzielnej stronie, ponieważ zastosowałem parę udogodnień dla czytelnika oraz parę własnych reguł zapisu (tak pozostanie, choć prostsze skrypty będę wyjaśniał krok po kroku we wpisie):
Ad 2. EKRAN GAŚNIE PO 1 MINUCIE
Kolejny skrypt to rezultat poszukiwania sposobu na wygaszenie ekranu(ów), gdy odchodzę od komputera lub np. słucham muzyki. Przeszukałem internet w poszukiwaniu dogodnego narzędzia. Znalazłem świetny malutki programik Sleep Display (polecam Google, bo nie pamiętam linku), który pozwala wygaszać ekran natychmiast. Mój problem z tą aplikacją polegał na tym, że gdy już uruchomiłem aplikację i zgasł ekran, prawie zawsze chciałem jeszcze na chwilę wrócić i coś sprawdzić albo po prostu ruszałem myszką - ekran zapalał się ponownie i ponownie trzeba było go gasić.
Ponieważ autorzy tego programu nie wyjawili w jaki sposób usypiają ekran, jakiś czas temu postanowiłem kontynuować poszukiwania w celu odnalezienia jakiejś definicji AppleScript, na podstawie której mógłbym sam napisać sobie stosowny skrypcik. Niestety, brak bezpośredniej możliwości sterowania wyświetlaczem za pomocą AppleScript (albo nikt się tym nie dzieli - Apple także).
Jest za to sposób, który wszyscy znamy - można ustawić odpowiednio Zarządzanie Zasilaniem na najniższą wartość, by ekran sam się wyłączył. Posłużenie się tą metodą podsunął mi na myśl ten wpis z macoshints.com. Znowu, tak jak poprzednio, i tym razem opieram się o 'pmset', czyli sterowanie Power Management za pomocą skryptu powłoki:
do shell script "pmset displaysleep 1" with administrator privileges, gdzie 1 oznacza 1 minutę.
Wykonując ten skrypt, wygaszanie ekranu ustawia się na "za minutę". Ale by miało to sens, dodane zostało polecenie przywrócenia poprzednich ustawień po np. 90 sekundach. Oznacza to, że na pozostawienie ekranu do samoczynnego wygaszenia mam niecałe 30sek., akurat tyle ile mnie osobiście potrzeba by odejść od komputera nie musząc się obawiać, że trącając myszkę obudzę ekran.
W skrypcie ułatwiłem zainteresowanym samodzielne ustawienie czasu, po którym usypia ekran i czasu, po którym przywracane są poprzednie ustawienia (ale uwaga, należy należy je wpierw określić, wg swoich preferencji).
Aha, UWAGA! skrypt wygasza wszystkie podłączone ekrany. Nie sprawdzałem jeszcze możliwości oddzielnego traktowania ewentualnych przyłączonych zewnętrznych wyświetlaczy.
Zapraszam do przyjrzenia się temu skryptowi na oddzielnej stronie oraz do wklejenia w Script Editor i sprawdzenia.