Tengo un mouse con tres botones pero sin rueda.
En OS X, ¿hay alguna forma (tal vez con un software adicional) que me permita usar mi tercer botón para desplazarme al sostenerlo y mover el mouse?
Smart Scroll hace lo que estás buscando, con su función 'Grab Scroll'. Asignarlo al 'Botón 3 (Medio)' y arrastrar en ambos ejes funcionará en aplicaciones como navegadores (Chrome), Terminal, Adobe Photoshop y Finder; ninguna aplicación que he probado no ha funcionado con él (usando el 4.0 betas arriba y arriba). Tiene una prueba gratuita.
Lo hice con Hammerspoon con el siguiente script de configuración inspirado en este hilo: https://github.com/tekezo/Karabiner/issues/814#issuecomment-337643019
Pasos:
Open Config
Pegue el siguiente lua
script en la configuración:
-- HANDLE SCROLLING WITH MOUSE BUTTON PRESSED
local scrollMouseButton = 2
local deferred = false
overrideOtherMouseDown = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDown }, function(e)
-- print("down")
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
if scrollMouseButton == pressedMouseButton
then
deferred = true
return true
end
end)
overrideOtherMouseUp = hs.eventtap.new({ hs.eventtap.event.types.otherMouseUp }, function(e)
-- print("up")
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
if scrollMouseButton == pressedMouseButton
then
if (deferred) then
overrideOtherMouseDown:stop()
overrideOtherMouseUp:stop()
hs.eventtap.otherClick(e:location(), pressedMouseButton)
overrideOtherMouseDown:start()
overrideOtherMouseUp:start()
return true
end
return false
end
return false
end)
local oldmousepos = {}
local scrollmult = -4 -- negative multiplier makes mouse work like traditional scrollwheel
dragOtherToScroll = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDragged }, function(e)
local pressedMouseButton = e:getProperty(hs.eventtap.event.properties['mouseEventButtonNumber'])
-- print ("pressed mouse " .. pressedMouseButton)
if scrollMouseButton == pressedMouseButton
then
-- print("scroll");
deferred = false
oldmousepos = hs.mouse.getAbsolutePosition()
local dx = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaX'])
local dy = e:getProperty(hs.eventtap.event.properties['mouseEventDeltaY'])
local scroll = hs.eventtap.event.newScrollEvent({-dx * scrollmult, dy * scrollmult},{},'pixel')
-- put the mouse back
hs.mouse.setAbsolutePosition(oldmousepos)
return true, {scroll}
else
return false, {}
end
end)
overrideOtherMouseDown:start()
overrideOtherMouseUp:start()
dragOtherToScroll:start()
Smooze hace eso, entre otras cosas. (Soy el desarrollador)
Lo que lo diferencia de otras sugerencias es la capacidad de usarlo en todas las aplicaciones de Mac sin dejar de identificar enlaces, por ejemplo. (en caso de que use el botón central, arrastre para agarrar y lanzar, pero aún así desea que un clic en el botón central actúe como botón central)
Con Smooze es más como agarrar y arrastrar que agarrar y arrastrar. El lanzamiento afecta el impulso y la animación del desplazamiento, similar al desplazamiento del iPhone.
fuente
Hay una muy buena aplicación de código abierto llamada Karabiner que hará esto y mucho más (reasignación de teclado y mouse, etc.). Vea esta pregunta para algunos ejemplos. También para ciertos fabricantes suministran software de control personalizado que puede permitir una funcionalidad mejorada / modificada (por ejemplo, Logitech Control Center).
Como se menciona en los comentarios a continuación, si bien hasta ahora se ha lanzado una nueva versión de 'Karabiner Elements' para MacOS Sierra (10.12), solo proporciona una reasignación basada en el teclado, por lo que actualmente no se puede reasignar el mouse.
Sin embargo, Hammerspoon es otra herramienta gratuita de código abierto que se puede usar, entre muchas otras cosas, para reasignar las teclas del mouse (y / o teclado) a diferentes funciones. Deberá instalar la herramienta y proporcionarle alguna configuración adecuada; consulte los ejemplos aquí para la reasignación del mouse.
Para verificar qué tipos de evento y mouseEventButtonNumbers está generando su dispositivo, puede ejecutar esto (simplemente copie / pegue las 4 líneas en la consola) en la consola Hammerspoon (Use
reload config
para detenerlo):Nota: Si ha instalado las herramientas del Centro de control de Logitech (LCC), toma los eventos directamente de los dispositivos Logitech utilizando su módulo de kernel instalado para que Hammerspoon no pueda verlos. Deberá desinstalar LCC si desea reasignar los botones del mouse con Hammerspoon.
fuente
Depende del software; por ejemplo, Firefox lo admite, mientras que Google Chrome no.
Actualmente, lamentablemente, no hay software para habilitar dicha función en todo el sistema en OS X.
fuente
Utilicé la herramienta Better Touch para asignar Ctrl + clic central a PgUp y Opción + clic central a PgDown. Es gratis, excelente software y funciona bien.
fuente
+1 para Hammerspoon y un script, un mouse / trackball normal me vuelve loco en una Mac.
Escribí uno para desplazarme mientras se presiona el botón central del mouse: cuanto más mueva el mouse, más rápido se desplazará.
Click sigue funcionando como un clic normal con una zona muerta de 5 píxeles, por lo que no tiene que mantener el mouse completamente quieto entre presionar y soltar la rueda.
fuente
deltaX = deltaY * -1
, un error debería serdeltaY = deltaY * -1
y lo comentédeltaX = deltaX * -1
porque no quería invertir el eje X.