Mam mysz z trzema przyciskami, ale bez kółka.
Czy w OS X jest jakiś sposób (być może z oprogramowaniem dodatkowym), który pozwoliłby mi używać trzeciego przycisku do przewijania, przytrzymując go i przesuwając mysz?
Smart Scroll robi to, czego szukasz, dzięki funkcji „Grab Scroll”. Przypisz go do przycisku 3 (środkowy), a przeciąganie na obie osie będzie działać w aplikacjach takich jak przeglądarki (Chrome), terminal, Adobe Photoshop i Finder - żadna aplikacja, z której korzystałem, nie działała z nim (przy użyciu 4.0 bety w górę i w górę). Ma darmowy okres próbny.
Zrobiłem to z Hammerspoon z następującym skryptem konfiguracyjnym zainspirowanym tym wątkiem: https://github.com/tekezo/Karabiner/issues/814#issuecomment-337643019
Kroki:
Open Config
Wklej następujący lua
skrypt do konfiguracji:
-- 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 robi to między innymi. (Jestem programistą)
Tym, co odróżnia go od innych sugestii, jest możliwość korzystania z niego w każdej aplikacji Mac, przy jednoczesnym identyfikowaniu na przykład linków. (w przypadku użycia środkowego przycisku przeciągnij, aby złapać i rzucić, ale nadal chcesz, aby środkowe kliknięcie działało jak środkowy przycisk)
Dzięki Smooze bardziej przypomina chwytanie i przeciąganie niż chwytanie. Wydanie wpływa na pęd i animację zwoju, podobnie jak w przypadku zwoju iPhone'a.
źródło
Jest bardzo ładna aplikacja open source o nazwie Karabiner, która to zrobi i wiele więcej (mapowanie klawiatury i myszy itp.). Zobacz to pytanie dla niektórych przykładów. Również dla niektórych producentów dostarczają niestandardowe oprogramowanie sterujące, które może umożliwić ulepszoną / zmodyfikowaną funkcjonalność (np. Logitech Control Center).
Jak wspomniano w komentarzach poniżej, podczas gdy nowa wersja „Karabiner Elements” została wydana dla MacOS Sierra (10.12) i późniejszych, zapewnia ona tylko do tej pory mapowanie oparte na klawiaturze - więc obecnie nie można z tym zrobić remapowania myszy.
Jednak Hammerspoon to kolejne bezpłatne narzędzie typu open source, które może być używane, między innymi, do zmiany przypisania klawiszy myszy (i / lub klawiatury) do różnych funkcji. Musisz zainstalować narzędzie i dostarczyć odpowiednią konfigurację - zobacz przykłady mapowania myszy tutaj .
Aby sprawdzić, jakie typy zdarzeń i mouseEventButtonNumbers są generowane przez urządzenie, możesz uruchomić to (po prostu skopiuj / wklej 4 linie do konsoli) w konsoli Hammerspoon (użyj,
reload config
aby to zatrzymać):Uwaga: Jeśli zainstalowałeś narzędzia Logitech Control Center (LCC) - pobiera zdarzenia bezpośrednio z urządzeń Logitech za pomocą zainstalowanego modułu jądra, aby Hammerspoon ich nie widział. Musisz odinstalować LCC, jeśli chcesz ponownie przypisać przyciski myszy za pomocą Hammerspoon.
źródło
Zależy to od oprogramowania - na przykład Firefox go obsługuje, a Google Chrome nie.
Niestety, nie ma oprogramowania, które umożliwi takie funkcje w całym systemie OS X, niestety.
źródło
Użyłem narzędzia Better Touch Tool, aby przypisać Ctrl + środkowe kliknięcie do PgUp, a Option + środkowe kliknięcie do PgDown. To bezpłatne, doskonałe oprogramowanie i działa dobrze.
źródło
+1 za Hammerspoon i skrypt, normalna mysz / trackball doprowadza mnie do szaleństwa na komputerze Mac.
Napisałem jeden do przewijania, gdy środkowy przycisk myszy jest wciśnięty - im bardziej poruszasz myszą, tym szybciej się przewija.
Kliknięcie nadal działa jak normalne kliknięcie z 5-pikselową strefą martwą, więc nie musisz utrzymywać myszy idealnie nieruchomej między naciśnięciem i zwolnieniem koła.
źródło
deltaX = deltaY * -1
powinien byćdeltaY = deltaY * -1
i skomentowałem,deltaX = deltaX * -1
ponieważ nie chciałem, aby oś X była odwrócona.