Czy mogę globalnie zmienić skrót cmd-Q, aby wymagać przytrzymania przez dwie sekundy, tak jak w przypadku Chrome?

39

Wiele, wiele razy przypadkowo nacisnąłem +, Qgdy chciałem zamknąć kartę lub okno albo przełączyć aplikacje. Kiedy zobaczyłem opcję Google Chrome wymagającą przytrzymania skrótu , byłem zachwycony. Problem w tym, że korzystam z Safari.

Krótko mówiąc: w jaki sposób mogę uczynić skrót „przytrzymaj klawisz Command-Q” uniwersalnym dla wszystkich moich aplikacji (lub przynajmniej Safari)?

Timothy Mueller-Harder
źródło
4
Gdzie jest to ustawienie, o którym mówisz?
Sensowny
Niesamowite pytanie Tymoteusz !!
daviesgeek
3
@Senseful Jest to sprzeczne z intuicją w menu Chrome, a nie w preferencjach Chrome.
Timothy Mueller-Harder
4
„Ostrzegaj przed rezygnacją”.
Timothy Mueller-Harder
Świetne pytanie, prowadzące do bardzo przydatnych odpowiedzi!
Paul Wagland

Odpowiedzi:

8

Douglas Teoh stworzył aplikację o nazwie SlowQuitApps , która właśnie to robi.

Aplikacja OS X, która dodaje globalne opóźnienie 1 sekundy do skrótu Cmd-Q. Innymi słowy, musisz przytrzymać Cmd-Q przez 1 sekundę, zanim aplikacja zostanie zamknięta.

Gdy opóźnienie jest aktywne, na środku ekranu rysowana jest nakładka.

yckart
źródło
2
Nie mogę uwierzyć, że ludzie piszą aplikacje, aby to osiągnąć. Sposób na „intuicyjne Apple!”
Stewart
18

Oto częściowe rozwiązanie na początek:

Zapobieganie przypadkowemu zamknięciu programu Safari (lub dowolnej konkretnej aplikacji)

Wystarczy ustawić nietypowy skrót klawiaturowy dla pozycji menu „Zakończ Safari” w preferencjach klawiatury.

Spowoduje to wyłączenie standardowego Qskrótu, więc przypadkowe naciśnięcie go nie robi różnicy - i musisz pomyśleć przed wyjściem!

(Niestety nie znalazłem łatwego sposobu na zrobienie tego dla każdej aplikacji, bez ręcznego wprowadzania każdej z nich).

jtbandes
źródło
Bardzo miło, wdrożyłem i głosowałem! Nawiasem mówiąc, domyślnie ⌥⌘Q to „Zamknij i odrzuć Windows”.
Paul Wagland
O rany, masz rację. Cóż, „Q” lub coś innego również powinno działać - jednak uważam, że „Q” jest trochę trudniejsze do trafienia przez przypadek.
jtbandes
13

Kontynuując rozwiązanie jtbandes, po ponownym przypisaniu standardowej komendy Quit do innego naciśnięcia klawisza (tak, niestety, musisz ją ponownie przypisać ręcznie dla każdej aplikacji, której martwisz się przypadkowym zamknięciem), możesz utworzyć usługę w Automatorze, która nie przyjmuje wkład. Powinien mieć jedną akcję: Uruchom AppleScript. Skrypt to:

tell application "System Events"
    set theName to name of the first process whose frontmost is true
end tell
tell application theName
    display dialog "Are you sure you want to quit?"
    quit
end tell

Następnie zapisujesz tę usługę (nazwałem moją „SafeSave”) i przypisujesz tej usłudze naciśnięcie klawisza Q. W ten sposób odzyskałeś standardowe naciśnięcie klawisza.

Daniel
źródło
Sprytny. Hm, przypuszczam, że można napisać skrypt aktywujący się na cmd-Q, który wymagałby kolejnego cmd-Q, aby ukończyć wyjście ...
Timothy Mueller-Harder
Rzeczywiście, sprytnie! Oddaj głos! :-)
Asmus
Bardzo miło, wdrożyłem i głosowałem!
Paul Wagland
8

Inną opcją jest użycie Karabinera z następującym kodem XML:

__HoldingKeyToKey__ KeyCode::Q, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE, KeyCode::Q, VK_COMMAND, Option::NOREPEAT

Lri
źródło
Chociaż nazwa aplikacji została zmieniona na Karabiner , ta odpowiedź działała dla mnie świetnie 10.10 i była całkowicie darmowa.
Alex Pretzlav
Czy możesz opisać, jak z tego korzystać? Mam zainstalowany Karabiner, ale nie wiem, jak użyć twojego polecenia.
Manuel Mauky
@ManuelMauky Przejdź do strony złożonych modyfikacji Karabinera i kliknij przycisk „Importuj” obok „Zapobiegnij niezamierzonemu poleceniu q (rev 2)”.
Utku
1

CommandQ (4,00 $) robi dokładnie to. Jest bardzo konfigurowalny i ma ładny GUI, chociaż nie korzystałem z niego osobiście. Wydaje się, że spełnia wymagania tego pytania.

Timothy Mueller-Harder
źródło
-2

Nie wierzę, że to możliwe.

Digitalchild
źródło