10 votos

¿Mantener Cmd-Q para salir como una acción de todo el sistema?

Me gusta que Chrome te pida que mantengas pulsado "Cmd-Q" para salir. Hay una manera de hacer esto para cada aplicación en un Mac?

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

8voto

Jax Puntos 23

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.

0 votos

Me he inspirado en esta pregunta y he añadido el código anterior a mi propia configuración de Hammerspoon, ya que tiendo a pulsar el comando-Q de vez en cuando sin quererlo. El tiempo mostrará si quiero mantenerlo o no.

0 votos

@user3439894 ¡Oh, claro! Gracias por señalarlo. Yo no soy un usuario pesado Dock mí, por lo general confiar en quicksilver para mis necesidades de lanzamiento de aplicaciones, por lo que sólo no pensar en ello.

2voto

Skeleton Bow Puntos 108

Si quieres este comportamiento porque tienes miedo de pulsar accidentalmente ⌘Q mientras se intenta pulsar algo similar (normalmente ⌘W o quizás ⌘Tab ), entonces puede reasignar el ⌘Q a un atajo similar pero más difícil de presionar, digamos a ⌥⌘Q.

Para ello, necesitarás 1) una forma de reasignar ⌘Q a ⌥⌘Q o 2) bloquear ⌘Q y establecer ⌥⌘Q para abandonar las aplicaciones.

Método 1: reasignar ⌘Q a ⌥⌘Q

Método 1a: Usando las Preferencias del Sistema

  1. Vaya a Preferencias del Sistema > Teclado > Accesos directos > Accesos directos a aplicaciones
  2. Para cada aplicación individual en la que quieras hacer esto, crea un acceso directo que tenga trigger ⌥⌘Q y la acción Quit x donde x es el nombre de la aplicación. Por ejemplo, para Safari escribiría "Quit Safari" (sin comillas). Tenga en cuenta que si esto no funciona, puede que tenga que comprobar cuál es el nombre de la aplicación en el elemento de la barra de menús.

Método 1b: Utilizar elementos de mosquetón o algo similar

Esto debería eliminar la limitación de tener que establecer manualmente el acceso directo para todas las aplicaciones. Esto es probablemente posible con la poderosa herramienta Elementos del mosquetón pero desgraciadamente no lo domino lo suficiente como para decir cómo.

Como menciona Harald Hanche-Olsen en los comentarios, es posible que Hammerspoon también te permita hacer esto, aunque tendrás que investigar un poco más.

Método 2: bloquear ⌘Q y configurar ⌥⌘Q para que salga.

La única razón por la que incluyo aquí una aplicación de terceros es que debe puede hacerse con el uso de BTT globalmente, pero debido a un error (?) tendrá que hacerlo individualmente para todas las aplicaciones.

  1. Descargar e instalar BetterTouchTool (de pago pero con 45 días de prueba)
  2. Crear un atajo de teclado global con ⌘Q no se puede hacer nada
  3. Crear un atajo de teclado global con ⌘Q a la acción Elemento de la barra de menús, y establecer esto como la descripción: x;Quit x donde x es el nombre de la aplicación. De nuevo, ten en cuenta que debes comprobar lo que dice la aplicación para la que quieres hacer esto.

Esperaba que se pudiera hacer esto globalmente utilizando un comodín en el paso 3 para el elemento de la barra de menú de primer nivel, lo que eliminaría la necesidad de escribir explícitamente el nombre de la aplicación. En este caso, podría utilizar *;Quit * como la descripción. Sin embargo, esto no parece ser posible por alguna razón.

0 votos

Esto es lo mejor que se puede hacer con las directrices actuales de la interfaz humana de Apple y el SDK. Puedes cambiar los accesos directos, pero no puedes cambiar el momento en que se activan. Hoy en día, la activación de los accesos directos es instantánea. Cuando se reconoce una pulsación válida es cuando se dispara la acción y no antes o después.

1 votos

Estoy descartando las banderas en esto como no una respuesta. Aunque no responda directamente a la pregunta, es un excelente post sobre una solución que resolverá una cuestión práctica y que se relaciona con el cambio de comportamiento del abandono.

0 votos

Le sugiero que se ponga en contacto con el autor de Karabiner Elements. KE ya tiene el uso de dos pulsaciones de comando+s para una pulsación. Puede que no sea muy difícil de mejorar.

1voto

Kevin Walker Puntos 126

No, no hay manera de persuadir a todas las demás aplicaciones para que adopten el comportamiento "hold-cmd-Q-for-couple-of-seconds-to-quit".

Apple controla las aplicaciones de la Apple y el SDK y no implementan esto.

En el mejor de los casos, se podría conseguir que un grupo de desarrolladores de terceros a los que les gusta este lenguaje lo implementen.

0 votos

Firefox pide confirmación si tienes varias pestañas abiertas...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X