J'ai une souris avec trois boutons mais pas de molette.
Sous OS X, existe-t-il un moyen (peut-être avec un logiciel complémentaire) qui me permettrait d'utiliser mon troisième bouton pour faire défiler en le tenant et en déplaçant la souris?
Smart Scroll fait ce que vous recherchez, avec sa fonction 'Grab Scroll'. Attribuez-le au `` Bouton 3 (milieu) '' et faites-le glisser sur les deux axes pour fonctionner dans des applications telles que les navigateurs (Chrome), Terminal, Adobe Photoshop et Finder - aucune application que j'ai essayée n'a fonctionné avec elle (en utilisant le 4.0 bêtas de plus en plus). Il a un essai gratuit.
Je l'ai fait avec Hammerspoon avec le script de configuration suivant inspiré de ce fil: https://github.com/tekezo/Karabiner/issues/814#issuecomment-337643019
Pas:
Open Config
Collez le lua
script suivant dans la configuration:
-- 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 fait cela, entre autres. (Je suis le développeur)
Ce qui le différencie des autres suggestions, c'est la possibilité de l'utiliser dans chaque application Mac tout en identifiant les liens, par exemple. (dans le cas où vous utilisez votre bouton du milieu glisser pour saisir et lancer mais que vous souhaitez toujours qu'un clic sur le bouton du milieu agisse comme un bouton du milieu)
Avec Smooze, cela ressemble plus à un drag-grab-throw qu'à un grab-drag. La version affecte l'élan et l'animation du défilement, similaire au défilement iPhone.
la source
Il y a une très belle application open source appelée Karabiner qui fera cela et bien plus encore (remappage du clavier et de la souris, etc.). Voir cette question pour quelques exemples. De plus, pour certains fabricants, ils fournissent un logiciel de contrôle personnalisé qui peut permettre des fonctionnalités améliorées / modifiées (par exemple, Logitech Control Center).
Comme mentionné dans les commentaires ci-dessous, même si une nouvelle version de `` Karabiner Elements '' a été publiée pour MacOS Sierra (10.12), elle ne prévoit pour l'instant que le remappage basé sur le clavier - donc le remappage de la souris ne peut actuellement pas être fait avec.
Cependant, Hammerspoon est un autre outil open source gratuit qui peut être utilisé, entre autres, pour remapper les touches de la souris (et / ou du clavier) à différentes fonctions. Vous devrez installer l'outil et lui fournir une configuration appropriée - voir les exemples ici pour le remappage de la souris.
Pour vérifier quels types d'événements et mouseEventButtonNumbers sont générés par votre appareil, vous pouvez exécuter cela (il suffit de copier / coller les 4 lignes dans la console) dans la console Hammerspoon (à utiliser
reload config
pour l'arrêter):Remarque: Si vous avez installé les outils Logitech Control Center (LCC) - il saisit les événements directement à partir des périphériques Logitech à l'aide de leur module de noyau installé afin que Hammerspoon ne puisse pas les voir. Vous devrez désinstaller LCC si vous souhaitez remapper les boutons de la souris à l'aide de Hammerspoon.
la source
Cela dépend du logiciel - par exemple, Firefox le prend en charge, contrairement à Google Chrome.
Malheureusement, il n'existe actuellement aucun logiciel permettant d'activer une telle fonctionnalité à l'échelle du système sous OS X.
la source
J'ai utilisé Better Touch Tool pour affecter Ctrl + clic milieu à PgUp et Option + clic milieu à PgDown. C'est un excellent logiciel gratuit qui fonctionne bien.
la source
+1 pour Hammerspoon et un script, une souris / trackball normale me rend fou sur un Mac.
J'en ai écrit un pour faire défiler pendant que le bouton central de la souris est enfoncé - plus vous déplacez la souris plus vite elle défilera.
Le clic fonctionne toujours comme un clic normal avec une zone morte de 5 pixels, vous n'avez donc pas besoin de garder la souris parfaitement immobile entre le fait d'appuyer et de relâcher la molette.
la source
deltaX = deltaY * -1
devrait cependant êtredeltaY = deltaY * -1
et j'ai commentédeltaX = deltaX * -1
parce que je ne voulais pas que l'axe X soit inversé.