macos - Focus-follows-mouse(más auto-raise) en Mac OS X
(17)
Actualmente uso MondoMouse e incluso con sus peculiaridades no podría usar mi mac sin él. Tienen una versión de prueba gratuita y se lo recomendaría a todos.
(¡No quiero escuchar lo loca que estoy de querer eso! :)
Focus-follows-mouse también se conoce como foco descuidado, punto focal, foco de puntero y (en algunas implementaciones). [¡Agregue otros términos que harán esto más buscable!] X-mouse
Así que decidí mejorar nuevamente en el trabajo que hice en MouseFocus.app que aún tenía algunos defectos. Esos están arreglados ahora. Cambié el nombre de todo a "AutoRaise" para reflejar mejor lo que hace esta herramienta: cuando pasas una ventana, se elevará al frente (con un retraso de tu elección) y se enfocará. La herramienta se puede descargar here . Para usarlo, cópielo en su carpeta / Aplicaciones / asegurándose de que sea ejecutable (chmod 700 AutoRaise). Luego haga doble clic desde dentro de Finder. Para activarlo / desactivarlo rápidamente, puede usar el AppleScript siguiente y pegarlo en un flujo de trabajo de servicio del automatizador. A continuación, vincule el servicio creado a un atajo de teclado a través de Preferencias del sistema | Teclado | Accesos directos.
Actualización (29-03-2017): el binario AutoRaise se ha actualizado. Si no se ha especificado ningún retraso en la línea de comando, ahora también buscará un archivo AutoRaise.delay en la misma carpeta. Esto es particularmente útil cuando se usa el AppleScript a continuación, porque la ''aplicación de inicio'' no admite argumentos de línea de comando. La demora debe especificarse en unidades de 50 ms. Por ejemplo, para especificar un retraso de 150 ms, ejecute este comando una vez en un terminal: ''echo 3> AutoRaise.delay''
on run {input, parameters}
tell application "Finder"
if exists of application process "AutoRaise" then
quit application "/Applications/AutoRaise"
display notification "AutoRaise Stopped"
else
launch application "/Applications/AutoRaise"
display notification "AutoRaise Started"
end if
end tell
return input
end run
Aunque esto dista mucho de ser una solución completa, dos prácticas acciones integradas en OSX (10.11) son:
^⌥-clic (control-opción-clic) - cambia el foco sin levantar la ventana
⌘-clic (comando-clic) - clics en la ventana sin cambiar el foco
No estoy seguro de cuándo se introdujeron estos atajos, ya que no he podido encontrarlos escritos en ningún lado.
Codetek tenía un producto que lo hizo, pero nunca lanzaron una versión para Leopard o posterior.
MondoMouse puede hacer focus-follows-mouse, pero no auto-raise. Incluso el mouse de enfoque-seguimiento está roto. Por ejemplo, no funciona bien con la pestaña de comandos (si le pides una pestaña a una nueva aplicación y no tocas el mouse, entonces no debería cambiar el foco a donde sea que esté el puntero del mouse - Estoy bastante seguro de que todas las implementaciones en Linux que he visto lo hacen bien pero MondoMouse no lo hace).
Puede activar focus-follows-mouse (no autoraise) solo para Terminal windows (solo ejecute lo siguiente en un terminal):
defaults write com.apple.Terminal FocusFollowsMouse -string YES
Y de manera similar para ventanas X11:
defaults write org.x.X11 wm_ffm -bool true
(Para versiones mac anteriores a 10.5.5 esto fue:
defaults write com.apple.x11 wm_ffm true
)
No conozco ninguna otra aplicación que lo soporte.
Desafortunadamente CodeTek Virtual Desktop Pro ya no está desarrollado, y la compañía parece haber cerrado sus puertas hace unos años.
Referencia histórica: http://www.codetek.com/ctvd/ (¡no funciona en las nuevas versiones de OS X!)
Revisión histórica: http://www.osnews.com/story/6144
Usando CodeTek Virtual Desktop Pro, usted pudo obtener Focus-Follow-Mouse y desactivar Auto-Raise, y también tenía un Buscapersonas para los escritorios virtuales, similar a como funciona Fvwm en Linux. Realmente funcionó a la perfección, la mejor pieza de software que jamás haya comprado. Funcionó de manera consistente con todas las aplicaciones, y el cambio de aplicaciones, el traslado de ventanas a diferentes espacios de trabajo y la navegación de espacios de trabajo funcionó mucho más fácil que cómo se implementó en las últimas versiones de OS X [10.6, 10.7, 10.8]
Desafortunadamente, con Mac OS X 10.5, VirtualDesktop Pro dejó de funcionar, y parece que Apple se aseguró activamente de que CodeTek no continuará trabajando en él.
Es triste que Apple haya aplastado a CodeTek y su producto: Virtual Desktop Pro fue realmente superior a la forma en que se implementan los espacios de trabajo de OS X. Funcionó básicamente como Fvwm en LINUX - navegación súper rápida - sin clics innecesarios ni gestos del mouse ...
Me entristece ver que Apple dicta el comportamiento del administrador de ventanas (Finder) y ya no parece permitir reemplazos de terceros para Finder.
El problema del menú es la única razón por la que el mouse de enfoque tradicional no funcionaría.
Aquí hay una alternativa: no cambie el enfoque hasta que se presione una tecla en el teclado. Esto cubriría el 95% de los casos de uso de Focus-Following-Mouse, y haría que este antiguo usuario de X, realmente curvilíneo, se sintiera realmente feliz. No sé cuántas veces voy a desplazarme por una página web en Chrome, presiono Command-T para abrir una nueva pestaña y, en su lugar, encuentro la pestaña que se abre en la Terminal. Si mi cerebro no se dio cuenta de esto en 8 meses de usar una Mac, nunca lo hará.
Es interesante que Leopard tenga un sabor de enfoque-sigue-ratón (sin auto-reconocimiento) habilitado por defecto. La rueda de desplazamiento funciona en ventanas fuera de foco.
Experimentando con esas opciones, mi Command-Tab comenzó a comportarse de manera extraña. Aquí está la solución de cómo vuelve a enfocar las aplicaciones:
Parece que una característica anterior, es decir, la capacidad para que el foco de la ventana del Terminal cambie con el movimiento del mouse, está rota en 10.6 y hace que Command-Tab no transfiera el foco de la ventana correctamente. Para solucionar el problema, simplemente pegue el siguiente comando en una Terminal:
los valores por defecto escriben com.apple.Terminal FocusFollowsMouse -string NO
Luego reinicie Terminal.
Focus-follows-mouse no es un método de entrada particularmente adecuado para OS X porque su barra de menú fue diseñada para estar en la parte superior de la pantalla. Cuando mueve el mouse fuera de la ventana de la aplicación para acceder a los menús, si cruza las ventanas de otra aplicación en el camino, el menú cambia.
Así que sí, en respuesta al comentario de Dreeves, funciona perfectamente bien para Terminal (o para cualquier otra aplicación en el escritorio), ya que las únicas otras ventanas que afectarán son las ventanas de Terminal Server, por lo que el menú nunca cambia al cambiar de Windows. Y funciona bien para X11 porque las aplicaciones X11 generalmente tienen sus barras de menú incrustadas en la ventana, por lo que no tiene que salir de la ventana para acceder a ellas.
Por supuesto, puede evitar el problema del cambio de menú al introducir un retraso artificial antes de que cambie el enfoque y / o cambie el menú, pero nunca funcionará tan bien como en otros escritorios.
Prueba DwellClick . Aunque no es para su propósito, el comportamiento de auto-clic tiene un efecto secundario similar al auto-raise o focus-follows-mouse.
Personalmente, solo utilizo la función de clic izquierdo después de que el movimiento de mi cursor se detiene, pero también está haciendo clic con modificadores y una ventana que arrastra la ayuda que es bastante útil.
También es un poco frustrante durante la navegación web, ya sea que desees desactivar la aplicación o ser más consciente de dónde se encuentra el cursor (por ejemplo, no en los enlaces o botones que no tienes la intención de activar).
Puede hacerlo para Terminal.app emitiendo el siguiente comando en la línea de comando:
defaults write com.apple.Terminal FocusFollowsMouse -bool true
Para las aplicaciones X11 puedes hacer esto:
defaults write com.apple.x11 wm_ffm -bool true
En Snow Leopard, utiliza esto en su lugar:
defaults write org.x.X11 wm_ffm -bool true
Aparentemente hay un programa llamado CodeTek Virtual Desktop que lo emulará en todo el sistema, pero cuesta $$ (y nunca obtuvieron una versión para OSX Leopard).
Realmente no puedes hacerlo bien, porque la interfaz de Mac simplemente no está diseñada con el enfoque-sigue-mouse (con o sin auto-raise) en mente. Dudo que esto vaya a cambiar pronto, y a menos que lo haga, todos los que intenten implementar Focus-Following-Mouse tropezarán con los mismos obstáculos y terminarán con un resultado insatisfactorio (para aquellos que quieran tal cosa).
Entonces, sí, estás loco por querer esto, pero por razones técnicas. Acostúmbrate a usar la Mac en sus propios términos y estoy seguro de que tu deseo de obligarlo a comportarse como cualquier cosa X11 que solías utilizar disminuirá un poco a medida que encuentres formas nuevas y eficaces de trabajar.
Solución: como estaba tan acostumbrado a autorrevelar en Windows, lo extrañé mucho en la Mac. La solución que encontré para Mac es Zooom (sí, tres o). Tiene una función de autoraise. Incluso puede configurar milisegundos para esperar antes de autorrevantar. No puedo vivir sin eso. Autoraise es una opción en prefs como se puede ver en la captura de pantalla https://www.macupdate.com/app/mac/23203/zooom http://coderage-software.com/zooom/index.html
También está el tema relacionado de raise-on-click. Debajo de OSX cada vez que se hace clic en una ventana, también se levanta, ocultando potencialmente otras ventanas. Esto es problemático cuando se trabaja con copiar / pegar desde dos ventanas donde una de ellas cubre la mayor parte de la pantalla. Me gusta mantener un bloc de notas global (activo en todos los espacios de trabajo) desde el que copie / pegue cosas (podría ser cualquier cosa, desde comandos, texto, elementos de tareas, etc.). Esto es desafiante bajo OSX. Sería bueno tener una opción para desactivar raise-on-click.
chunkwm también lo soporta (de manera predeterminada, creo): chunkwm
Steve Yegge escribió un ensayo sobre esto hace un tiempo, donde intentó y no pudo escribir una extensión adecuada. Desde entonces he intentado encontrar aplicaciones de enfoque-seguimiento-ratón para OS X y también he fallado.
Amethyst compatible con esta característica. Se puede instalar fácilmente con brew cask install amethyst
.
Aquí está el archivo de configuración que uso. Desactiva todas las funciones además de focus-follows-mouse. Guárdalo en ~/.amethyst
.
{
"LAYOUTS": "----------------------",
"layouts": [
],
"MODIFIERS": "----------------------",
"Valid modifiers are": [
"option",
"shift",
"control",
"command"
],
"mod1": [
],
"mod2": [
],
"COMMANDS": "----------------------",
"Commands are": {
"cycle-layout": "Cycle layout to the next layout",
"cycle-layout-backward": "Cycle layout to the previous layout",
"focus-screen-1": "Focus the main window on the first screen",
"focus-screen-2": "Focus the main window on the second screen",
"focus-screen-3": "Focus the main window on the third screen",
"focus-screen-2": "Focus the main window on the second screen",
"focus-screen-3": "Focus the main window on the third screen",
"focus-screen-4": "Focus the main window on the fourth screen",
"throw-screen-1": "Throw the focused window to the first screen",
"throw-screen-2": "Throw the focused window to the second screen",
"throw-screen-3": "Throw the focused window to the third screen",
"throw-screen-4": "Throw the focused window to the fourth screen",
"shrink-main": "Shrink the main pane of the current layout",
"expand-main": "Expand the main pane of the current layout",
"increase-main": "Increase the number of windows in the main pane",
"decrease-main": "Decrease the number of windows in the main pane",
"focus-ccw": "Move window focus counter-clockwise on the current screen",
"focus-cw": "Move window focus clockwise on the current screen",
"swap-ccw": "Swap focused window with the next window going counter-clockwi$
"swap-cw": "Swap focused window with the next window going clockwise",
"swap-main": "Swap focused window with the main window of its screen",
"throw-space-1": "Throw the focused window to the first space",
"throw-space-2": "Throw the focused window to the second space",
"throw-space-3": "Throw the focused window to the third space",
"throw-space-4": "Throw the focused window to the fourth space",
"throw-space-5": "Throw the focused window to the fifth space",
"throw-space-6": "Throw the focused window to the sixth space",
"throw-space-7": "Throw the focused window to the seventh space",
"throw-space-8": "Throw the focused window to the eighth space",
"throw-space-9": "Throw the focused window to the ninth space",
"throw-space-8": "Throw the focused window to the eighth space",
"throw-space-9": "Throw the focused window to the ninth space",
"toggle-float": "Toggle the focused window between being floating and tiled"
},
"screens": "3",
"cycle-layout": {
"mod": "mod1",
},
"cycle-layout-backward": {
"mod": "mod2",
},
"select-tall-layout": {
"mod": "mod1"
},
"select-wide-layout": {
"mod": "mod1"
},
"select-fullscreen-layout": {
"mod": "mod1"
},
"select-column-layout": {
"mod": "mod1"
},
"mod": "mod1"
},
"focus-screen-1": {
"mod": "mod1"
},
"focus-screen-2": {
"mod": "mod1"
},
"focus-screen-3": {
"mod": "mod1"
},
"focus-screen-4": {
"mod": "mod1"
},
"throw-screen-1": {
"mod": "mod2"
},
"throw-screen-2": {
"mod": "mod2"
},
"throw-screen-3": {
"mod": "mod2"
},
"throw-screen-4": {
"mod": "mod2"
"throw-screen-4": {
"mod": "mod2"
},
"shrink-main": {
"mod": "mod1"
},
"expand-main": {
"mod": "mod1"
},
"increase-main": {
"mod": "mod1"
},
"decrease-main": {
"mod": "mod1"
},
"focus-ccw": {
"mod": "mod1"
},
"focus-cw": {
"mod": "mod1"
},
"swap-screen-ccw": {
"mod": "mod2"
},
"swap-screen-cw": {
},
"swap-screen-cw": {
"mod": "mod2"
},
"swap-ccw": {
"mod": "mod2"
},
"swap-cw": {
"mod": "mod2"
},
"swap-main": {
"mod": "mod1"
},
"throw-space-1": {
"mod": "mod2"
},
"throw-space-2": {
"mod": "mod2"
},
"throw-space-3": {
"mod": "mod2"
},
"throw-space-4": {
"mod": "mod2"
},
"mod": "mod2"
},
"throw-space-5": {
"mod": "mod2"
},
"throw-space-6": {
"mod": "mod2"
},
"throw-space-7": {
"mod": "mod2"
},
"throw-space-8": {
"mod": "mod2"
},
"throw-space-9": {
"mod": "mod2"
},
"toggle-float": {
"mod": "mod1"
},
"toggle-tiling": {
"mod": "mod2"
},
"display-current-layout": {
"mod": "mod1"
"display-current-layout": {
"mod": "mod1"
},
"MISC": "----------------------",
"floating": [],
"float-small-windows": false,
"mouse-follows-focus": false,
"focus-follows-mouse": true,
"enables-layout-hud": false,
"enables-layout-hud-on-space-change": false
}