Puede hacerlo instalando y ejecutando Cuchara de martillo y luego incluir el siguiente código Lua en el archivo de configuración de Hammerspoon ( .hammerspoon/init.lua
):
-- config: number of seconds to hold Command-Q to quit application
cmdQDelay = 2
cmdQTimer = nil
cmdQAlert = nil
function cmdQCleanup()
hs.alert.closeSpecific(cmdQAlert)
cmdQTimer = nil
cmdQAlert = nil
end
function stopCmdQ()
if cmdQTimer then
cmdQTimer:stop()
cmdQCleanup()
hs.alert("quit canceled",0.5)
end
end
function startCmdQ()
local app = hs.application.frontmostApplication()
cmdQTimer = hs.timer.doAfter(cmdQDelay, function() app:kill(); cmdQCleanup() end)
cmdQAlert = hs.alert("hold to quit " .. app:name(), true)
end
cmdQ = hs.hotkey.bind({"cmd"},"q",startCmdQ,stopCmdQ)
Cambia el valor de cmdQDelay
para que se ajuste a sus preferencias.
Una breve explicación:
La última línea le dice a Hammerspoon que intercepte cualquier pulsación de Comando-Q. Se ejecutará la función lua llamada startCmdQ
cuando se pulsa la tecla, y stopCmdQ
cuando se libere.
startCmdQ
toma nota de la aplicación en primer plano y luego inicia un temporizador. Si el temporizador se agota, se llama a la función dada como argumento al temporizador. Mata la aplicación (en realidad, le pide que salga) y limpia después de la acción.
stopCmdQ
detiene el temporizador si todavía está en marcha, por lo que la aplicación no se abandona después de todo. También se limpia después.
La acción va acompañada de alertas para que sepas lo que está pasando.
Editar: Una vez que esté instalado y activo, puede desactivarlo ejecutando cmdQ:disable()
en la consola del martillo. Vuelva a encenderla con cmdQ:enable()
. Y si quiere excluir algunas aplicaciones del tratamiento de retraso, puede añadir una prueba para esas aplicaciones en el startCmdQ
y se opta por ejecutar la función app:kill()
inmediatamente en lugar de iniciar el temporizador.
Editar el segundo: Una palabra de precaución. Esto le permitirá salir del Buscador . Pero que no cunda el pánico. La forma más fácil de relanzar Finder es hacer clic en su icono en el Dock. O puedes utilizar Spotlight: Ábrelo a través del icono de la lupa en la barra de menús o de su atajo de teclado y escribe "Finder.app", y luego regresa. (Sólo tendrás que escribir unas pocas letras, ya que Spotlight completará el resto por ti). También puedes relanzar Finder ejecutando el comando hs.application.open("Finder")
en la consola de hammerspoon, o open -a Finder
en una ventana del Terminal, si es que tiene el Terminal funcionando.
1 votos
Cuando dices "¿Existe una forma de hacer esto para todas las aplicaciones de un Mac?", ¿te refieres a las aplicaciones individuales de una en una, o a todas las aplicaciones en ejecución a la vez?
0 votos
¿A diferencia de la acción normal de cmd+Q que ocurre instantáneamente con todas las demás aplicaciones? ¿Preguntas por la posibilidad de que otras aplicaciones tengan el mismo retardo que Chrome?
1 votos
Puede que esto le resulte útil: apple.stackexchange.com/q/340508/237687
0 votos
No estoy del todo seguro de esto, así que lo publico como un comentario, no como una respuesta: Si estás dispuesto a invertir algo de tiempo en aprender a usar Cuchara de martillo , es puede sería posible dejar que hammerspoon capture todas las pulsaciones de la tecla cmd-Q y que le pida a la aplicación en primer plano que salga si la tecla se pulsa durante un cierto tiempo. Advertencia: Debes aprender un poco de programación Lua primero, a menos que puedas convencer a algún usuario experimentado de hammerspoon para que escriba el código por ti. (Yo no, lo siento).
0 votos
@HaraldHanche-Olsen Voy a recompensar una respuesta que explica Hammerspoon. Aunque no sea una respuesta completa, esa herramienta necesita que la gente comparta lo potente que es. Yo no he invertido tiempo en aprenderla, pero invertiré reputación a los que puedan o tengan +1
0 votos
@bmike Lo consideraré, pero no tengo tiempo extra para tal empeño durante un par de días, al menos.
0 votos
@bmike Me pareció lo suficientemente intrigante como para seguir adelante y ponerlo en práctica. Ver la respuesta más abajo.
0 votos
Me siento humilde por tu habilidad para implementar y documentar esta opción. Muchas gracias a ti @HaraldHanche-Olsen