Zdjęcia, Mojave i spacja

Jakiś czas temu robiłem sobie placki z cukinii. W misce czekała już starta cukinia wymieszana z różnymi niezbędnymi składnikami, na kuchence rozgrzewała się patelnia, a ja sięgnąłem do lodówki — i zamiast oleju na gorącą patelnię wylałem mleko.

Oprogramowanie zainstalowane w ludzkim mózgu zawiera interesującą funkcję, która nosi nazwę „przyzwyczajenie”. Przez długi czas trzymałem olej na drzwiach lodówki po lewej stronie, lecz kiedyś położyłem w tym miejscu mleko. Owego feralnego dnia z przyzwyczajenia sięgnąłem w to samo miejsce, co zawsze, następnie wykonałem zestaw tych samych czynności, co zwykle, lecz niestety wynik tym razem okazał się inny od oczekiwanego. Jedna mała zmiana — a tyle kłopotu (wierzcie mi, smażone mleko nie jest czymś, co zapewnia szczególnie miłe doznania zapachowe).

Podobna sytuacja ma miejsce w przypadku aplikacji Zdjęcia w systemie macOS Mojave. Tutaj ktoś, kto być może szczerze chciał „zoptymalizować doświadczenia użytkownika” lub z jakiś przyczyn czuł się w obowiązku uzasadnić swoją rolę i obecność w projekcie, doszedł do wniosku, że ugruntowany przyzwyczajeniami użytkownika skrót klawiszowy otwierający zaznaczone zdjęcie należy zmienić. Ów nieznany szkodnik wślizgnął się ukradkiem do naszej (mojej, Twojej…) metaforycznej lodówki i podstępnie wymieszał w niej produkty. Spacja nie otwiera już zdjęć. Spacja włącza odtwarzanie filmu, jeśli jest on otwarty. Do otwierania zdjęć służy natomiast mleko. Tfu, klawisz Return.

Co w tej sytuacji może zrobić zwykły użytkownik? Czy wszyscy musimy wyjść na ulice Cupertino w koszulkach z napisem SPA-CJA, aby protestować przeciwko zagrażającemu demokracji reżimowi Tima Cooka?

Niekoniecznie. Wystarczy zamknąć Zdjęcia, otworzyć Terminal i wpisać w nim:

defaults write com.apple.universalaccess.plist com.apple.custommenu.apps -array-add com.apple.Photos

…a następnie:

defaults write com.apple.Photos NSUserKeyEquivalents -dict-add "Otwórz podgląd" -string " "
defaults write com.apple.Photos NSUserKeyEquivalents -dict-add "Zamknij podgląd" -string " "

Powyższe polecenia powodują przydzielenie nowego skrótu klawiszowego poleceniom „Otwórz podgląd” oraz „Zamknij podgląd” w menu aplikacji Zdjęcia. Ale to za mało, spacja bowiem nadal przypisana jest do włączania i wyłączania odtwarzania filmów. Zmieńmy więc ten skrót na Control-Spacja:

defaults write com.apple.Photos NSUserKeyEquivalents -dict-add "Rozpocznij odtwarzanie" -string "^ "
defaults write com.apple.Photos NSUserKeyEquivalents -dict-add "Zatrzymaj odtwarzanie" -string "^ "

Po wprowadzeniu tych poleceń nie trzeba ponownie uruchamiać systemu, wystarczy otworzyć Zdjęcia i nasze nowe skróty powinny już działać: spacja będzie otwierać i zamykać zdjęcia, jak dawniej, natomiast odtwarzaniem filmów będziemy mogli sterować naciskając spację wraz z klawiszem Control.

Z nieznanych przyczyn na moim iMacu pierwsze naciśnięcie spacji po otworzeniu aplikacji Zdjęcia nie jest przez nią czasem rozpoznawane, ale wszystkie kolejne naciśnięcia już działają bez zarzutu.

Nasze nowe skróty możemy obejrzeć w preferencjach klawiatury, ale najpierw warto zrestartować usługę, która podstępnie przechowuje preferencje w pamięci podręcznej i może sprawić, że zmiany nie będą widoczne od razu:

killall cfprefsd

Następnie należy wybrać polecenie menu Apple  > Preferencje systemowe, kliknąć w Klawiatura, kliknąć w kartę Skróty i zaznaczyć Skróty aplikacji na pasku po lewej:

Dlaczego więc kombinowaliśmy w Terminalu, zamiast dodać te skróty bezpośrednio w tym oknie? Po pierwsze dlatego, że dzięki temu poznaliśmy nowe zastosowania Terminala. A po drugie dlatego, że w ten właśnie sposób przywróciłem ten skrót na swoim iMacu po zainstalowaniu Mojave — nie udawało mi się bowiem wprowadzić w Preferencjach systemowych skrótu złożonego z samej spacji (bez naciśniętego klawisza modyfikującego, takiego jak Control, Command czy Shift). Spróbujcie sami. Nie da się, prawda?

Da się. Pomoc systemowa milczy na ten temat, jeśli jednak chcemy dodać pojedynczy klawisz, należy nacisnąć go wraz z klawiszem Fn (czyli Fn-Spacja oznacza samą spację).

Polecam zaprzyjaźnić się z funkcją dodawania i zmiany skrótów klawiszowych — pozwala ona na poprawianie błędnych decyzji twórców aplikacji, chociażby takich jak opisana powyżej. Przy użyciu tej funkcji dodałem na przykład skrót Command-E do często używanego polecenia menu File > Export w Pixelmatorze, bez którego nie wyobrażam sobie już pracy z tą aplikacją.

Podczas dodawania własnych skrótów klawiszowych należy zwrócić uwagę na dokładne przepisanie nazwy żądanego polecenia. Wiele poleceń menu zakończonych jest wielokropkiem (na przykład wspomniane polecenie eksportu w Pixelmatorze), nie są to jednak trzy niezależne kropki, lecz pojedynczy znak, uzyskiwany przez naciśnięcie klawiszy Alt-średnik.

Jeśli chcecie jednak dodawać i modyfikować skróty klawiszowe w Terminalu, warto zapamiętać znaki reprezentujące klawisze modyfikujące:

@ Command
$ Shift
^ Control
~ Alt

Jestem przekonany, że na pewno marzycie o tym, aby dowiedzieć się na koniec, jak potoczyły się dalej losy moich cukiniowych placków. Otóż zakląłem szpetnie, umyłem zbrukaną mlekiem patelnię, a następnie usmażyłem je na znalezionym w zoptymalizowanym miejscu lodówki oleju.

Były pyszne.

Posted in Mac OS X, X-TIP.