4 votos

Mover el foco a otra pantalla con el teclado

Estoy usando Yosemite. Tengo dos pantallas externas con varios espacios (me gusta la idea de una aplicación por espacio). A veces quiero mover el foco a otra pantalla sin usar el ratón. Tengo algunas soluciones pero no son ideales.

  • cmd + F4 Mover el foco a la siguiente ventana o a otra en las Preferencias del Sistema - mueve el foco pero el ratón se queda en la pantalla anterior por lo que mover los espacios no funciona correctamente ( ctrl + o mueve espacios en la pantalla anterior)

  • BetterTouchTool puede mover el ratón, pero la posición del ratón debería estar codificada. Además, mover el ratón no hace que se mueva el foco, hay que hacer clic adicionalmente y no siempre es bueno

  • ctrl + n puede trasladarse a n pero no funciona si el espacio está abierto en otra pantalla, por ejemplo, si el espacio 1 está enfocado en la pantalla 1 y el espacio 2 está abierto en la pantalla 2, entonces al pulsar ctrl + 2 no mueve el foco, pero al pulsar ctrl + 3 y luego ctrl + 2 hace (si se crea el espacio 3 en la pantalla 2)

¿Tienes alguna idea?

5voto

Sheun Aluko Puntos 21

Resumen:

  1. Instalar martillo de la cuchara
  2. Copia el siguiente código en init.lua y ejecuta hammerspoon
  3. Pulse Cmd+1 para cambiar de pantalla

Para la gente que está buscando otra solución a esto, considere usar hammerspoon (que es una gran aplicación que le permite escribir scripts para automatizar osx usando lua). He incluido el siguiente código en mi archivo init.lua para implementar el cambio de pantalla al pulsar Cmd+1.

local function focus_other_screen() -- focuses the other screen 
   local screen = hs.mouse.getCurrentScreen()
   local nextScreen = screen:next()
   local rect = nextScreen:fullFrame()
   local center = hs.geometry.rectMidPoint(rect)
   hs.mouse.setAbsolutePosition(center)
end 

function get_window_under_mouse() -- from https://gist.github.com/kizzx2/e542fa74b80b7563045a 
   local my_pos = hs.geometry.new(hs.mouse.getAbsolutePosition())
   local my_screen = hs.mouse.getCurrentScreen()
   return hs.fnutils.find(hs.window.orderedWindows(), function(w)
                 return my_screen == w:screen() and my_pos:inside(w:frame())
   end)
end

function activate_other_screen()
   focus_other_screen() 
   local win = get_window_under_mouse() 
   -- now activate that window 
   win:focus() 
end 

hs.hotkey.bind({"cmd"}, "1", function() -- does the keybinding
      activate_other_screen()
end)

Esto funciona moviendo el ratón a la otra pantalla, y luego enfocando la aplicación que está directamente bajo el ratón. El código está en lua. Por favor, vea martillo de la cuchara para más detalles.

2voto

Spocky Puntos 21

No importa, he encontrado una aplicación que lo hace - Amatista . Llevo años buscando algo así

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